Saltar al contenido
Active Directory
Índice de contenidos

BloodHound (mapear el camino a Domain Admin)

BloodHound recolecta información del dominio y la representa como un grafo: usuarios, grupos, equipos, sesiones y permisos. Su magia es responder a la pregunta “desde donde estoy, ¿cómo llego a Domain Admin?” dibujando la ruta más corta. Convierte un Active Directory enorme y confuso en un mapa de “haz esto, luego esto”.

Contexto en Introducción a Active Directory.


Flujo general

  1. Recolectar
    Un "ingestor" vuelca el dominio (usuarios, grupos, ACLs, sesiones).
  2. Importar
    Arrastras los .json/.zip a la interfaz de BloodHound.
  3. Consultar
    Usas las consultas preconstruidas y marcas tu usuario como "owned".
  4. Seguir la ruta
    BloodHound dibuja el camino hacia Domain Admin.

Paso 1 — Recolectar datos

Necesitas unas credenciales de dominio (cualquiera). Dos formas:

Desde Linux (remoto) — bloodhound-python

bloodhound-python -u '<user>' -p '<pass>' -d dominio.local -ns <DC_IP> -c All --zip

Con netexec

netexec ldap <DC_IP> -u <user> -p <pass> --bloodhound --collection All --dns-server <DC_IP>

Desde Windows (dentro de la víctima) — SharpHound

.\SharpHound.exe -c All
# o la versión PowerShell
Import-Module .\SharpHound.ps1 ; Invoke-BloodHound -CollectionMethod All

Consejo: -c All recoge casi todo, pero las sesiones (quién tiene sesión abierta en cada equipo) son clave para el movimiento lateral y a veces requieren privilegios. Si una recolección sale pobre, repítela cuando tengas más acceso.


Paso 2 — Importar y marcar

  1. Arranca BloodHound (con Neo4j detrás) o usa BloodHound CE.
  2. Arrastra el .zip/.json generado a la ventana.
  3. Busca tu usuario, clic derecho → Mark as Owned (marca lo que ya controlas).
  4. (Opcional) marca objetivos de alto valor como High Value.

Paso 3 — Consultas que resuelven máquinas

En la pestaña Analysis tienes consultas prehechas; las más útiles:

ConsultaPara qué
Shortest Paths to Domain AdminsEl camino directo al objetivo.
Shortest Paths from Owned PrincipalsDesde lo que ya controlas, ¿a dónde llego?
Find Kerberoastable AccountsCuentas con SPN → Kerberoasting.
Find AS-REP Roastable UsersCuentas sin preauth → AS-REP.
Find Computers with Unconstrained DelegationDelegación abusable.
Shortest Paths to High Value TargetsRutas a objetos críticos.

Paso 4 — Interpretar las aristas (edges)

Las flechas del grafo son relaciones abusables. Las más comunes:

EdgeSignificado y abuso
MemberOfPertenencia a un grupo (heredas sus permisos).
GenericAll / GenericWriteControl total/escritura sobre un objeto → cambiar su contraseña, añadir SPN, etc.
WriteDacl / OwnsPuedes modificar los permisos del objeto → darte GenericAll.
ForceChangePasswordPuedes cambiar la contraseña de ese usuario.
AddMemberPuedes meterte (o meter a alguien) en un grupo.
CanRDP / CanPSRemotePuedes conectarte a ese equipo (RDP/WinRM).
HasSessionUn usuario tiene sesión ahí → roba su token/credenciales si comprometes el equipo.
AllowedToDelegateDelegación Kerberos abusable.

Consejo: clic derecho sobre cualquier arista → Help: BloodHound te da el comando exacto para abusar de esa relación (con PowerView, impacket o bloodyAD). No tienes que memorizar los abusos; la propia herramienta te los dicta.


Ejemplo de ruta típica

Usuario ownedGenericWrite sobre SVCset SPN + KerberoastcrackearMemberOf grupo privilegiadoDCSyncDomain Admin

Herramientas relacionadas

HerramientaDescripción
bloodhound-pythonIngestor remoto desde Linux.
SharpHoundIngestor desde Windows (exe/ps1).
netexec --bloodhoundRecolección integrada.
BloodHound / BloodHound CEInterfaz del grafo.
bloodyAD / PowerViewEjecutar los abusos que indica cada edge.

Consejo: BloodHound es la herramienta que más vas a mirar en AD. El método ganador: consigue una credencial → recolecta con -c All → marca tu usuario como owned → ejecuta “Shortest Paths from Owned Principals” → sigue las flechas usando el Help de cada edge. No ataques el dominio a ciegas: deja que BloodHound te dibuje el camino.