BloodHound
BloodHound recoge usuarios, grupos, sesiones, ACL y delegaciones del dominio y los dibuja como un grafo. Marca como owned lo que ya controlas y pide el camino más corto a Domain Admins: casi toda máquina de AD se resuelve siguiendo esas flechas.
- Plataforma
- Docker (CE) · recolectores en Python, C# y Rust
- Web oficial
- github.com/SpecterOps/BloodHound
- En HTB
- 22 máquinas
Instalación
curl -L https://ghst.ly/getbhce | docker compose -f - up
- T1069.002 Grupos del dominio
- T1087.002 Cuentas del dominio
- T1482 Descubrimiento de confianzas entre dominios
- Abuso de ACLs (BloodHound)
- Enumeración LDAP/RPC del dominio
Chuleta de BloodHound
Tus datos
Se guardan en este navegador y se aplican a todas las chuletas.
Recolectores
RustHound-CE desde Linux
rusthound-ce -d box.htb -u usuario -p 'Password123!' -z
SharpHound solo con lo que cambia rápido (sesiones)
Víctima
.\SharpHound.exe -c Session --loop --loopduration 00:10:00
En nuestras chuletas
Escalada en Windows y Active Directory › Active Directory
Recoger datos para BloodHound
bloodhound-python -u 'usuario' -p 'Password123!' -d box.htb -ns 10.10.11.20 -c All --zip
Active Directory a fondo › BloodHound
Recolector remoto en Python (CE)
Atacante
bloodhound-ce-python -u usuario -p 'Password123!' -d box.htb -ns 10.10.11.20 -dc dc01.box.htb -c All --zip
Con NetExec, sin instalar nada más
Atacante
nxc ldap 10.10.11.20 -u usuario -p 'Password123!' --bloodhound -c All --dns-server 10.10.11.20
SharpHound desde la víctima Windows
Víctima
.\SharpHound.exe -c All --zipfilename datos
Marcar como pwned lo que ya controlas
MATCH (u:User) WHERE u.name STARTS WITH 'usuario' SET u.owned=true RETURN u
Caminos más cortos desde lo que controlas hasta Domain Admins
MATCH p=shortestPath((n {owned:true})-[*1..]->(g:Group)) WHERE g.name STARTS WITH 'DOMAIN ADMINS@' RETURN p
Usuarios kerberoastables (tienen SPN)
MATCH (u:User {hasspn:true}) RETURN u.name, u.serviceprincipalnames
Usuarios AS-REP roastables (sin preautenticación)
MATCH (u:User {dontreqpreauth:true}) RETURN u.name
Qué puede abusar el usuario que controlas (ACL de salida)
MATCH p=(u:User {owned:true})-[:GenericAll|GenericWrite|WriteDacl|WriteOwner|AddKeyCredentialLink|ForceChangePassword|AddMember|AllowedToDelegate*1..]->(n) RETURN p
Equipos con delegación sin restricciones
MATCH (c:Computer {unconstraineddelegation:true}) RETURN c.name
Sesiones de usuarios de alto valor (dónde capturar credenciales)
MATCH (u:User)-[:MemberOf*1..]->(g:Group) WHERE g.highvalue=true MATCH (c:Computer)-[:HasSession]->(u) RETURN c.name, u.name
Quién puede leer la contraseña de un gMSA
MATCH p=(n)-[:ReadGMSAPassword]->(m:User) RETURN p
Quién puede leer LAPS en qué equipos
MATCH p=(n)-[:ReadLAPSPassword]->(c:Computer) RETURN p
Ningún comando coincide.
Máquinas de HTB donde se usa BloodHound
Sacadas de los capítulos de los vídeos de IppSec en los que aparece BloodHound. El enlace ▶ salta al minuto de esa parte.
- Cross-Site Scripting (XSS)
- CSRF
- Inyección SQL
- SSRF
- Credenciales guardadas / DPAPI
- ADCS (certificados)
- Captura y relay NTLM
- Pass-the-hash / ticket
- Password spraying y usuarios válidos
- Credenciales en ficheros
- Servicios internos y port forwarding
- Volcado de SAM/LSA/LSASS
- Abuso de ACLs (BloodHound)
- GPP y abuso de GPO
- Cracking de hashes
Guías que usan BloodHound
- Enumeración de Active Directory: usuarios, LDAP, BloodHound y password spraying 4 min de lectura Qué hacer al encontrar un controlador de dominio: enumerar sin credenciales, conseguir usuarios válidos, password spraying sin bloqueos y BloodHound.
- Abuso de ACLs en Active Directory: GenericAll, WriteDacl, Shadow Credentials y DCSync 4 min de lectura Qué hacer con cada flecha de BloodHound: cambiar contraseñas, añadirte a grupos, Shadow Credentials, darte DCSync con WriteDacl y leer LAPS o gMSA.
- Contraseñas en Active Directory: GPP (Groups.xml), LAPS y gMSA 3 min de lectura Tres sitios donde el propio dominio guarda contraseñas que puedes leer: cpassword en Groups.xml, la contraseña LAPS del administrador local y el hash de las cuentas gMSA.
- Kerberoasting y AS-REP Roasting: hashes de Active Directory para crackear 3 min de lectura Qué hace vulnerable a una cuenta, cómo pedir los tickets con Impacket, NetExec o Rubeus, cómo crackearlos con hashcat y los errores típicos (reloj, etype, nombres de usuario).
- Mejores máquinas de Hack The Box para aprender Active Directory 3 min de lectura 21 máquinas de HTB para aprender Active Directory de fácil a insane, qué técnica enseña cada una y en qué orden hacerlas para preparar OSCP, CPTS o CRTP.