Dimostrazione dell'Exploit CVE-2023-32784
Panoramica del Progetto
Questo repository fornisce una dimostrazione di CVE-2023-32784, una vulnerabilità critica presente nelle versioni di KeePass precedenti alla 2.54. L'exploit consente il recupero della password principale tramite dump della memoria, esponendo le credenziali salvate. Questa documentazione illustra una guida passo passo per configurare l'ambiente di exploit, eseguire lo strumento PoC e comprendere le strategie di mitigazione.
Dettagli della Vulnerabilità
Descrizione
CVE-2023-32784 è una vulnerabilità di perdita di memoria nelle versioni di KeePass dalla 2.0 alla 2.53, derivante da una gestione impropria delle stringhe all'interno del componente Secure Textbox EX di KeePass. Ogni carattere inserito della password principale lascia tracce in memoria, rendendolo recuperabile tramite dump della memoria.
Caratteristiche Principali:
- Gravità: Alta
- Sfruttabilità: È richiesto accesso fisico o locale ai dump della memoria; non è coinvolta alcuna esecuzione di codice remota.
- Impatto: L'estrazione della password principale (escluso il primo carattere) dalla memoria consente l'accesso non autorizzato alle credenziali salvate.
Dettagli dell'Exploit
Strumenti e Tecniche
L'exploit sfrutta lo strumento KeePass Master Password Dumper, che utilizza il riconoscimento di pattern in memoria per estrarre i caratteri dai dump della memoria.
- Limitazioni: Il primo carattere della password non viene recuperato, ma ciò non rappresenta un ostacolo significativo poiché il resto della password può essere facilmente ricostruito o indovinato.
- Modello di Minaccia: Questa vulnerabilità evidenzia i rischi sui sistemi condivisi o non presidiati, dove è possibile accedere ai dump della memoria (ad es.,
pagefile.sys o hiberfil.sys).
Piano di Sfruttamento
Prerequisiti
Per eseguire con successo questo exploit, sono necessari il seguente ambiente e i seguenti strumenti:
- Software di Virtualizzazione: VMware o uno strumento equivalente per isolare l'ambiente di test.
- ISO di Windows 10: Il sistema operativo per l'installazione vulnerabile di KeePass.
- KeePass 2.x: Una versione precedente alla 2.54.
- Runtime .NET 7: Richiesto per eseguire lo strumento PoC.
- Strumento PoC: KeePass Password Dumper, disponibile su GitHub.
Fasi con Motivazioni
1. Configurazione dell'Ambiente
- Perché una VM?
Le macchine virtuali offrono un ambiente sicuro e controllato per testare le vulnerabilità senza rischiare i sistemi di produzione.
- Passaggi:
- Installare VMware e creare una nuova istanza VM con Windows 10.
- Installare KeePass 2.x (ad es., versione 2.53) e impostare una password principale.
- Esempio di Password Principale:
user.
2. Installare le Dipendenze
- Perché .NET 7?
Lo strumento PoC è basato sul framework .NET 7. L'utilizzo del runtime corretto garantisce la compatibilità.
- Passaggi:
- Scaricare e installare
.NET 7 dal sito ufficiale di Microsoft.
- Confermare l'installazione utilizzando:
3. Creazione del Dump della Memoria
- Perché Eseguire il Dump della Memoria del Processo KeePass?
La vulnerabilità risiede nella gestione della memoria di KeePass. Catturare un dump consente l'analisi dell'impronta di memoria, dove risiedono le tracce della password.
- Passaggi:
- Aprire KeePass e sbloccare il database utilizzando la password principale.
- Utilizzare Task Manager per creare un file
.DMP per il processo KeePass:
- Individuare KeePass in Task Manager.
- Fare clic con il tasto destro e selezionare Crea File di Dump.
- Annotare la posizione del file
.DMP (tipicamente nella directory %TEMP%).
4. Eseguire lo Strumento PoC
- Perché Copiare il Dump nella Directory del PoC?
Lo strumento PoC elabora i file di dump all'interno della propria directory di lavoro. Questo passaggio garantisce che venga analizzato il file corretto.
- Passaggi:
- Spostare il file
.DMP nella cartella PoC estratta.
- Rinominare il file in
KeePass.DMP per coerenza.
- Aprire un terminale, navigare nella directory del PoC ed eseguire lo strumento:
cd Downloads/keepass-password-dumper-main
dotnet run KeePass.DMP
- Risultato Atteso:
Lo strumento restituirà i caratteri della password tranne il primo.
Sequenza di Comandi di Esempio
cd Downloads/keepass-password-dumper-main
dir
dotnet run KeePass.DMP
Strategie di Mitigazione
Correzioni Consigliate
-
Aggiornare KeePass:
L'aggiornamento a KeePass 2.54 risolve la vulnerabilità introducendo i seguenti miglioramenti:
- Gestione avanzata della memoria per i dati sensibili.
- Inserimenti di stringhe casualizzati per ridurre la prevedibilità in memoria.
-
Proteggere i Dump della Memoria:
- Cancellare o sovrascrivere regolarmente i file sensibili come
pagefile.sys e hiberfil.sys.
- Riavviare periodicamente i sistemi per eliminare i dati sensibili dalla memoria.
-
Adottare una Gestione Sicura della Memoria:
Gli sviluppatori dovrebbero adottare buone pratiche per la gestione delle stringhe sensibili, come l'uso di strutture dati mutabili o la pulizia dei buffer di memoria dopo l'uso.
Note Importanti
- Uso Solo a Scopo Dimostrativo:
Questo exploit è destinato a scopi educativi in un ambiente controllato. Non utilizzare queste informazioni in modo dannoso.
- Consapevolezza dell'Impatto:
Le organizzazioni dovrebbero valutare le implicazioni di questa vulnerabilità sui sistemi condivisi o multi-utente e implementare le mitigazioni di conseguenza.
GUARDA IL MIO VIDEO YOUTUBE PER LO SFRUTTAMENTO DAL VIVO DELLA CVE
https://youtu.be/o855F0RvI30?si=WXOtPu-jgtC31O-5
Riferimenti
Autore
Bhargav Raj Dutta
Laurea in Information Technology con specializzazione in Cyber Security e Digital Forensics (Murdoch University)
Per qualsiasi domanda o richiesta di collaborazione, non esitare a contattarmi su [LinkedIn www.linkedin.com/in/bhargav-raj-dutta-80251a1b4)