Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Purple-Team-Automation — Emulación automatizada de adversarios (Caldera) contra un laboratorio de AD para validar la cobertura de detección de Sigma y mapear los resultados a MITRE ATT&CK. | Kitploit
Herramientas/GitHubGitHub/joshuagodwin7929/purple-team-automation
Post-ExplotaciónPruebas de PenetraciónComando y ControlInteligencia de AmenazasRed TeamingRespuesta a IncidentesAnálisis de RegistrosAtaque AdversarioLabs y Práctica
GitHubjoshuagodwin7929/purple-team-automation

Purple-Team-Automation

Emulación automatizada de adversarios (Caldera) contra un laboratorio de AD para validar la cobertura de detección de Sigma y mapear los resultados a MITRE ATT&CK.

Ver Repositorio
1320hace 2 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Purple-Team-Automation

Validación automatizada de purple-team de las reglas de detección de Sigma creadas en detection-as-code-repo, usando MITRE Caldera para ejecutar una ruta de ataque encadenada de acceso a credenciales de Active Directory contra un laboratorio de dominio existente, y un mapa de calor de ATT&CK Navigator para visualizar la cobertura.

Por qué Caldera en lugar de Atomic Red Team

Se eligió Caldera en lugar de Atomic Red Team para este proyecto porque proporciona un framework C2 completo, con agentes, perfiles de adversario y operaciones encadenadas de varios pasos, en lugar de la ejecución de técnicas únicas y aisladas. Esto se ajusta más al objetivo de este proyecto: no solo "¿se detectó esta única técnica?", sino "¿sobrevive una cadena de ataque realista y ordenada a nuestra pila de detección actual, de principio a fin?"

Estructura del repositorio

root@kitploit:~
Purple-Team-Automation/
├── abilities/                          Custom Caldera ability YAMLs
├── adversary-profiles/                 The chained adversary profile used in the operation
├── validation/                         Kibana evidence per technique + the LLMNR known-gap writeup
├── attack-navigator-heatmap.json       ATT&CK Navigator layer, load at mitre-attack.github.io/attack-navigator
├── purple-team-automation-report.md    Full write-up: scope, methodology, results, gap analysis
└── README.md                           This file

Qué se construyó

Infraestructura

Desplegué un servidor Caldera dedicado mediante Docker Compose en una VM Ubuntu separada (caldera-server, 192.168.18.205) en la misma red de laboratorio que el laboratorio de dominio AD existente, manteniéndolo aislado de la pila ELK/SIEM. Caldera v5.0.0 arrancó con 2000 abilities de serie y 29 adversarios de serie listos para usar.

Problemas de compilación que diagnostiqué en el proceso:

  • Mi compilación inicial parecía completarse pero silenciosamente no producía ninguna imagen, así que tuve que hacer una recompilación limpia.
  • El contenedor entraba en bucle de fallos por la ausencia de un frontend Vue precompilado (plugins/magma/dist/assets/). Lo rastreé hasta un montaje de volumen Docker de directorio completo en docker-compose.yml que sobrescribía el frontend compilado de la imagen con el código fuente sin compilar del host. Lo arreglé eliminando el montaje de directorio completo.
  • Intenté recompilar el frontend en tiempo de ejecución del contenedor, pero eso falló porque el Dockerfile desinstala deliberadamente npm/nodejs después de la compilación de la imagen para mantener la imagen final ligera.
  • Después de que finalmente conseguí que el inicio de sesión funcionara, la interfaz seguía sin ser funcional. El frontend compilado tenía localhost:8888 codificado como su base de API, fijado en tiempo de compilación de Vue mediante plugins/magma/.env (VITE_CALDERA_URL), que no está controlado por la configuración en tiempo de ejecución app.frontend.api_base_url de conf/local.yml. Lo arreglé editando .env con la IP real de la VM y recompilando.
  • También me encontré con un fallo independiente de espacio en disco, que rastreé hasta un volumen lógico LVM que solo usaba la mitad del disco asignado a la VM. Lo arreglé con lvextend -l +100%FREE + resize2fs, además de recuperar las capas de caché de compilación mediante docker system prune -a --volumes.

