Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-5548 — Studio tecnico della vulnerabilità CVE-2025-5548 | Kitploit
Strumenti/GitHubGitHub/cryptomachio/cve-2025-5548
Analisi delle VulnerabilitàExploitReverse EngineeringShellcodeDebuggerPenetration TestingApprendimento e FormazioneSviluppo PayloadBinary ExploitationLab e Pratica
GitHubcryptomachio/cve-2025-5548
165 mesi faNon ancora revisionato

CVE-2025-5548

Studio tecnico della vulnerabilità CVE-2025-5548

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Studio tecnico della vulnerabilità CVE-2025-5548

Introduzione

In questo lavoro viene analizzata la vulnerabilità CVE-2025-5548, associata a un overflow del buffer nello stack presente in FreeFloat FTP Server v1.0. L'obiettivo principale del laboratorio è comprendere come si comporta un'applicazione vulnerabile di fronte a input manipolati e osservare, in un ambiente controllato, come un errore di validazione possa finire per influenzare il flusso di esecuzione del programma.

Lo sviluppo del repository non si limita a mostrare il risultato finale, ma raccoglie l'intero processo di ricerca: preparazione dell'ambiente, selezione degli strumenti, osservazione del fallimento, analisi della memoria e validazione dell'impatto reale della vulnerabilità.


Organizzazione del contenuto

Il lavoro è strutturato in due blocchi distinti.

Preparazione del laboratorio

In questa sezione viene spiegato come è stato allestito l'ambiente di pratica, quale sistema operativo è stato utilizzato, qual è l'applicazione vulnerabile e quali strumenti sono stati ritenuti necessari per condurre l'analisi.

Sviluppo dell'analisi

La seconda parte si concentra sulla parte pratica. Qui viene descritto il processo seguito per rilevare l'errore, confermare la corruzione della memoria, studiare la sovrascrittura dei registri e verificare come la vulnerabilità possa essere sfruttata.


1. Laboratorio utilizzato

Sistema utilizzato

La pratica è stata realizzata su una macchina virtuale con Windows 11 Pro 25H2 (Build 26200.6584). Il software vulnerabile selezionato è stato FreeFloat FTP Server v1.0, un'applicazione datata che risulta adatta per questo tipo di esercizi per la mancanza di molte delle protezioni abituali nei programmi attuali.

La rete della macchina virtuale è stata configurata in modalità NAT, che ha permesso l'accesso a Internet per installare dipendenze, scaricare strumenti e mantenere la connettività di base del laboratorio.

Strumenti principali

Per coprire tutte le fasi dell'analisi è stato necessario avvalersi di diverse utilità. Alcune sono state utilizzate per preparare l'ambiente, altre per esaminare il binario e altre ancora per osservare il comportamento del processo quando si verificava l'errore.

Utilità di base

Git

È stato utilizzato per scaricare repository, mantenere organizzate determinate risorse e facilitare la gestione del materiale utilizzato durante la ricerca.

Nmap

È stato impiegato come supporto per verificare la connettività, identificare il servizio esposto e controllare che l'obiettivo rispondesse correttamente sulla porta prevista.

Windows SDK

È stato installato per disporre di librerie, header e strumenti utili in attività di debug e analisi a basso livello all'interno del sistema Windows.

Editor e ambienti di sviluppo

Notepad++

È stato utilizzato per modifiche rapide, revisione di script e manipolazione semplice di stringhe o dati di test.

Visual Studio Code

È servito come ambiente comodo per scrivere script, testare automazioni e lavorare con il codice in modo più ordinato.

PyCharm Community

È stato utile soprattutto quando è stato necessario rivedere script più lunghi o fare debug della logica relativa alla costruzione dei payload.

Dipendenze necessarie

Python

Sono state considerate due versioni:

  • Python 3, come opzione principale per scripting e automazione moderna.
  • Python 2.7, necessario per compatibilità con alcuni strumenti classici di debug utilizzati in questo tipo di laboratori.

Java JDK

È stato necessario per eseguire Ghidra, poiché questo strumento è sviluppato su Java.

