Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/0xedh/dumpguard_bof
Ataques de SenhaExploraçãoPós-ExploraçãoTestes de PenetraçãoAutenticaçãoRed Teaming
GitHub0xedh/dumpguard_bof

dumpguard_bof

Porta do Beacon Object File (BOF) do DumpGuard para extrair hashes NTLMv1 de sessões em sistemas Windows modernos.

Ver Repositório
2222412há 8 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

DumpGuard BOF

Port do Beacon Object File (BOF) do DumpGuard para extrair hashes NTLMv1 de sessões em sistemas Windows modernos.

Demo

Sobre Este Projeto

Este repositório contém uma implementação Beacon Object File (BOF) do DumpGuard, portada da implementação original em C#/.NET para C puro para uso com Havoc e outros frameworks C2 que suportam execução de BOF.

Isto é uma Prova de Conceito (PoC) e um exercício de aprendizado.

Este port BOF foi criado como parte da minha jornada pessoal para entender os detalhes do protocolo Remote Credential Guard, fluxos de autenticação Kerberos e os mecanismos de segurança subjacentes do Windows. O processo de portar esta ferramenta de C# para C puro para execução BOF foi principalmente um esforço educacional.

Por favor, esteja ciente de que:

  • Este código pode conter bugs, erros ou implementações incompletas.
  • Não foi extensivamente testado em todas as versões ou configurações do Windows.
  • Alguns casos extremos ou nuances de protocolo podem não ser tratados adequadamente.
  • A implementação pode diferir da original de maneiras que afetam a confiabilidade.
  • Este não é um código pronto para produção. Use por sua conta e risco Ü.

Se você encontrar problemas ou tiver melhorias, contribuições são bem-vindas. Para uma implementação robusta e bem testada, consulte a ferramenta DumpGuard original.

Pesquisa Original

Este BOF é baseado na pesquisa e ferramentas de @bytewreck na SpecterOps:

  • Ferramenta Original: github.com/bytewreck/DumpGuard
  • Post no Blog: Catching Credential Guard Off Guard

Visão Geral

O DumpGuard explora o Windows Remote Credential Guard (RCG) para extrair hashes NTLMv1 de usuários logados sem tocar na memória do LSASS e sem exigir privilégios de administrador. Funciona mesmo quando o Credential Guard está ativado.

Como Funciona

  1. Personificar um servidor CredSSP/RDP localmente. O BOF atua como um servidor RDP falso.
  2. Enganar o SSPI do Windows para realizar uma autenticação Kerberos + CredSSP completa.
  3. Receber as credenciais do usuário encapsuladas em TSRemoteGuardCreds.
  4. Chamar o pacote TSSSP do LSA para calcular uma resposta NTLMv1 com um desafio conhecido.

A Dança do CredSSP em 4 Rodadas

RodadaCliente -> ServidorServidor -> Cliente
1SPNEGO + TGT-REQTGT-REPLY (do KDC real)
2AP-REQ (ticket de serviço)AP-REP + MIC
3PubKeyAuth (hash de vinculação)Hash de vinculação do servidor
4AuthInfo (TSRemoteGuardCreds)N/A

Após a Rodada 4, temos o blob de credenciais criptografado. A mágica acontece quando chamamos LsaCallAuthenticationPackage com o pacote TSSSP. O LSA roteia nossa solicitação através de RDPEAR -> TSRemoteGuard -> MSV1_0, que descriptografa os segredos e calcula a resposta NTLMv1 para nós.

Contexto

O Credential Guard isola os segredos NTLM e Kerberos em um espaço VBS seguro (LsaIso.exe), prevenindo ataques de acesso direto à memória como o Mimikatz. No entanto, o Credential Guard ainda precisa usar esses segredos para autenticação legítima. Essa é a interface que esta técnica explora.

Para o mergulho técnico completo, veja: Catching Credential Guard Off Guard

Implementação

Este port BOF implementa apenas o modo "Self" da ferramenta DumpGuard original. Os modos "All" não estão implementados nesta versão.

