Laboratorio autorizado Kali–Metasploitable2 que utiliza Python y Nmap NSE para validar CVE-2011-2523 en vsFTPd 2.3.4.
⚠️ Solo laboratorio autorizado — realizado en una red aislada Host-Only de VirtualBox usando Kali Linux y Metasploitable2. No se escaneó ni se accedió a ningún sistema no autorizado en ningún momento.
CVE-2011-2523 es uno de los compromisos de cadena de suministro más conocidos en la historia del código abierto. En 2011, el código fuente oficial de vsFTPd 2.3.4 fue modificado con una puerta trasera en el servidor de descargas del proyecto — un atacante modificó el binario de modo que introducir un nombre de usuario que contuviera :) activaba una shell de puerta trasera en el puerto TCP 6200, otorgando acceso root a cualquier atacante remoto.
Este laboratorio valida CVE-2011-2523 utilizando una metodología estructurada de evaluación de vulnerabilidades:
ftp-vsftpd-backdoorEste es trabajo real de evaluación de vulnerabilidades — la misma metodología utilizada por pentesters y analistas de SOC que realizan evaluaciones de seguridad autorizadas.
| Componente | Detalles |
|---|---|
| Máquina atacante | Kali Linux |
| Máquina objetivo | Metasploitable2 (intencionalmente vulnerable) |
| Hipervisor | Oracle VirtualBox |
| Red | Adaptador Host-Only — aislado, sin acceso a internet |
| Herramientas | Python 3, Nmap, NSE, biblioteca python-nmap |
| IP objetivo | 192.168.56.103 |
| Campo | Detalles |
|---|---|
| ID de CVE | CVE-2011-2523 |
| Software afectado | vsFTPd 2.3.4 |
| Puntuación CVSS | 10.0 — Crítica |
| Tipo de vulnerabilidad | Puerta trasera / Compromiso de la cadena de suministro |
| Vector de ataque | Red — no requiere autenticación |
| Impacto | Acceso remoto a shell root (uid=0) |
| Descubierta | Julio de 2011 |
| MITRE ATT&CK | T1195.002 (Compromise Software Supply Chain) |
Cómo funciona la puerta trasera:
Cuando un cliente se conecta a vsFTPd 2.3.4 y envía un nombre de usuario que contiene los caracteres :) (cara sonriente), se activa el código de la puerta trasera — abriendo una shell a la escucha en el puerto TCP 6200. Conectarse al puerto 6200 otorga una shell root interactiva sin necesidad de autenticación adicional.
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
Salida:
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
| Servicio | Puerto | Hallazgo | Evidencia |
|---|---|---|---|
| FTP | TCP 21 | vsFTPd 2.3.4 identificado — versión con puerta trasera conocida | Escaneo de servicio/versión de Nmap |
| FTP | TCP 21 | Inicio de sesión FTP anónimo permitido | Salida del NSE ftp-anon |
| FTP | TCP 21 | Objetivo confirmado como vulnerable a CVE-2011-2523 | Salida del NSE ftp-vsftpd-backdoor |
| CVE-2011-2523 | TCP 6200 | La shell de puerta trasera devolvió uid=0(root) gid=0(root) | Salida de validación del NSE |



En un entorno de producción real, la remediación incluiría:
| Acción | Prioridad |
|---|---|
| Eliminar inmediatamente vsFTPd 2.3.4 y reemplazarlo por una versión parcheada | 🔴 Crítica |
| Verificar la integridad del software usando sumas de comprobación SHA-256 contra los hashes oficiales del proveedor antes de la instalación | 🔴 Crítica |
| Deshabilitar el acceso FTP anónimo a menos que sea explícitamente requerido | 🟠 Alta |
| Restringir la exposición del servicio FTP usando reglas de firewall y segmentación de red | 🟠 Alta |
Monitorear los registros de autenticación FTP en busca de nombres de usuario sospechosos que contengan :) | 🟡 Media |
| Considerar reemplazar FTP por completo con SFTP (SSH File Transfer Protocol) | 🟡 Media |
| Control | Marco | Relevancia |
|---|---|---|
| T1195.002 | MITRE ATT&CK | Compromiso de la cadena de suministro de software — puerta trasera inyectada en el código fuente de vsFTPd |
| T1133 | MITRE ATT&CK | Servicios remotos externos — la puerta trasera abre una shell root remota |
| T1190 | MITRE ATT&CK | Explotación de aplicación expuesta públicamente — servicio FTP explotado remotamente |
| SI-2 | NIST SP 800-53 | Remediación de fallos — parchear y eliminar software vulnerable |
| SI-7 | NIST SP 800-53 | Integridad del software — verificar sumas de comprobación del software antes del despliegue |
| RA-5 | NIST SP 800-53 | Monitoreo y escaneo de vulnerabilidades |
| A.12.6 | ISO 27001 | Gestión de vulnerabilidades técnicas |
El script pythonnmap.py automatiza el escaneo NSE de Nmap usando la biblioteca 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'
)
Beneficios de la automatización con Python: