Reconocimiento

Identificar rutas de privilegio con BloodHound

Cómo un atacante con una cuenta de dominio normal mapea Active Directory en un grafo y encuentra la cadena hasta Domain Admin.

Qué es

BloodHound recolecta las relaciones de Active Directory y las modela como un grafo. Un atacante consulta ese grafo y encuentra la cadena de permisos que lleva de una cuenta cualquiera hasta Domain Admin.

Cómo funciona

Active Directory guarda todas las relaciones entre objetos en el directorio: quién pertenece a cada grupo, qué permisos concede cada ACL, qué sesiones hay abiertas. Cualquier usuario autenticado lee casi todo eso por LDAP.

Un colector descarga esos datos. BloodHound los carga como nodos (usuarios, grupos, equipos) y aristas (relaciones como MemberOf, AdminTo o GenericAll).

Ningún permiso suelto parece peligroso. El riesgo es la cadena. Un algoritmo de camino más corto une esas aristas y devuelve los saltos exactos desde una cuenta controlada hasta el objetivo.

Diagrama

Comandos

Recolectar desde un equipo Windows unido al dominio, con SharpHound:

SharpHound.exe -c All -d <DOMAIN>

Lo mismo desde PowerShell, con el módulo SharpHound:

Import-Module .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod All -Domain <DOMAIN> -ZipFileName <FILE>

Recolectar desde Linux, con credenciales de dominio:

bloodhound-python -u <USER> -p <PASSWORD> -d <DOMAIN> -ns <IP> -c All --zip

En la interfaz, marca las cuentas comprometidas como "owned" y busca el camino más corto a Domain Admins con Cypher:

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

Cómo defenderse

Audita y elimina las ACL peligrosas (GenericAll, WriteDACL, ForceChangePassword) sobre grupos y cuentas privilegiadas.

Siguiente

Puedes seguir leyendo aquí:

ReconocimientoIdentificar cuentas de servicio vulnerables a Kerberoasting

No te pierdas ninguna noticia

Recibe un correo cuando haya alguna actualización importante.

Al suscribirte aceptas la política de privacidad.