DetectionLab: Laboratorio Completo de Detección en 1 Hora
Guía completa de DetectionLab: laboratorio automatizado con 4 VMs preconfiguradas, Splunk, Sysmon, Velociraptor y Active Directory. Despliegue con Vagrant, configuración y casos de uso para detection engineering y purple teaming.
Qué es DetectionLab
DetectionLab es un proyecto de código abierto creado por Chris Long (antes de Mandiant, ahora en el equipo de seguridad de una empresa tech) que automatiza el despliegue de un laboratorio completo de detección y respuesta. Con un solo comando, despliega cuatro máquinas virtuales interconectadas que simulan un entorno corporativo real:
- DC (Domain Controller): Windows Server con Active Directory, DNS y Certificate Services
- WEF (Windows Event Forwarding): Windows Server miembro del dominio, recolector de eventos
- WIN10: Windows 10 estación de trabajo, miembro del dominio
- Logger: Ubuntu Server con Splunk, Fleet/Kolide y herramientas de análisis
El valor de DetectionLab no está en las VMs individuales (cualquiera puede crear VMs de Windows), sino en la integración: Sysmon con configuración avanzada, Windows Event Forwarding centralizado, Splunk con apps de seguridad preinstaladas, Velociraptor para EDR y Atomic Red Team para simulación de ataques. Todo configurado y conectado desde el primer arranque.
Arquitectura del laboratorio
┌─────────────────────────────────────────────────────┐
│ Red interna (host-only) │
│ 192.168.38.0/24 │
│ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ DC │ │ WEF │ │ WIN10 │ │
│ │ 192.168. │ │ 192.168. │ │ 192.168. │ │
│ │ 38.102 │ │ 38.103 │ │ 38.104 │ │
│ │ │ │ │ │ │ │
│ │ AD/DNS │ │ WEF │ │ Workstation│ │
│ │ GPO │ │ Collector │ │ Sysmon │ │
│ │ Sysmon │ │ Sysmon │ │ Atomic RT │ │
│ │ WinRM │ │ Veloci- │ │ Veloci- │ │
│ │ │ │ raptor │ │ raptor │ │
│ └─────┬─────┘ └─────┬─────┘ └─────┬──────┘ │
│ │ │ │ │
│ └──────────────┼──────────────┘ │
│ │ │
│ ┌────────┴────────┐ │
│ │ Logger │ │
│ │ 192.168.38.105 │ │
│ │ │ │
│ │ Splunk │ │
│ │ Fleet/Kolide │ │
│ │ Velociraptor │ │
│ │ (server) │ │
│ └─────────────────┘ │
└─────────────────────────────────────────────────────┘
Requisitos y despliegue
Requisitos del host
| Recurso | Mínimo | Recomendado |
|---|---|---|
| RAM | 16 GB | 32 GB |
| CPU | 4 cores | 8 cores |
| Disco | 80 GB libres | 120 GB SSD |
| Hipervisor | VirtualBox 6+ o VMware | VMware Workstation Pro |
| Vagrant | 2.2+ | Última versión |
| SO host | Windows, macOS o Linux | macOS o Linux |
Despliegue con Vagrant
# 1. Instalar dependencias
# VirtualBox: https://www.virtualbox.org/wiki/Downloads
# Vagrant: https://www.vagrantup.com/downloads
# 2. Clonar el repositorio
git clone https://github.com/clong/DetectionLab.git
cd DetectionLab/Vagrant
# 3. Verificar prerrequisitos
./prepare.sh # Linux/macOS
# O en Windows:
# .\prepare.ps1
# 4. Desplegar todo el laboratorio
vagrant up --provider=virtualbox
# Este comando:
# - Descarga las boxes de Vagrant (Windows Server, Windows 10, Ubuntu)
# - Configura las VMs con IPs estáticas
# - Instala Active Directory y une máquinas al dominio
# - Instala y configura Sysmon con SwiftOnSecurity config
# - Configura Windows Event Forwarding
# - Instala Splunk con apps de seguridad
# - Instala Velociraptor
# - Instala Atomic Red Team
# Tiempo estimado: 60-90 minutos (primera vez)
Verificar el despliegue
# Estado de las VMs
vagrant status
# Acceder a las VMs
vagrant ssh logger # SSH al servidor Ubuntu
vagrant rdp win10 # RDP a la estación Windows
# Interfaces web
# Splunk: https://192.168.38.105:8000 (admin/changeme)
# Velociraptor: https://192.168.38.105:9999 (admin/changeme)
# Fleet/Kolide: https://192.168.38.105:8412 (admin/changeme)
Componentes en detalle
Sysmon (System Monitor)
Sysmon está instalado en todas las máquinas Windows con la configuración de SwiftOnSecurity, que genera logs detallados de:
- Event ID 1: creación de procesos (con línea de comandos completa)
- Event ID 3: conexiones de red
- Event ID 7: carga de DLLs
- Event ID 8: CreateRemoteThread (inyección de código)
- Event ID 10: acceso a procesos (credential dumping)
- Event ID 11: creación de archivos
- Event ID 12/13/14: modificaciones del registro
- Event ID 22: queries DNS
Estos logs se reenvían automáticamente a Splunk vía Windows Event Forwarding.
Splunk
Splunk está preconfigurado con:
- Splunk Security Essentials: dashboards de seguridad predefinidos
- Sysmon App for Splunk: parsing y visualización de logs Sysmon
- BOTS (Boss of the SOC) datasets: datos de práctica precargados
- Alertas predefinidas: detección de técnicas ATT&CK comunes
Índices principales:
- wineventlog: logs de eventos de Windows
- sysmon: logs de Sysmon
- osquery: resultados de queries de Fleet
Búsquedas útiles en Splunk:
# Procesos sospechosos
index=sysmon EventCode=1
| stats count by ParentImage, Image, CommandLine
# Conexiones de red
index=sysmon EventCode=3
| stats count by Image, DestinationIp, DestinationPort
# Modificaciones de registro en Run keys
index=sysmon EventCode=13 TargetObject="*\\Run\\*"
Velociraptor
Velociraptor proporciona capacidades de EDR:
- Live forensics: recopilar artefactos de las máquinas en tiempo real
- Hunt: ejecutar queries masivas en todos los endpoints
- VQL (Velociraptor Query Language): lenguaje de consulta para artefactos forenses
- Event monitoring: monitorización continua de eventos de seguridad
Artefactos útiles en Velociraptor:
- Windows.System.Pslist → procesos en ejecución
- Windows.Network.Netstat → conexiones de red
- Windows.Persistence.All → todos los mecanismos de persistencia
- Windows.EventLogs.Evtx → logs de eventos
- Windows.System.Amcache → historial de ejecución
Active Directory
El dominio "windomain.local" está configurado con:
- Usuarios: administradores, usuarios estándar, cuentas de servicio
- GPOs: configuración de auditoría avanzada, restricciones de PowerShell
- Certificate Services: PKI para autenticación de certificados
- DNS: servidor DNS integrado con AD
Casos de uso prácticos
Detection engineering: escribir reglas de detección
Flujo de trabajo:
1. Elegir una técnica ATT&CK a detectar (ej: T1003.001 LSASS Memory)
2. Simular con Atomic Red Team en WIN10:
Invoke-AtomicTest T1003.001 -TestNumbers 1
3. Revisar los logs generados en Splunk:
index=sysmon EventCode=10 TargetImage="*lsass.exe"
| stats count by SourceImage, GrantedAccess
4. Escribir regla Sigma basada en los logs observados:
detection:
selection:
EventID: 10
TargetImage|endswith: '\lsass.exe'
GrantedAccess|contains:
- '0x1010'
- '0x1410'
condition: selection
5. Convertir Sigma a búsqueda Splunk:
sigmac -t splunk rule.yml
6. Crear alerta en Splunk con la búsqueda resultante
7. Re-ejecutar el ataque para verificar que la alerta funciona
Purple teaming
DetectionLab es ideal para ejercicios de purple team donde ataque y defensa trabajan juntos:
Equipo rojo (atacante):
1. Ejecutar técnica en WIN10
2. Documentar IOCs y artefactos generados
Equipo azul (defensor):
1. Detectar la técnica en Splunk
2. Investigar con Velociraptor
3. Documentar la detección
4. Mejorar cobertura
Iteración:
1. Rojo intenta evasión
2. Azul ajusta detección
3. Repetir hasta cobertura satisfactoria
Formación SOC
Escenario de formación para analistas N1/N2:
Paso 1: Instructor ejecuta un ataque simulado
- Atomic Red Team: T1566.001 (Phishing attachment)
- Atomic Red Team: T1059.001 (PowerShell execution)
- Atomic Red Team: T1547.001 (Registry Run Key persistence)
- Atomic Red Team: T1003.001 (LSASS credential dump)
Paso 2: Analistas investigan en Splunk
- Identificar el proceso inicial sospechoso
- Rastrear la cadena de procesos padre-hijo
- Identificar persistencia creada
- Detectar intento de credential dumping
Paso 3: Analistas responden con Velociraptor
- Recopilar artefactos forenses
- Verificar estado actual de la máquina
- Documentar la investigación
Threat hunting
Hunt: buscar beaconing (comunicación C2 periódica)
1. En Splunk:
index=sysmon EventCode=3
| bin _time span=1m
| stats count by _time, Image, DestinationIp
| eventstats stdev(count) as stdev, avg(count) as avg by Image, DestinationIp
| where stdev < 2 AND count > 5
# Conexiones periódicas con baja desviación estándar = posible beaconing
2. Verificar con Velociraptor:
# Recopilar procesos y sus conexiones de red
SELECT * FROM connections()
WHERE Dest NOT IN ("192.168.38.0/24", "127.0.0.1")
Personalización
Añadir más herramientas
# SSH al servidor Logger
vagrant ssh logger
# Instalar herramientas adicionales
sudo apt install -y zeek
sudo apt install -y suricata
# En las máquinas Windows (vía RDP o WinRM)
choco install sysinternals -y
choco install wireshark -y
Modificar la configuración de Sysmon
# Descargar una configuración Sysmon alternativa
# (ej: Olaf Hartong's sysmon-modular)
wget https://raw.githubusercontent.com/olafhartong/sysmon-modular/master/sysmonconfig.xml
# Actualizar Sysmon en las VMs Windows
sysmon.exe -c sysmonconfig.xml
Añadir máquinas adicionales
El Vagrantfile puede modificarse para añadir más VMs:
# En DetectionLab/Vagrant/Vagrantfile
config.vm.define "server01" do |cfg|
cfg.vm.box = "gusztavvargadr/windows-server"
cfg.vm.hostname = "server01"
cfg.vm.network :private_network, ip: "192.168.38.106"
cfg.vm.provision "shell", path: "scripts/join-domain.ps1"
end
Gestión del laboratorio
# Pausar todas las VMs (preserva estado)
vagrant suspend
# Reanudar
vagrant resume
# Apagar todas las VMs
vagrant halt
# Destruir todo el laboratorio
vagrant destroy -f
# Reconstruir una VM específica
vagrant destroy win10 -f
vagrant up win10
Limitaciones
- Consumo de recursos: 4 VMs requieren bastante RAM y CPU del host
- Solo Windows: el entorno simula un dominio Windows; no incluye servidores Linux como objetivos
- Licencias Windows: usa licencias de evaluación que expiran (180 días)
- Mantenimiento: las boxes de Vagrant pueden quedar desactualizadas
- No es producción: las configuraciones de seguridad están relajadas para facilitar el aprendizaje
Alternativas a DetectionLab
| Proyecto | Diferencia principal |
|---|---|
| BadBlood | Genera datos realistas en AD existente (usuarios, grupos, ACLs) |
| DVCP (Damn Vulnerable Cloud Project) | Similar pero para entornos cloud |
| Splunk Attack Range | Enfocado en Splunk con simulación de ataques |
| PurpleLab | Alternativa open source más ligera |
DetectionLab sigue siendo la referencia para laboratorios de detection engineering. Su combinación de Active Directory realista, logging avanzado con Sysmon y Splunk, y la integración con Atomic Red Team lo convierten en la herramienta ideal para equipos que quieren mejorar sus capacidades de detección y respuesta.
Preguntas frecuentes
Libros recomendados
Artículos relacionados
Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.