19/04/2025
En el complejo mundo de la ciberseguridad, entender las relaciones y permisos dentro de un entorno de Active Directory (AD) es fundamental tanto para atacar como para defender una red. Aquí es donde entra en juego BloodHound, una aplicación que se ha vuelto indispensable para visualizar estos entornos complejos. Permite a los equipos de seguridad, ya sean ofensivos (Red Team) o defensivos (Blue Team), identificar rutas de ataque, configuraciones erróneas y relaciones de privilegios que de otro modo pasarían desapercibidas. Este artículo es una guía completa para que aprendas a instalar, configurar y utilizar BloodHound para dominar el análisis de Active Directory.

¿Qué es Exactamente BloodHound?
BloodHound es una aplicación de código abierto que mapea las relaciones dentro de un entorno de Active Directory. Utiliza la teoría de grafos para encontrar rutas de ataque ocultas y complejas. Su interfaz gráfica se basa en Electron, mientras que su motor de datos es una potente base de datos de grafos llamada Neo4j. Los datos se recopilan mediante "ingestores", que son scripts o ejecutables (disponibles en C# y PowerShell) que consultan el AD para obtener información sobre usuarios, grupos, equipos, sesiones, listas de control de acceso (ACLs) y relaciones de confianza.
Para los equipos ofensivos, es una hoja de ruta para la escalada de privilegios. Para los equipos defensivos, es un espejo que refleja las debilidades de su infraestructura, permitiéndoles fortalecerla antes de que sean explotadas.
Instalación y Configuración Inicial
La configuración de BloodHound es relativamente sencilla, aunque requiere algunos componentes clave. A continuación, detallamos el proceso para los sistemas operativos más comunes.
Requisito Indispensable: Neo4j
BloodHound no funciona sin Neo4j, su base de datos de grafos. Neo4j es la que almacena toda la información recopilada del Active Directory y permite a BloodHound procesar y visualizar las complejas relaciones. La instalación de BloodHound a través de gestores de paquetes como `apt` en Kali Linux suele instalar Neo4j como dependencia automáticamente.
Instalación en Linux (Kali/Debian/Ubuntu)
La forma más sencilla de instalar BloodHound en distribuciones basadas en Debian es a través del gestor de paquetes:
sudo apt update sudo apt install bloodhoundEste comando se encargará de descargar e instalar tanto BloodHound como todas sus dependencias, incluyendo Neo4j. Una vez instalado, puedes iniciar la base de datos con `neo4j console` y luego ejecutar BloodHound. La primera vez que inicies Neo4j, te pedirá que cambies la contraseña por defecto (usuario: `neo4j`, contraseña: `neo4j`). Anota esta nueva contraseña, ya que la necesitarás para conectar BloodHound.
Instalación en macOS
El proceso en macOS es muy similar al de compilación desde la fuente en Linux. Necesitarás instalar NodeJS y npm. Una vez hecho esto, sigue los pasos para clonar el repositorio de GitHub y compilar la aplicación, pero utilizando el script de compilación para Mac:
git clone https://github.com/BloodHoundAD/BloodHound cd BloodHound npm install sudo npm install -g electron-packager npm run macbuildAl igual que en Linux, deberás iniciar `neo4j console` y luego la aplicación BloodHound.
Instalación en Windows
En Windows, el proceso requiere algunos pasos adicionales. Primero, debes descargar e instalar Neo4j Community Server desde su sitio web oficial. Una vez descargado, abre una consola de PowerShell con privilegios de administrador y navega hasta el directorio `bin` de Neo4j para importar el módulo de gestión e iniciar la consola:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass Import-Module .\neo4j-management.psd1 Invoke-Neo4j consoleEsto iniciará Neo4j y te permitirá cambiar la contraseña por defecto. Para el cliente de BloodHound, puedes descargar el binario precompilado desde la sección de "Releases" en GitHub o compilarlo tú mismo siguiendo un proceso similar al de Linux/macOS, pero usando el comando `npm run winbuild`.
Una Alternativa Sencilla: Docker
Si prefieres no instalar todas las dependencias en tu sistema anfitrión, Docker es una excelente alternativa. Aunque no hay una imagen oficial, la comunidad ha creado varias opciones funcionales. Una de las más populares es la de `belane/bloodhound`. Con Docker instalado, puedes levantar un contenedor con BloodHound y Neo4j con un solo comando:
docker run -it \ -p 7474:7474 \ -p 7687:7687 \ -v ~/.config/bloodhound:/root/.config/bloodhound \ --name bloodhound \ belane/bloodhoundEsto descargará la imagen y ejecutará el contenedor. Podrás acceder a la interfaz web de Neo4j en `http://localhost:7474` y conectar tu cliente BloodHound al servidor Bolt en `bolt://localhost:7687` con las credenciales por defecto (`neo4j`/`blood`).

Recolección de Datos: El Rol de los Ingestores
Una vez que BloodHound está instalado, necesitas alimentarlo con datos. Aquí es donde entran los ingestores, principalmente SharpHound. SharpHound es la herramienta de recolección oficial, disponible tanto en formato de ejecutable C# (`SharpHound.exe`) como en un script de PowerShell (`SharpHound.ps1`) que carga el binario en memoria mediante reflexión.
Para funcionar, BloodHound necesita tres tipos de información clave:
- ¿Qué usuarios han iniciado sesión y dónde?
- ¿Qué usuarios tienen derechos de administrador y a qué tienen acceso?
- ¿A qué grupos pertenecen los usuarios y otros grupos?
Lo más importante es que, en la mayoría de los casos, SharpHound no requiere privilegios de administrador para recopilar esta valiosa información, lo que lo convierte en una herramienta formidable para la enumeración y la búsqueda de rutas de escalada de privilegios desde una cuenta de usuario estándar.
¿Cómo Usar SharpHound?
SharpHound se ejecuta en una máquina unida al dominio que se desea analizar. Su uso es flexible gracias a sus diferentes métodos de recolección. El comando más común para una recolección completa es:
SharpHound.exe --CollectionMethod All --Domain TU.DOMINIO.LOCAL --ZipFileName resultados.zipO su equivalente en PowerShell:
Invoke-BloodHound -CollectionMethod All -Domain TU.DOMINIO.LOCAL -ZipFileName "C:\Ruta\resultados.zip"Esto generará varios archivos JSON con los datos recopilados y los comprimirá en un archivo ZIP, listo para ser arrastrado y soltado en la interfaz de BloodHound.
Tabla de Métodos de Colección
El parámetro `CollectionMethod` es muy potente. Puedes especificar uno o varios métodos separados por comas. Aquí tienes una tabla comparativa de los más comunes:
| Método de Colección | Descripción de la Información Recopilada |
|---|---|
| Default | Realiza una colección estándar: membresías de grupos, administradores locales, relaciones de confianza de dominio y sesiones de usuario. |
| Group | Recopila únicamente las membresías de los grupos de dominio. |
| LocalGroup | Recopila los miembros de los grupos locales (como Administradores) en las máquinas del dominio. |
| Session | Enumera las sesiones de usuario activas en los equipos del dominio para ver quién está conectado y dónde. |
| ACL | Recopila las Listas de Control de Acceso (ACLs), revelando permisos específicos que los objetos tienen sobre otros. |
| Trusts | Enumera las relaciones de confianza entre dominios. |
| All | Ejecuta todos los métodos de recolección anteriores para obtener la imagen más completa posible. |
Interpretando los Resultados: El Poder de los Grafos
Una vez que importas los datos, la magia de BloodHound se hace visible. La interfaz te mostrará los datos como un grafo, una red de nodos y aristas. Los nodos representan objetos de AD (Usuarios, Grupos, Equipos, GPOs, OUs) y las aristas representan las relaciones entre ellos (MiembroDe, AdminA, TieneSesiónEn).
En la pestaña "Queries" encontrarás una lista de consultas predefinidas muy útiles, como "Find Shortest Paths to Domain Admins". Al ejecutar esta consulta, BloodHound te mostrará las rutas de ataque más cortas y eficientes desde un punto de origen (un usuario comprometido, por ejemplo) hasta un objetivo de alto valor (el grupo Domain Admins).
Lo más impresionante es que puedes hacer clic derecho en cualquier arista (relación) del grafo y seleccionar "Help". BloodHound te proporcionará una descripción detallada de la relación, cómo puede ser abusada para moverse lateralmente o escalar privilegios, e incluso los comandos exactos que puedes usar. También ofrece consideraciones de seguridad operacional (OPSEC) para minimizar el ruido y la detección.
Uso Defensivo: BloodHound para el Blue Team
BloodHound no es solo una herramienta para atacantes. Es, de hecho, una de las herramientas más poderosas para los equipos de defensa. Permite a los administradores de sistemas y analistas de seguridad:
- Visualizar su propio entorno: Entender las complejas relaciones de permisos que existen en su AD.
- Identificar rutas de ataque: Proactivamente encontrar y remediar las mismas rutas que un atacante explotaría.
- Auditar privilegios: Descubrir cuentas con privilegios excesivos o inesperados, como cuentas de servicio que son administradoras de sistemas críticos.
- Fortalecer la postura de seguridad: Eliminar relaciones de anidamiento de grupos innecesarias y limpiar ACLs peligrosas para reducir la superficie de ataque.
Realizar análisis periódicos con BloodHound permite a las organizaciones mantenerse un paso por delante de las amenazas.
Preguntas Frecuentes (FAQ)
- ¿Necesito ser administrador para usar SharpHound?
- No en la mayoría de los casos. SharpHound puede recopilar una cantidad masiva de información útil con los privilegios de un usuario de dominio autenticado estándar. Ciertas colecciones, como las sesiones privilegiadas, pueden requerir más permisos.
- ¿Es BloodHound solo para atacantes (Red Team)?
- Absolutamente no. Es una herramienta invaluable para los equipos de defensa (Blue Team) para visualizar su entorno de AD, encontrar y corregir las mismas rutas de ataque que un adversario usaría, antes de que lo hagan.
- ¿Cómo puedo detectar si alguien está usando BloodHound en mi red?
- La ejecución de SharpHound genera una cantidad significativa de tráfico LDAP (a través del puerto 389 o 636) desde una única máquina hacia los controladores de dominio. Monitorear un volumen anormalmente alto de consultas LDAP es un fuerte indicador del uso de BloodHound o herramientas similares.
- ¿Qué es Neo4j y por qué lo necesita BloodHound?
- Neo4j es una base de datos de grafos. BloodHound la utiliza como su motor de backend para almacenar y procesar las complejas relaciones de un entorno de Active Directory. Su estructura de grafo es perfecta para calcular rápidamente rutas y conexiones entre miles de objetos.
Si quieres conocer otros artículos parecidos a BloodHound: La Guía Definitiva para tu Red puedes visitar la categoría Juegos.
