AD-BOF — Active Directory
El módulo AD-BOF proporciona herramientas fundamentales para interactuar con Active Directory durante un engagement de pentesting autorizado. Incluye comandos de reconocimiento LDAP, extracción de credenciales vía DCSync, lectura de contraseñas LAPS y manipulación del servicio WebDAV.
Agentes compatibles: Beacon, Gopher, Kharon
Plataforma: Windows
adwssearch
Realiza una consulta de búsqueda a través de Active Directory Web Services (ADWS) en lugar de LDAP estándar.
Cuándo usarlo: Cuando el puerto LDAP (389/636) está bloqueado o filtrado, pero el servicio ADWS (puerto 9389) sigue disponible. ADWS es un servicio alternativo que expone la misma información del directorio.
adwssearch "(objectClass=user)"
adwssearch "(&(objectCategory=computer)(operatingSystem=*Server*))"
adwssearch "(memberOf=CN=Domain Admins,CN=Users,DC=corp,DC=local)"| Argumento | Requerido | Descripción |
|---|---|---|
query | Sí | Consulta en formato de filtro LDAP |
badtakeover
Ejecuta la técnica BadSuccessor para comprometer el dominio de Active Directory explotando una vulnerabilidad en la delegación de confianza.
Cuándo usarlo: Cuando se identifica una relación de confianza explotable mediante la técnica BadSuccessor. Esta es una ruta de escalación de privilegios a nivel de dominio.
badtakeover DC01| Argumento | Requerido | Descripción |
|---|---|---|
target | Sí | Objetivo del ataque (nombre del DC o equipo) |
Advertencia: Este ataque modifica objetos del directorio. Úsalo solo cuando tengas autorización explícita y comprendas el impacto.
dcsync
Replica credenciales de Active Directory simulando el comportamiento de un Domain Controller (ataque DCSync). Este comando utiliza el protocolo MS-DRSR (Directory Replication Service Remote Protocol).
Requisitos: El usuario o cuenta bajo la que se ejecuta debe tener los privilegios:
- Replicating Directory Changes
- Replicating Directory Changes All
Esto normalmente lo tienen los Domain Admins o cuentas a las que se les haya otorgado explícitamente estos permisos mediante ACLs.
dcsync single
Extrae los secretos (hash NTLM, claves Kerberos) de un usuario específico.
dcsync single CORP\krbtgt
dcsync single CORP\Administrator
dcsync single CORP\Administrator --dc DC01.corp.local| Argumento | Requerido | Descripción |
|---|---|---|
domain\username | Sí | Usuario objetivo en formato DOMINIO\usuario |
--dc | No | Hostname o IP del Domain Controller |
dcsync all
Extrae los secretos de todos los usuarios del dominio.
dcsync all
dcsync all --dc DC01.corp.local| Argumento | Requerido | Descripción |
|---|---|---|
--dc | No | Hostname o IP del Domain Controller |
Advertencia:
dcsync allgenera un volumen masivo de tráfico de replicación. Es extremadamente ruidoso y fácilmente detectable por sistemas de monitoreo como Microsoft Defender for Identity (MDI) o soluciones SIEM. Usadcsync singlecuando solo necesites un usuario específico.
Cuándo usarlo: DCSync es el objetivo final en la cadena de compromiso de un dominio. Una vez que tienes el hash de krbtgt, puedes crear Golden Tickets. Usa dcsync single CORP\krbtgt primero para obtener persistencia, luego extrae cuentas específicas según sea necesario.
Las credenciales extraídas se agregan automáticamente al panel de Credenciales del cliente.
ldapsearch
Ejecuta una consulta LDAP directa contra el directorio con control total sobre el filtro y los atributos retornados.
Cuándo usarlo: Para consultas LDAP personalizadas que no están cubiertas por otros comandos. Es la herramienta de nivel más bajo para consultar el directorio.
ldapsearch "(objectClass=user)" sAMAccountName,description
ldapsearch "(&(objectCategory=person)(adminCount=1))" distinguishedName
ldapsearch "(servicePrincipalName=*)" sAMAccountName,servicePrincipalName --base "DC=corp,DC=local"| Argumento | Requerido | Descripción |
|---|---|---|
filter | Sí | Filtro LDAP (e.g., (objectClass=user)) |
attributes | No | Lista de atributos separados por coma |
--base | No | DN base de búsqueda |
ldapq computers
Consulta los objetos de tipo computadora del dominio y los registra automáticamente en el panel de Targets del cliente.
Cuándo usarlo: Al inicio de un engagement, para poblar la lista de objetivos con todos los equipos del dominio. Es la forma más rápida de obtener un inventario de máquinas para luego planificar movimiento lateral.
ldapq computersNo requiere argumentos adicionales.
readlaps
Lee las contraseñas de administrador local almacenadas por LAPS (Local Administrator Password Solution) o Windows LAPS.
Cuándo usarlo: Cuando LAPS está desplegado en el entorno. Si tienes permisos de lectura sobre el atributo ms-Mcs-AdmPwd (LAPS v1) o msLAPS-Password (Windows LAPS), puedes obtener la contraseña de administrador local en texto plano.
readlaps WORKSTATION01
readlaps SERVER-DB01| Argumento | Requerido | Descripción |
|---|---|---|
computer | Sí | Nombre del equipo (sAMAccountName sin el $) |
Las credenciales obtenidas se extraen automáticamente al panel de Credenciales.
Nota: Los permisos de lectura de LAPS se delegan normalmente a grupos específicos (e.g., “Desktop Support”, “Server Admins”). Verifica los ACLs del atributo si no puedes leer la contraseña.
webdav
Controla el servicio WebClient (WebDAV redirector) en el equipo comprometido.
webdav enable
Inicia el servicio WebClient en la máquina objetivo.
webdav enableCuándo usarlo: Para habilitar ataques de coerción basados en WebDAV. Cuando WebClient está activo, se puede forzar autenticación HTTP en lugar de SMB, lo cual permite relay a servicios que no soportan SMB (como LDAP o ADCS HTTP endpoints). Es un paso previo esencial para cadenas de ataque como:
- PetitPotam → ADCS relay: Coerces autenticación WebDAV → relay HTTP a ADCS para solicitar certificado
- RBCD attack chain: Coerces autenticación → relay a LDAP para configurar delegación
webdav status
Consulta el estado actual del servicio WebClient.
webdav statusRetorna si el servicio está iniciado, detenido o deshabilitado.
Flujo de trabajo recomendado
1. ldapq computers → Poblar panel de Targets
2. ldapsearch "(...)" ... → Reconocimiento detallado del directorio
3. readlaps WORKSTATION01 → Intentar obtener credenciales LAPS
4. webdav enable → Preparar para ataques de coerción
5. dcsync single CORP\krbtgt → Objetivo final: obtener hash de krbtgt