the_open_door
café
ESEN
← Volver al índice

BloodHound

BloodHound es la herramienta de referencia para analizar caminos de ataque en Active Directory. Convierte la enumeración del dominio en un grafo y resuelve la pregunta clave: desde donde estoy, cuál es la ruta más corta hasta Domain Admin. Su valor no es descubrir un permiso suelto, sino encadenar decenas de relaciones que a mano serían invisibles.

Recolección. Un collector consulta el dominio y guarda el resultado en varios JSON (que luego se importan). Los habituales:

# desde Linux, solo con credenciales de dominio
bloodhound-python -u <user> -p <pass> -d <domain> -ns <ip-dc> -c All

# desde Windows, con el binario
SharpHound.exe -c All

# netexec también sabe recolectar
netexec ldap <ip-dc> -u <user> -p <pass> --bloodhound --collection All

-c All recoge usuarios, grupos, ACLs, sesiones activas, delegaciones, GPOs y pertenencias. La parte de sesiones (qué usuario tiene sesión en qué equipo) es la más ruidosa y la que exige puertos SMB/admin; el resto sale de LDAP con una cuenta normal.

El modelo. BloodHound pinta cada principal como un nodo y cada permiso o relación como una arista dirigida. Y aquí está la idea central: cada arista es un abuso con nombre propio. Una flecha ForceChangePassword de A a B significa que A puede convertirse en B; una GenericAll sobre un equipo abre RBCD; una MemberOf hacia Domain Admins cierra la cadena. Leer el grafo es leer la lista de abusos de ACL disponibles: GenericAll, GenericWrite, ForceChangePassword, WriteDACL, WriteOwner, DCSync.

Cómo se usa. Se marca el punto de partida (clic derecho sobre el nodo controlado, Mark as Owned) y se lanza Shortest Path from Owned Principals, o consultas Cypher a medida:

MATCH p=shortestPath((n {owned:true})-[*1..]->(m:Group {name:"DOMAIN ADMINS@DOMINIO"})) RETURN p

Cada nodo trae, en Help > Abuse Info, el comando exacto para abusar de esa arista, lo que enlaza el análisis con la explotación sin salir de la herramienta.

Matiz. El grafo refleja el estado en el momento de la recolección y muestra lo que es teóricamente posible según las ACEs; no comprueba que cada arista funcione ahora (una sesión puede haber caducado, una cuenta estar deshabilitada). Es un mapa de rutas candidatas, no una garantía: cada paso se verifica al ejecutarlo. Nota de versiones: BloodHound Community Edition (BHCE) sustituye al legacy con el mismo modelo de grafo pero distinta interfaz y motor.

Cómo detectarlo. La recolección es una enumeración masiva que deja firma. La parte LDAP se ve mejor con el LDAP query logging (canal Directory Service o eventos 1644 con el diagnóstico Expensive/ Inefficient LDAP activado): un solo cliente lanzando cientos de consultas LDAP en segundos, recorriendo todo el árbol, no es actividad normal de una estación. La parte de sesiones toca SMB contra muchos equipos (5145 sobre IPC$/srvsvc en cada uno) en poco tiempo. Los honey accounts o canary objects (objetos señuelo sin uso legítimo) convierten cualquier consulta que los toque en una alarma de alta fidelidad, y detectan al recolector aunque module el ritmo. En red, SharpHound genera un pico de tráfico LDAP/SAMR/SMB muy característico.

Defensa. La mitigación de fondo es la misma que para el abuso de ACLs: usar BloodHound en modo defensivo para encontrar y cortar las rutas a Tier-0 antes de que las encuentre un atacante.

HerramientasldapsearchBloodHoundSharpHoundldapdomaindumpbloodhound-pythonBloodHound CLI

Máquinas donde se aplica