
PoC per l'estrazione della password principale di KeePass su Linux
Grazie a vdohney per aver trovato questa vulnerabilità e averla segnalata responsabilmente, e a Dominik Reichl per il fantastico software open source e la rapida conferma/correzione del problema.
Probabilmente no. Questo exploit richiede l'accesso al filesystem virtuale /proc. Nello specifico, proc/[pid]/mem.
Come riportato nel man di proc, l'accesso a questo file è regolato da una modalità di accesso ptrace, PTRACE_MODE_ATTACH_FSCREDS, che nella maggior parte dei sistemi è limitata all'utente root.
Se un attore malintenzionato ha già accesso a questi file, dovresti avere preoccupazioni più grandi.
Si prega di aggiornare a KeePass 2.54 non appena sarà rilasciata (~luglio 2023), poiché mitigherà in qualche modo questo problema. (Forum)
Per prima cosa inizia scaricando la memoria del processo di Keepass.
Il comportamento predefinito è scansionare tutti i file /proc/<pid>/cmdline e memorizzare i pid di quelli che contengono la parola chiave KeePass nel loro argomento della riga di comando.
Successivamente acquisirà gli indirizzi delle mappe di memoria in /proc/<pid>/maps che non sono direttamente associate a una libreria, cioè hanno un percorso file vuoto.
Poi memorizzerà la memoria di tutte queste mappe in un buffer sfruttando /proc/<pid>/mem. Questo sarebbe un comportamento primitivo per scaricare la memoria di qualsiasi processo su Linux.
Analizzerà la memoria per cercare di trovare stringhe residue da quando l'utente ha digitato la sua password master, stringhe che appaiono così •a, ••s, •••s, in sequenza. La prima lettera mancherà. Puoi trovare altre funzionalità guardando il codice.
gcc dump_pwd.c -o dump e sei pronto.
