Ricerca sulla sicurezza e riproduzione di CVE-2025-5548: Un buffer overflow basato sullo stack in FreeFloat FTP Server 1.0. Include analisi binaria, replica del crash e configurazione dell'ambiente per la ricerca sulle vulnerabilità.
Ricerca professionale e sviluppo di exploit per un classico overflow del buffer basato sullo stack in FreeFloat FTP Server 1.0. Questo laboratorio dimostra il passaggio dal reverse engineering binario a un RCE completamente funzionante.
Questo repository documenta l'analisi e lo sfruttamento di CVE-2025-5548. Sebbene i sistemi moderni abbiano protezioni avanzate, l'analisi di software legacy come FreeFloat FTP rimane un pilastro fondamentale per i ricercatori di vulnerabilità.
La ricerca segue i principi discussi nel talk "The Path That Leads to Your First CVE", sottolineando che il reverse engineering di vecchie applicazioni desktop è il punto di ingresso più realistico per i principianti del settore.
[Fuzzing] ──► [Controllo EIP] ──► [Analisi Bad Char] ──► [Gadget JMP ESP] ──► [RCE]
NOOP per innescare una corruzione della memoria.\x00\x0a\x0d) che rompono il payload.JMP ESP per reindirizzare l'esecuzione a uno shellcode Metasploit personalizzato.| Componente | SO / Versione | Ruolo |
|---|---|---|
| Server Target | Windows 10/11 (VM) | FreeFloat FTP Server 1.0 |
| Macchina Attaccante | Kali Linux / Windows | Consegna Exploit (Python 3) |
| Debugger | Immunity Debugger | Analisi Dinamica & Mona.py |
| Disassemblatore | IDA Pro 8.4 | Analisi Statica & Reversing |
Nota: Tutti i test sono stati condotti in un segmento di rete isolato solo host.
| Categoria | Strumenti |
|---|---|
| Reversing | IDA Pro, Immunity Debugger |
| Sfruttamento | Python 3 (Socket), Mona.py, Metasploit (msfvenom) |
| Metodologia | Overflow del Buffer basato sullo Stack |
| Riferimento | TheMalwareGuardian - CVE-2025-5548 |
| Directory | Contenuto | Stato |
|---|---|---|
| 01-Environment | Istruzioni per la configurazione del laboratorio e del debugger. | ✅ Pronto |
| 02-Exploitation | Metodologia Principale: Sviluppo dell'exploit passo dopo passo. | ✅ Pronto |
| Exploits | Suite completa di script Python (dal Fuzzing allo Shellcode). | ✅ Pronto |
| 03-Images | Documentazione di crash, offset e gadget. | ✅ Pronto |
La vulnerabilità esiste perché il server elabora i comandi utilizzando funzioni C non sicure (come strcpy) senza una corretta validazione della lunghezza.
// Simplified representation of the vulnerable handler
char buffer[256];
strcpy(buffer, user_input); // No bounds checking
Quando una lunga stringa viene inviata tramite il comando NOOP, essa sovraccarica il buffer dello stack locale, sovrascrivendo infine l'indirizzo di ritorno salvato. Controllando questo indirizzo, possiamo reindirizzare la CPU per eseguire le nostre istruzioni.
Un ringraziamento speciale a TheMalwareGuardian per la sua ricerca sulle vulnerabilità legacy e il suo approccio educativo alla ricerca di vulnerabilità.