Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
dumpguard_bof — Beacon Object File (BOF) port de DumpGuard para extraer hashes NTLMv1 de sesiones en sistemas Windows modernos. | Kitploit
Herramientas/GitHubGitHub/0xedh/dumpguard_bof
Ataques de ContraseñasExplotaciónPost-ExplotaciónPruebas de PenetraciónAutenticaciónRed Teaming
GitHub0xedh/dumpguard_bof

dumpguard_bof

Beacon Object File (BOF) port de DumpGuard para extraer hashes NTLMv1 de sesiones en sistemas Windows modernos.

Ver Repositorio
22224hace 7 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

DumpGuard BOF

Puerto de Beacon Object File (BOF) de DumpGuard para extraer hashes NTLMv1 de sesiones en sistemas Windows modernos.

Demo

Acerca de este proyecto

Este repositorio contiene una implementación de Beacon Object File (BOF) de DumpGuard, migrada de la implementación original en C#/.NET a C puro para su uso con Havoc y otros frameworks C2 que soportan la ejecución de BOF.

Esto es una Prueba de Concepto (PoC) y un ejercicio de aprendizaje.

Este puerto BOF fue creado como parte de mi viaje personal para comprender los detalles del protocolo Remote Credential Guard, los flujos de autenticación Kerberos y los mecanismos de seguridad subyacentes de Windows. El proceso de migrar esta herramienta de C# a C puro para ejecución BOF fue principalmente un esfuerzo educativo.

Tenga en cuenta que:

  • Este código puede contener errores, fallos o implementaciones incompletas.
  • No ha sido probado exhaustivamente en todas las versiones o configuraciones de Windows.
  • Algunos casos extremos o matices del protocolo pueden no manejarse adecuadamente.
  • La implementación puede diferir de la original en aspectos que afecten la fiabilidad.
  • Esto no es código listo para producción. Úselo bajo su propio riesgo Ü.

Si encuentra problemas o tiene mejoras, las contribuciones son bienvenidas. Para una implementación robusta y bien probada, consulte la herramienta original DumpGuard.

Investigación original

Este BOF se basa en la investigación y herramientas de @bytewreck en SpecterOps:

  • Herramienta original: github.com/bytewreck/DumpGuard
  • Artículo del blog: Catching Credential Guard Off Guard

Descripción general

DumpGuard explota Windows Remote Credential Guard (RCG) para extraer hashes NTLMv1 de usuarios conectados sin tocar la memoria de LSASS y sin requerir privilegios de administrador. Funciona incluso cuando Credential Guard está habilitado.

Cómo funciona

  1. Suplanta un servidor CredSSP/RDP localmente. El BOF actúa como un servidor RDP falso.
  2. Engaña a SSPI de Windows para que realice una autenticación Kerberos + CredSSP completa.
  3. Recibe las credenciales del usuario envueltas en TSRemoteGuardCreds.
  4. Llama al paquete TSSSP de LSA para calcular una respuesta NTLMv1 con un desafío conocido.

El baile de 4 rondas de CredSSP

Después de la Ronda 4, tenemos el blob de credenciales cifrado. La magia ocurre cuando llamamos a LsaCallAuthenticationPackage con el paquete TSSSP. LSA enruta nuestra solicitud a través de RDPEAR -> TSRemoteGuard -> MSV1_0, que descifra los secretos y calcula la respuesta NTLMv1 por nosotros.

Antecedentes

Credential Guard aísla los secretos NTLM y Kerberos en un espacio VBS seguro (LsaIso.exe), evitando ataques de acceso directo a la memoria como Mimikatz. Sin embargo, Credential Guard aún necesita usar esos secretos para la autenticación legítima. Esa es la interfaz que explota esta técnica.

Para un análisis técnico completo, consulte: Catching Credential Guard Off Guard

Implementación

Este puerto BOF solo implementa el modo "Self" de la herramienta original DumpGuard. Los modos "All" no están implementados en esta versión.

Modo Self

Extrae el hash NTLMv1 del usuario del proceso actual a través del protocolo Remote Credential Guard.

  • Requisito de privilegio: Ninguno (se ejecuta en el contexto del usuario actual)
  • Estado de Credential Guard: Funciona independientemente de si Credential Guard está habilitado
  • Requisitos: Credenciales para una cuenta con un SPN registrado