Abilities personalizadas

Stockpile solo incluye una ability nativa para el volcado de credenciales basado en LSASS/Mimikatz (T1003.001). Las cuatro técnicas que necesitaba para este proyecto, Kerberoasting, AS-REP Roasting, Password Spraying y DCSync, todas requerían abilities personalizadas que construí en torno a Impacket (GetUserSPNs.py, GetNPUsers.py, secretsdump.py) y Kerbrute, ya que las abilities de Kerberoasting existentes de Stockpile (Rubeus, WinPwn) son solo para Windows/.NET e incompatibles con el agente Sandcat basado en Linux de este laboratorio.

Me encontré con dos problemas de compilación mientras las creaba:

  • El esquema real de abilities de Caldera v5 usa módulos analizadores específicos por herramienta (por ejemplo, plugins.stockpile.app.parsers.katz) con campos source/edge/target, no un analizador genérico de regex pattern como había asumido originalmente. Esto provocaba un TypeError('ParserConfig.__init__()') silencioso al cargar. Como no existe ningún analizador integrado para la salida sin procesar de Impacket, eliminé por completo el bloque parsers: de las cuatro abilities. Los resultados se capturan como archivos de salida/hash sin procesar y se validan manualmente contra Kibana (ver /validation).
  • Dos de mis archivos YAML de abilities (password spray, DCSync) se guardaron inicialmente como archivos de 0 bytes después de que un pegado en nano fallara silenciosamente. Lo detecté verificando cada archivo con cat/wc -l antes de reiniciar el contenedor.

Despliegue del agente

Desplegué un agente Sandcat (Linux, grupo red) en la VM Kali (192.168.18.70), usando el nombre de proceso splunkd para el enmascaramiento OPSEC, y confirmé que arrancó vivo y confiable, ejecutándose como root con el ejecutor proc/sh.

Perfil de adversario y operación

Construí el perfil de adversario AD Credential Access Chain para encadenar las cuatro abilities personalizadas en el orden en que un atacante interno oportunista normalmente intentaría ejecutarlas:

root@kitploit:~
    → Password Spray (Kerbrute)
    → Kerberoasting (GetUserSPNs.py)
    → AS-REP Roasting (GetNPUsers.py)
    → DCSync (secretsdump.py)

El envenenamiento LLMNR/NBT-NS (T1557.001) se excluyó deliberadamente del perfil de Caldera. Ver validation/llmnr-known-gap.md para saber por qué, y cómo sigue incluido como un control negativo de brecha conocida.

Resultados

Las cuatro técnicas ejecutadas se confirmaron detectadas contra las reglas Sigma de detection-as-code-repo, verificadas directamente en Kibana. El envenenamiento LLMNR/NBT-NS sigue siendo una brecha abierta y documentada.

TécnicaEstado
T1110.003 – Password Spraying🟢 Detectada
T1558.003 – Kerberoasting🟢 Detectada
T1558.004 – AS-REP Roasting🟢 Detectada
T1003.006 – DCSync🟢 Detectada
T1557.001 – LLMNR/NBT-NS Poisoning🔴 Brecha

Detalle completo: validation/detection-results.md Informe completo: purple-team-automation-report.md Mapa de calor interactivo: attack-navigator-heatmap.json

Próximos pasos

  1. Corregir la configuración de Sysmon (habilitar Event ID 3 y 22) para cerrar la brecha de LLMNR.
  2. Escribir y ajustar una nueva regla Sigma para el envenenamiento LLMNR/NBT-NS.
  3. Volver a ejecutar esta operación para confirmar la corrección y actualizar el mapa de calor.
  4. Alimenta la hoja de ruta más amplia de proyectos de SOC (Proyecto D y más allá).
Descargar herramienta