Post

BloodHound MCP: Integrando Claude con BloodHound

BloodHound MCP: Integrando Claude con BloodHound

Introducción

Hace unas 2 semanas me enteré de la existencia de un servidor MCP (Model Context Protocol) para BloodHound, el cual nos permite integrarlo con Claude. A continuación, comparto las publicaciones que leí al respecto:

Artículo de SpecterOps: BloodHound MCP: One Year Later — What I Learned About MCPs, Models, and Context

Repositorio de GitHub: BloodHound MCP: Repositorio de GitHub

¿Qué es esto?

El MCP de BloodHound permite consultar tus datos de Active Directory en lenguaje natural desde Claude Desktop. En lugar de escribir queries Cypher manualmente, le preguntas directamente a Claude cosas como “muéstrame todos los Domain Admins” o “encuentra usuarios kerberoasteables”.

Prerrequisitos

  • Claude Desktop (plan Pro)
  • BloodHound Community Edition corriendo localmente
  • Datos ya importados en BH CE (output de RustHound o bloodhound-python)
  • Git o acceso a GitHub para descargar el repo

Cabe mencionar que también he visto a colegas utilizarlo con otros LLMs, así que estaré investigando un poco más y les compartiré si encuentro algo interesante.

Implementación

Paso 1: Clonar el repositorio

1
2
git clone https://github.com/mwnickerson/bloodhound_mcp.git
cd bloodhound_mcp

Paso 2: Generar el API Token en BH CE

En la UI de BloodHound:

1
My Profile → Authentication : Api Key Management → Create Token

api_key

api_key2

api_key3

Guarda los valores KEY & ID.

Paso 3: Crear el archivo .env

Dentro de la carpeta del repositorio que clonamos, necesitamos crear un .env

1
2
3
4
5
6
7
@"
BLOODHOUND_DOMAIN=localhost
BLOODHOUND_TOKEN_KEY=tu-token-key-aqui
BLOODHOUND_TOKEN_ID=tu-token-id-aqui
BLOODHOUND_PORT=8080
BLOODHOUND_SCHEME=http
"@ | Out-File -FilePath .env -Encoding utf8

Coloca los valores que generaste en el Paso 2

env

Paso 4: Instalar uv

En Powershell

1
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

En Linux

1
curl -LsSf https://astral.sh/uv/install.sh | sh

Con uv instalado, ahora necesitamos realizar la integración del MCP de BloodHound con Claude Desktop:

Paso 5: Configurar Claude Desktop

Abrimos el Claude Desktop:

1
Settings → Developer → Edit Config

claude

Esto nos abrirá los archivos de configuración y el que tocaremos especificamente será claude_desktop_config.json y agregamos el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
  "mcpServers": {
    "bloodhound_mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "D:\\bloodhound_mcp",
        "run",
        "main.py"
      ]
    }
  }
}

configjson

Asegurarse de en los args estar apuntando al directorio correcto donde tienen clonado el repositorio.

Paso 6: Reiniciar Claude Desktop

Cierra Claude Desktop completamente desde la bandeja del sistema (click derecho → Quit, no solo la X) y vuelve a abrirlo.

test

Pruebas Funcionales

Ahora es momento de probar su funcionamiento, lo primero que debemos hacer es subir un .zip generado por cualquier colector (RustHound, SharpHound, etc)

upload_test

Ahora, desde Claude Desktop:

test1 test2 test3 test4 test5

Conclusiones

La integración de BloodHound MCP con Claude Desktop marca una gran diferencia en la velocidad con la que podemos interrogar a Neo4j durante una auditoría de Active Directory:

  • Abstracción de Cypher: Elimina la necesidad de memorizar consultas complejas en Cypher para búsquedas rápidas.
  • Velocidad y Comodidad: Consultar rutas de ataque o cuentas críticas mediante lenguaje natural acelera drásticamente la fase de análisis.
  • Criterio Profesional: Recuerda que la IA es un copiloto. Siempre debes verificar manualmente las rutas sugeridas por Claude para descartar alucinaciones o interpretaciones erróneas.

Referencias


Gracias por leer, espero que te sirva. Si tienes alguna duda, sugerencia, corrección o simplemente quieres compartir algo al respecto, tienes mis redes para contactarme.

Frase para finalizar:

“Solo podemos ver un poco del futuro, pero lo suficiente para darnos cuenta de que hay mucho que hacer”

— Alan Turing

This post is licensed under CC BY 4.0 by the author.