Strumenti di analisi e reversing

Immunity Debugger

È stato utilizzato per osservare lo stato del programma durante l'esecuzione, controllare i registri, esaminare la memoria e analizzare il punto esatto in cui si verifica l'errore.

IDA Free

È stato impiegato nella fase di analisi statica per esaminare il binario e individuare funzioni sospette dal punto di vista della sicurezza.

Ghidra

È stato usato come supporto per decompilare e comprendere meglio la logica interna del programma vulnerabile.

Mona

Questo plugin ha facilitato compiti come la creazione di pattern, il calcolo dell'offset e l'identificazione di caratteri problematici nel payload.

Applicazione vulnerabile

Il componente principale del laboratorio è stato FreeFloat FTP Server v1.0, che funge da sistema obiettivo all'interno della prova di concetto. Il suo interesse risiede nel fatto che incorpora una vulnerabilità classica di overflow nello stack, rendendolo un caso molto appropriato per l'analisi formativa.

Osservazione generale

Sebbene esistano macchine virtuali già pronte per questo tipo di esercizi, in questo caso si è scelto di documentare l'ambiente e giustificare gli strumenti utilizzati. Ciò consente di comprendere meglio perché ogni applicazione fa parte del laboratorio e che ruolo svolge durante l'analisi.


2. Analisi della vulnerabilità

Riconoscimento iniziale

Il primo passo è stato verificare che il servizio FTP fosse accessibile e funzionante correttamente. Una volta confermata la connettività, è stato esaminato il binario tramite strumenti di analisi statica per individuare potenziali punti deboli legati alla gestione delle stringhe.

Durante questa revisione sono emerse funzioni insicure come strcpy e strcat, rafforzando il sospetto che il servizio potesse essere vulnerabile a input eccessivamente lunghi. Sono stati anche esaminati diversi comandi del protocollo FTP suscettibili di ricevere dati controllati dall'utente, selezionandone uno come candidato principale per i test.

Con questa base, il processo è stato caricato in un debugger per osservare il suo comportamento durante l'esecuzione.


Verifica tramite input crescenti

La fase successiva è consistita nell'inviare stringhe sempre più lunghe per verificare se il programma smettesse di rispondere correttamente. Questa procedura ha permesso di verificare che, a partire da una certa dimensione, il servizio falliva e finiva per provocare un'alterazione in memoria.

Questo comportamento ha confermato che non si trattava di un semplice errore di validazione superficiale, ma di una corruzione reale che influenzava il flusso del processo.


Localizzazione esatta del punto di sovrascrittura

Dopo aver provocato l'errore, è stato necessario calcolare con precisione quanti byte fossero necessari per raggiungere l'indirizzo di ritorno. A tal fine è stata utilizzata una sequenza non ripetitiva, in modo che il valore riflesso in EIP al momento del crash potesse essere correlato a una posizione esatta all'interno dell'input inviato.

Grazie a questa procedura è stato ottenuto lo spostamento concreto necessario per sovrascrivere il registro di controllo.


Verifica del controllo di esecuzione

Con l'offset ormai noto, è stato preparato un nuovo test in cui l'indirizzo di ritorno è stato sostituito con un valore facilmente riconoscibile. L'obiettivo era verificare se il programma permettesse di modificare EIP in modo controllato.

Il test è stato soddisfacente, poiché il debugger ha mostrato che il registro conteneva esattamente il valore inserito. Ciò dimostrava che era possibile alterare il flusso di esecuzione e reindirizzarlo verso un indirizzo scelto.


Revisione dei caratteri problematici

Una volta raggiunto questo punto, è stato analizzato quali byte potessero interferire con il payload. In questo tipo di vulnerabilità è comune che certi caratteri provochino troncamenti, cambiamenti inaspettati o terminazione prematura della stringa.

Tramite confronti successivi in memoria sono stati identificati diversi bad characters, tra cui:

  • \x00
  • \x0a
  • \x0d

Rilevarli è stato importante per costruire un payload finale stabile e compatibile con il comportamento del programma vulnerabile.

Scarica lo strumento