Basé sur l'émission, Mr Robot.
Cette machine virtuelle a trois clés cachées a différents endroits. Votre objectif est de trouver les trois. Chaque clé est progressivement plus difficile a trouver.
La VM n'est pas trop difficile. Il n'y a pas d'exploitation avancée ou d'ingénierie inverse. Le niveau est considerer comme débutant-intermedaire.
url : https://www.vulnhub.com/entry/mr-robot-1,151/
Nmap :
Cmsmap :
ROBOT.TXT trouvé via le scan cmsmap !
Nous avons notre flag 1/3 ! :
key-1-of-3.txt : 073403c8a58a1f80d943455fb30724b9
Nous avons également un dictionnaire !
Ça c’est de la wordlist !
Grace au scan cmsmap nous savons que le site est vulnérable au brute force !
La page mot de passe oublié permet de faire une énumération rapide des utilisateurs en renvoyant une simple erreur si l’utilisateur n’existe pas

J’ai donc développé un code en python afin de brute force d’abord l’utilisateur avec une petite wordlist utilisateur !

Avec une wordlist de 86770 user donc plusieurs en double c’est long …
J’ai fini par trouver un utilisateur ! Elliot
Etonnant pour une vm qui est en référence a la série Mr Robot !

Note : pensé à faire une sortie unique pour chaque wordlist téléchargé ! Putain mais les gens font vraiment de la concaténation de wordlist ? plus stupide plz !!! fin du coup de geule
Bon ! j’ai un utilisateur et j’ai un dictionnaire !
Le dico fait 858 160 lignes, suivant la note du dessus on vérifie s’il n’y a pas des doublons !
cat fsocity.dic | sort | uniq > fsocity.dic.trie
La wordlist output ne fait plus que 11 451 lignes !
Maintenant, nous pouvons test un brute force sur le lien http://10.10.10.129/wp-login.php avec notre utilisateur Elliot et la Wordlist sans doublons
hydra -l elliot -P fsocity.dic.trie 10.10.10.129 http-form-post '/wplogin.php:log=^USER^&pwd=^PASS^:F=incorrect'
Pwnd !

elliot:ER28-0652
On accede alors au site !
L’utilisateur elliot est administrateur du WP
Une galerie d’image :
Possibilité d’upload des fichiers !
Phase de recherche post exploitation :
Test upload reverse shell :
J’ai essayé plusieurs obscurcissements de code mais sans succès je n’arrive pas a upload un reverse
shell même avec une faille double extension.
Versions: You are currently running WordPress 4.3.27 and PHP 5.5.29
Dans la partie plugins WP j’ai trouvé un plugin shell qui se nome « WP Term »
Btw je me demande vraiment qui s’est dit que c’était une bonne idée d’avoir un accès shell sur son wordpress …

Nous sommes avec l’utilisateur deamon, en fouillant dans la machine on trouve le home de robot
donc il y a un utilisateur robot !
Dans le home on a plusieurs fichiers :
2eme flag trouvé ! mais inaccessible en lecture
En revanche le fichier password.raw-md5 est accessible !
robot:c3fcd3d76192e4007dfb496cca67e13b
Une petite commande hashcat sur le hash md5 que l'on viens de recuperer :
On a le passwd de l’utilisateur robot, l’utilisateur local de la machine !
robot:abcdefghijklmnopqrstuvwxyz
Récupération d’un reverse shell interactif !
Le shell qui nous est offert généreusement par le plugin WordPress n’est pas interactif on est donc rapidement limité (changement user impossible)
On va donc télécharger un reverse shell et lexecuter sur la machine cible pour obtenir un véritable shell !
On a les droits dans /tmp/ donc on y telecharge notre reverse :


On a un notre shell !
python -c 'import pty; pty.spawn("/bin/bash")'
Afin de le rendre interactif on tape la commande ci-dessus
Puis enfin on se connecte a la session de l’utilisateur robot !

On peut enfin ouvrir notre 2eme flag !

key-2-of-3.txt : 822c73956184f694993bede3eb39f959
Phase de recherche de vulnérabilité system pour escalade privilèges afin de passer root de la vm et de trouver le dernier flag !
Linux Exploit Suggester nous dit qu’une vulnérabilité dirty cow est présente sur la machine.

J’ai fini par trouver un dirtycow qui marche : https://www.exploit-db.com/exploits/40616

Compte root pwnd ! mais l’exploit fait crash la machine si on ne tape pas rapidement une commande cf url tools :
EDB-Note: After getting a shell, doing "echo 0 > /proc/sys/vm/dirty_writeback_centisecs" may make the system more stable.
Enfin, on ne va pas s’embêter vu que l’on connait la forme du flag on tape un find /


Et voilà ! le dernier flag !