BloodHound
BloodHound es una herramienta que utiliza la teoría de grafos para mapear relaciones entre usuarios, grupos, equipos y permisos en AD.
Última actualización
¿Te fue útil?
BloodHound es una herramienta que utiliza la teoría de grafos para mapear relaciones entre usuarios, grupos, equipos y permisos en AD.
Última actualización
¿Te fue útil?
Su enfoque basado en grafos permite visualizar relaciones y permisos dentro de un entorno Active Directory (AD) de forma clara y precisa, permitiendo identificar rutas de ataque.
Está formada por:
SharpHound: recolector que obtiene información desde el entorno.
BloodHound GUI: interfaz gráfica para visualizar e investigar rutas de ataque.
Neo4j: base de datos de grafos utilizada por BloodHound para almacenar los datos.
Para obtener los mejores resultados, sus versiones de Bloodhound y Sharphound deben ser compatibles.
Si no se puede descargar desde el propio equipo windows por no contar con acceso a internet, se puede descargar SharpHound.ps1
usando un servidor temporal desde un equipo que se encuentre en la misma red que el equipo víctima Windows.
En el equipo controlado por el atacante:
Desde el equipo windows víctima:
Puedes usar SharpHound.exe
o SharpHound.ps1
para recolectar desde una máquina con acceso al dominio.
O vía PowerShell (útil con acceso a memoria pero sin tocar disco):
Desde una máquina Kali se pueden hacer uso de las credenciales de los usuarios víctima para enumerar la información del AD:
Este método es ideal cuando tienes credenciales, pero no acceso a una máquina Windows.
En entornos corporativos de gran tamaño, la arquitectura de Active Directory suele mantenerse bastante estable. Aunque pueda haber ciertos cambios como nuevas incorporaciones o ajustes menores, la estructura principal de unidades organizativas (OUs), usuarios, grupos y permisos rara vez sufre modificaciones drásticas.
Lo que sí cambia constantemente es otra cosa: las sesiones activas de los usuarios y los eventos de autenticación. Como Sharphound realiza una recopilación puntual del estado del dominio, la información relacionada con sesiones puede volverse obsoleta con rapidez, especialmente si los usuarios cierran sesión o si otras cuentas inician nuevas sesiones tras la recolección de datos.
Para mantener una visión precisa y actual del entorno, es recomendable:
Realizar una primera ejecución de Sharphound utilizando --CollectionMethods All
, lo cual capturará toda la información relevante del dominio (estructura, permisos, relaciones, etc.).
Posteriormente, realizar ejecuciones periódicas únicamente del método Session
, que se enfoca exclusivamente en detectar nuevas sesiones de usuario sin volver a recopilar toda la estructura AD.
El momento ideal para capturar sesiones activas suele ser:
A media mañana (sobre las 10:00), cuando los usuarios ya han iniciado su jornada laboral.
Después del almuerzo (alrededor de las 15:00-16:00), justo antes de que comiencen a conectarse de nuevo tras volver de haber comido.
Sharphound no elimina sesiones anteriores automáticamente, por lo que es buena idea purgar la información obsoleta antes de cargar nuevos datos. Desde BloodHound, accede a la pestaña "Database Info" y utiliza la opción "Clear Session Information" para mantener la base de datos limpia y centrada en sesiones realmente activas.
Instala BloodHound:
Abre la GUI de BloodHound (bloodhound
).
Hacer click en "Upload data" y importar el .zip
generado por SharpHound.
Buscar todos los usuarios que tengan el rol de "Global Administrator":
Todas las rutas a las máquinas virtuales:
Todas las rutas hacia "Azure KeyVaults":
Todas las rutas hacia "Azure Resource Group":
Buscar los Owners de "Azure Groups":
Otros:
Otros:
Antes de ejecutar la herramienta, si hay AV, es necesario evadir la protección de AMSI:
Conexión e importación:
Accede a y configura el password de neo4j
.