Laboratoire autorisé Kali–Metasploitable2 utilisant Python et Nmap NSE pour valider CVE-2011-2523 dans vsFTPd 2.3.4.
⚠️ Laboratoire autorisé uniquement — réalisé dans un réseau isolé VirtualBox Host-Only à l'aide de Kali Linux et Metasploitable2. Aucun système non autorisé n'a été scanné ou accédé à aucun moment.
CVE-2011-2523 est l'une des compromissions de chaîne d'approvisionnement les plus connues de l'histoire de l'open source. En 2011, le code source officiel de vsFTPd 2.3.4 a été piégé par une backdoor sur le serveur de téléchargement du projet — un attaquant a modifié le binaire de sorte que la saisie d'un nom d'utilisateur contenant :) déclenche un shell de backdoor sur le port TCP 6200, accordant un accès root à tout attaquant distant.
Ce laboratoire valide CVE-2011-2523 à l'aide d'une méthodologie structurée d'évaluation des vulnérabilités :
ftp-vsftpd-backdoorIl s'agit d'un véritable travail d'évaluation de vulnérabilités — la même méthodologie utilisée par les testeurs d'intrusion et les analystes SOC menant des évaluations de sécurité autorisées.
| Composant | Détails |
|---|---|
| Machine attaquante | Kali Linux |
| Machine cible | Metasploitable2 (intentionnellement vulnérable) |
| Hyperviseur | Oracle VirtualBox |
| Réseau | Adaptateur Host-Only — isolé, sans accès Internet |
| Outils | Python 3, Nmap, NSE, bibliothèque python-nmap |
| IP cible | 192.168.56.103 |
| Champ | Détails |
|---|---|
| ID CVE | CVE-2011-2523 |
| Logiciel affecté | vsFTPd 2.3.4 |
| Score CVSS | 10.0 — Critique |
| Type de vulnérabilité | Backdoor / Compromission de la chaîne d'approvisionnement |
| Vecteur d'attaque | Réseau — aucune authentification requise |
| Impact | Accès à un shell root distant (uid=0) |
| Découverte | Juillet 2011 |
| MITRE ATT&CK | T1195.002 (Compromise Software Supply Chain) |
Fonctionnement de la backdoor :
Lorsqu'un client se connecte à vsFTPd 2.3.4 et envoie un nom d'utilisateur contenant les caractères :) (smiley), le code de la backdoor est déclenché — ouvrant un shell en écoute sur le port TCP 6200. La connexion au port 6200 accorde un shell root interactif sans aucune authentification supplémentaire requise.
Step 1: Confirm target IP on Host-Only network
└── ifconfig / ip addr on Metasploitable2
Step 2: Verify connectivity
└── ping 192.168.56.103 from Kali
Step 3: Service & version detection
└── nmap -sV -p 21 192.168.56.103
└── Confirm: vsftpd 2.3.4
Step 4: Python-automated NSE scan
└── python3 pythonnmap.py --host 192.168.56.103 --ports 21
└── NSE scripts executed:
ftp-anon
ftp-bounce
ftp-libopie
ftp-proftpd-backdoor
ftp-vsftpd-backdoor ← CVE-2011-2523 validation
Step 5: Document findings & remediation
sudo nmap -sV -p 21 192.168.56.103
Sortie :
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
sudo python3 pythonnmap.py --host 192.168.56.103 --ports 21
sudo nmap --script ftp-vsftpd-backdoor -p 21 192.168.56.103
| Service | Port | Constat | Preuve |
|---|---|---|---|
| FTP | TCP 21 | vsFTPd 2.3.4 identifié — version connue comme porte dérobée | Scan de service/version Nmap |
| FTP | TCP 21 | Connexion FTP anonyme autorisée | Sortie NSE ftp-anon |
| FTP | TCP 21 | Cible confirmée vulnérable à CVE-2011-2523 | Sortie NSE ftp-vsftpd-backdoor |
| CVE-2011-2523 | TCP 6200 | Le shell de la porte dérobée a renvoyé uid=0(root) gid=0(root) | Sortie de validation NSE |



Dans un environnement de production réel, la remédiation inclurait :
| Action | Priorité |
|---|---|
| Supprimer immédiatement vsFTPd 2.3.4 et le remplacer par une version corrigée | 🔴 Critique |
| Vérifier l'intégrité du logiciel à l'aide de sommes de contrôle SHA-256 par rapport aux hachages officiels du fournisseur avant l'installation | 🔴 Critique |
| Désactiver l'accès FTP anonyme sauf si explicitement requis | 🟠 Élevée |
| Restreindre l'exposition du service FTP à l'aide de règles de pare-feu et de la segmentation réseau | 🟠 Élevée |
Surveiller les journaux d'authentification FTP pour détecter les noms d'utilisateur suspects contenant :) | 🟡 Moyenne |
| Envisager de remplacer entièrement FTP par SFTP (SSH File Transfer Protocol) | 🟡 Moyenne |
| Contrôle | Référentiel | Pertinence |
|---|---|---|
| T1195.002 | MITRE ATT&CK | Compromission de la chaîne d'approvisionnement logicielle — porte dérobée injectée dans le code source de vsFTPd |
| T1133 | MITRE ATT&CK | Services distants externes — la porte dérobée ouvre un shell root distant |
| T1190 | MITRE ATT&CK | Exploitation d'une application exposée publiquement — service FTP exploité à distance |
| SI-2 | NIST SP 800-53 | Correction des failles — corriger et supprimer les logiciels vulnérables |
| SI-7 | NIST SP 800-53 | Intégrité logicielle — vérifier les sommes de contrôle des logiciels avant le déploiement |
| RA-5 | NIST SP 800-53 | Surveillance et analyse des vulnérabilités |
| A.12.6 | ISO 27001 | Gestion des vulnérabilités techniques |
Le script pythonnmap.py automatise le scan Nmap NSE à l'aide de la bibliothèque python-nmap :
# Key functionality
import nmap
scanner = nmap.PortScanner()
scanner.scan(
hosts=target_host,
ports=target_ports,
arguments='-sV --script ftp-anon,ftp-bounce,ftp-libopie,ftp-proftpd-backdoor,ftp-vsftpd-backdoor'
)
Avantages de l'automatisation Python :