Modo Self

Despeja o hash NTLMv1 do usuário do processo atual através do protocolo Remote Credential Guard.

  • Requisito de Privilégio: Nenhum (executa no contexto do usuário atual)
  • Status do Credential Guard: Funciona independentemente de o Credential Guard estar ativado
  • Requisitos: Credenciais para uma conta com um SPN registrado

Extraindo Hashes de Outros Usuários

Embora este BOF implemente apenas o modo "self", você ainda pode extrair hashes NTLMv1 de outros usuários, por exemplo, injetando em um processo executando como aquele usuário. Por exemplo, se você tiver privilégios de administrador, pode injetar o BOF em um processo pertencente a outro usuário logado para obter seu hash.

Pré-requisitos

Conta com SPN Ativado

Esta técnica requer credenciais para uma conta que tenha um Service Principal Name (SPN) registrado. Uma maneira de conseguir isso é criando uma conta de máquina e adicionando um SPN a ela.

Passo 1: Criar uma Conta de Máquina

Usando Impacket:

python3 addcomputer.py -computer-name 'YOURCOMPUTER$' domain.local/user:password -dc-ip <DC_IP>

Exemplo de saída:

[*] Successfully added machine account YOURCOMPUTER$ with password <random_password>.

Passo 2: Adicionar um SPN à Conta de Máquina

Usando krbrelayx addspn.py:

python3 addspn.py -u domain.local\\YOURCOMPUTER\$ -p '<password>' -s host/yourspn.domain.local --target-type samname <DC_IP>

Passo 3: Verificar o SPN (opcional)

Usando pywerview:

python3 pywerview.py get-adobject -d domain.local -u YOURCOMPUTER\$ -p '<password>' -t <DC_IP> --sam-account-name YOURCOMPUTER\$

Procure por serviceprincipalname: host/yourspn.domain.local na saída.

Uso

Havoc C2

inline-execute /path/to/dumpguard.x64.o x <domínio> <nome_do_usuário> <senha> <spn>

Nota: O parâmetro x é um argumento fictício/place holder necessário antes do domínio. Isso pode ser resolvido em versões futuras (se houver).

Exemplo:

inline-execute /tmp/dumpguard.x64.o x sevenkingdoms.local EVIL_COMPUTER$ MXj070PQpCkNmZiYsRbIu8YYwgDKPD2r host/EVILSPN.sevenkingdoms.local

Exemplo de saída:

[DG] Domain: sevenkingdoms.local
[DG] User: EVIL_COMPUTER$
[DG] SPN: host/EVILSPN.sevenkingdoms.local
[DG] checkpoint 1: init APIs
[DG] SSPI init OK
[DG] checkpoint 2: acquire creds
[DG] checkpoint 3: starting SSPI loop
[DG] Round 1
[DG] AS-REQ: LTK derived, etype=18 len=32
[DG] AS-REQ: sending to KDC...
[DG] Round 2
[DG] Round 3
[DG] NTLMv1: SEVENKINGDOMS\EVIL_COMPUTER$::GOAD-WIN2025::6D270E39AD2DE48B561895C3257D7123FE84F1438B147E2A:1122334455667788

Importante: O hash NTLMv1 extraído pertence ao usuário executando o processo BOF, não à conta de máquina usada para autenticação (EVIL_COMPUTER$). As credenciais da conta de máquina são usadas apenas para autenticar no KDC e estabelecer a sessão Remote Credential Guard.

A saída está no formato NTLMv1 compatível com hashcat:

DOMAIN\user::HOSTNAME::NTRESPONSE:CHALLENGE

Compilação

make clean && make

Saída: build/dumpguard.x64.o

Requisitos

  • O alvo deve ser uma máquina Windows ingressada em um domínio
  • Você precisa de credenciais para uma conta com SPN habilitado (veja Pré-requisitos)
  • O BOF executa no contexto do usuário do processo atual

Referências

Documentação Microsoft

Baixar ferramenta