Extraer hashes de otros usuarios

Si bien este BOF solo implementa el modo "self", aún puede extraer hashes NTLMv1 de otros usuarios, por ejemplo, inyectando en un proceso que se ejecute como ese usuario. Por ejemplo, si tiene privilegios de administrador, puede inyectar el BOF en un proceso propiedad de otro usuario conectado para obtener su hash.

Requisitos previos

Cuenta habilitada para SPN

Esta técnica requiere credenciales para una cuenta que tenga un Nombre de Principal de Servicio (SPN) registrado. Una forma de lograrlo es creando una cuenta de máquina y agregándole un SPN.

Paso 1: Crear una cuenta de máquina

Usando Impacket:

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

Ejemplo de salida:

root@kitploit:~
[*] Successfully added machine account YOURCOMPUTER$ with password <random_password>.

Paso 2: Agregar un SPN a la cuenta de máquina

Usando krbrelayx addspn.py:

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

Paso 3: Verificar el SPN (si lo desea)

Usando pywerview:

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

Busque serviceprincipalname: host/yourspn.domain.local en la salida.

Uso

Havoc C2

root@kitploit:~
inline-execute /path/to/dumpguard.x64.o x <dominio> <nombre_usuario> <contraseña> <spn>

Nota: El parámetro x es un marcador de posición/argumento ficticio requerido antes del dominio. Esto podría solucionarse en versiones futuras (si las hay).

Ejemplo:

root@kitploit:~
inline-execute /tmp/dumpguard.x64.o x sevenkingdoms.local EVIL_COMPUTER$ MXj070PQpCkNmZiYsRbIu8YYwgDKPD2r host/EVILSPN.sevenkingdoms.local

Ejemplo de salida:

root@kitploit:~
[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: El hash NTLMv1 extraído pertenece al usuario que ejecuta el proceso BOF, no a la cuenta de máquina utilizada para la autenticación (EVIL_COMPUTER$). Las credenciales de la cuenta de máquina solo se utilizan para autenticarse en el KDC y establecer la sesión de Remote Credential Guard.

La salida está en formato NTLMv1 compatible con hashcat:

root@kitploit:~
DOMINIO\usuario::NOMBREHOST::NTRESPUESTA:DESAFIO

Compilación

root@kitploit:~
make clean && make

Salida: build/dumpguard.x64.o

Requisitos

  • El objetivo debe ser una máquina Windows unida a un dominio
  • Necesita credenciales para una cuenta habilitada para SPN (consulte Requisitos previos)
  • El BOF se ejecuta en el contexto del usuario del proceso actual

Referencias

Documentación de Microsoft

  • Descripción general de Credential Guard
  • Remote Credential Guard
  • AcquireCredentialsHandle
  • InitializeSecurityContext
  • AcceptSecurityContext
  • LsaRegisterLogonProcess
  • LsaConnectUntrusted
  • LsaCallAuthenticationPackage

Protocolos de Microsoft

  • MS-RDPEAR - Protocolo de canal virtual de redirección de autenticación de escritorio remoto
  • MS-CSSP - Protocolo de proveedor de soporte de seguridad de credenciales

Artículos de investigación y entradas de blog

  • Catching Credential Guard Off Guard - Valdemar Caroe, SpecterOps (2025)
  • Pass the Challenge: Derrotando Windows Defender Credential Guard - Oliver Lyak (2022)
  • Trucos de explotación de Windows: Explotando escrituras arbitrarias de archivos para elevación local de privilegios - James Forshaw, Project Zero (2018)
  • El Proyecto LSA Whisperer - Evan McBroom, SpecterOps

Licencia

Licencia BSD de 3 cláusulas

La herramienta original DumpGuard está bajo licencia BSD de 3 cláusulas, Copyright (c) 2025 Valdemar Carøe. Este puerto BOF mantiene los mismos términos de licencia.


Para preguntas, informes de errores o contribuciones, abra un issue en GitHub.

Descargar herramienta
RondaCliente -> ServidorServidor -> Cliente
1SPNEGO + TGT-REQTGT-REPLY (desde KDC real)
2AP-REQ (ticket de servicio)AP-REP + MIC
3PubKeyAuth (hash de enlace)Hash de enlace del servidor
4AuthInfo (TSRemoteGuardCreds)N/A