IntermedioDetectionLabdetection engineeringSplunkSysmonVelociraptorActive Directorypurple team

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.

MalwareIntel Research··8 min lectura

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:

  1. DC (Domain Controller): Windows Server con Active Directory, DNS y Certificate Services
  2. WEF (Windows Event Forwarding): Windows Server miembro del dominio, recolector de eventos
  3. WIN10: Windows 10 estación de trabajo, miembro del dominio
  4. 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

RecursoMínimoRecomendado
RAM16 GB32 GB
CPU4 cores8 cores
Disco80 GB libres120 GB SSD
HipervisorVirtualBox 6+ o VMwareVMware Workstation Pro
Vagrant2.2+Última versión
SO hostWindows, macOS o LinuxmacOS 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

ProyectoDiferencia principal
BadBloodGenera datos realistas en AD existente (usuarios, grupos, ACLs)
DVCP (Damn Vulnerable Cloud Project)Similar pero para entornos cloud
Splunk Attack RangeEnfocado en Splunk con simulación de ataques
PurpleLabAlternativa 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

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.