Este repositorio contiene la versión Lite / Low Resources de NICS | CyberLab, un entorno de laboratorio manual y ligero pensado para usuarios con recursos limitados que quieran reproducir el escenario Level-01 (Mini SOC) en local, utilizando 3 máquinas virtuales.
El objetivo didáctico se mantiene: entrenar un flujo realista de un SOC:
detección → investigación → mejora → reporte
⚠️ Aviso: todo lo incluido está pensado para un entorno de laboratorio autorizado y controlado. No reutilice técnicas o automatizaciones fuera del contexto permitido.
Esta versión Lite está diseñada como alternativa para equipos con menos recursos o para quien prefiera entender el laboratorio pieza a pieza.
-
Versión automatizada (OpenStack + despliegue integral): referencia completa del proyecto principal → (repositorio principal con instalación automatizada, niveles y logs integrados)
-
Versión Lite (este repo): despliegue local en 3 VMs, con pasos más manuales, pensado para:
- aprender la arquitectura
- reducir dependencia de OpenStack
- ejecutar ejercicios del Level-01 con infraestructura mínima
Los ejercicios de lab/README.md están disponibles también en esta versión Lite y se pueden ejecutar en local.
ℹ️ Estado actual del repo Lite: incluye scripts por componente (Snort, Wazuh, MITRE Caldera), scripts de automatización de integración (
automation/) y un script de preparación (prep-lab.sh) para facilitar la ejecución de los ejercicios.
- 1. Qué ofrece este repositorio
- 2. Requisitos mínimos y recomendados
- 3. Arquitectura (3 VMs)
- 4. Preparación rápida de VMs en VMware (manual, por encima)
- 5. Flujo recomendado (Quickstart)
- 6. Logs y evidencias
- 7. Estructura real del proyecto
- 8. Ejercicios y niveles
- 9. Buenas prácticas
- 10. Troubleshooting rápido
Este repositorio le permite:
-
Montar un Mini SOC en local con 3 VMs:
- Snort como IDS (detección de tráfico)
- Wazuh como SIEM/XDR (ingesta, correlación e investigación)
- MITRE Caldera como Adversary Emulation (generación de actividad controlada)
-
Ejecutar los ejercicios del laboratorio (documentados en
lab/README.md) para entrenar:- detecciones (Snort)
- ingesta/correlación (Wazuh)
- simulación ofensiva controlada (Caldera)
- metodología SOC y evidencias
-
Desplegarlo en equipos de recursos escasos, evitando OpenStack.
⚠️ Importante: la filosofía de esta versión Lite es que el usuario haga solo lo mínimo manual:
- crear las 3 VMs
- ejecutar los scripts de instalación en cada VM
- ejecutar la integración en el orden correcto
- preparar el entorno del lab y lanzar ejercicios
Esta versión está pensada para funcionar en un host modesto, pero con recursos suficientes para 3 VMs simultáneas.
| Recurso | Mínimo funcional | Recomendado |
|---|---|---|
| CPU | 4 vCPU | 8 vCPU |
| RAM | 12 GB | 16–24 GB |
| Disco | 120 GB SSD | 200+ GB SSD |
| Virtualización | VT-x/AMD-V habilitada | VT-x/AMD-V habilitada |
Importante: mantenga la configuración de hardware como la del escenario original.
| VM | Rol | CPU | RAM | Disco | S.O |
|---|---|---|---|---|---|
| snort-server | IDS | 1 | 2 GB | 20 GB | Debian 12 |
| wazuh-manager | SIEM/XDR | 2 | 4 GB | 40 GB | Debian 12 |
| caldera-server | Adversary Emulation | 1 | 2 GB | 20 GB | Debian 12 |
- Modo NAT en VMware (recomendado para simplicidad).
- Las VMs deben tener comunicación entre ellas (misma red NAT de VMware).
- Acceso a Internet para instalar paquetes.
Topología básica (local):
- caldera-server → genera actividad (nmap/hydra/comandos) contra snort-server
- snort-server → detecta tráfico (Snort) y genera logs (
alert_fast) - wazuh-manager → recibe eventos del agente en snort-server y permite investigar en dashboard
Flujo SOC entrenado:
- Atacante (Caldera) ejecuta acciones
- Snort detecta actividad de red
- Wazuh ingesta y correlaciona
- Analista investiga, documenta, mejora reglas y reporte
Esta sección es intencionalmente breve: es lo único que el usuario debe hacer “a mano” antes de usar el repo.
En VMware (Workstation/Player):
-
Create a New Virtual Machine
-
Seleccione ISO (Debian 12)
-
Configure CPU/RAM/DISCO según tabla sección 2
-
Red: seleccione NAT
-
Marque la opción de instalar SSH durante la instalación.
-
Finalice instalación del SO
-
Repita para las 3 VMs:
snort-serverwazuh-managercaldera-server
En cada VM:
-
Instale OpenSSH Server:
sudo apt update && sudo apt install -y openssh-server sudo systemctl enable --now ssh
-
Compruebe IP:
ip a
-
(Opcional) añada entradas en
/etc/hostspara nombres:sudo nano /etc/hosts # Ejemplo: # 10.0.XXX.XXX snort-server # 10.0.XXX.XXX wazuh-manager # 10.0.XXX.XXX caldera-server
Desde cada VM (ejemplo desde caldera-server):
ping -c 2 <IP_SNORT>
ping -c 2 <IP_WAZUH>Si hay ping, la comunicación base está lista.
[✓] Orden recomendado:
1) Crear VMs → 2) Instalar herramientas → 3) Generar claves → 4) Integrar → 5) Preparar lab → 6) Ejecutar ejercicios
Puede clonar el repo en su host (o en una VM de administración) y después copiarlo a cada VM, o clonarlo directamente en cada una.
git clone https://github.com/crismillan06/nics-cyberlab-lite.git
cd nics-cyberlab-liteAntes de ejecutar scripts del repo:
- Cree
snort-server,wazuh-managerycaldera-server - Verifique red NAT y conectividad entre ellas
- Asegure acceso SSH (recomendado)
- Compruebe conectividad a Internet
La instalación se realiza por componente, ejecutando el script de su carpeta en la VM que le corresponde.
chmod +x Wazuh/install-wazuh.sh
sudo bash install-wazuh.shVerifique:
- servicios levantados
- acceso al dashboard
- credenciales de acceso
chmod +x install-snort.sh
sudo bash install-snort.shVerifique:
- instalación de Snort 3
- interfaz de red correcta
- generación de logs (ej.
alert_fast)
chmod +x install-caldera.sh
sudo bash install-caldera.shVerifique:
- servicio levantado
- acceso web por puerto
8888 - conectividad desde
snort-servery desde el host (si aplica)
ℹ️ Nota: Los scripts
uninstall-*.shestán disponibles en cada carpeta para desinstalación/rollback durante pruebas.
Antes de ejecutar las integraciones, debe ejecutarse el script de generación de claves en el anfitrion:
cd nics-cyberlab-lite/automation
sudo chmod +x key-generate.sh
sudo bash key-generate.sh
⚠️ Importante: los scripts de integración y de generación de claves deben ejecutarse consudodesde el anfitrion.
Una vez instaladas las 3 herramientas y generadas las claves, ejecute la integración.
cd nics-cyberlab-lite/automation
sudo chmod +x wazuh-snort.sh
sudo bash wazuh-snort.shObjetivo:
- preparar la ingesta/correlación de logs de Snort en Wazuh
- dejar el flujo de eventos operativo para investigación en dashboard
cd nics-cyberlab-lite/automation
sudo chmod +x caldera-snort.sh
sudo bash caldera-snort.shObjetivo:
- habilitar la generación de actividad controlada desde Caldera hacia el nodo monitorizado por Snort
- facilitar validaciones y ejercicios del laboratorio
[✓] Regla general:
- Instaladores por componente (
MITRE-Caldera/,Snort/,Wazuh/) → ejecutar en la VM correspondiente- Integración + keys (
automation/) → ejecutar consudo
Una vez desplegadas e integradas las herramientas, ejecute el script de preparación del lab para dejar el entorno listo para completar los ejercicios de lab/README.md.
cd nics-cyberlab-lite/automation
chmod +x prep-lab.sh
sudo bash prep-lab.shℹ️ Nota: si
prep-lab.shrealiza cambios del sistema (paquetes, permisos, servicios, rutas, etc.), ejecútelo consudo:
Con todo desplegado, integrado y preparado:
-
Abra
lab/README.md -
Ejecute los ejercicios propuestos del laboratorio (Level-01 en local)
-
Recoja evidencias de:
- tráfico/detección (Snort)
- eventos/correlación (Wazuh)
- actividad controlada (Caldera)
Ejemplos típicos de validación (según el ejercicio):
pingnmaphydra- habilidades/operaciones de Caldera
En versión Lite, la evidencia se recoge por nodo, como en un entorno real:
-
Snort en ejecución (ejemplo):
sudo snort -i ens3 -c /etc/snort/snort.lua -A alert_fast -k none -l /var/log/snort
-
Alertas:
sudo tail -f /var/log/snort/alert_fast.txt
-
Eventos e investigación desde Dashboard:
- Threat Hunting / Events
- Endpoints Summary
-
Logs del manager:
sudo tail -f /var/ossec/logs/ossec.log
-
Acceso web (por defecto):
http://IP_CALDERA:8888 -
Validar herramientas (si aplican en su versión):
nmap --version hydra -h | head
La estructura actual del repositorio (por componente + automatización + lab) es:
.
├── MITRE-Caldera/
│ ├── install-caldera.sh
│ └── uninstall-caldera.sh
├── Snort/
│ ├── install-snort.sh
│ └── uninstall-snort.sh
├── Wazuh/
│ ├── install-wazuh.sh
│ └── uninstall-wazuh.sh
├── automation/
│ ├── caldera-snort.sh
│ ├── key-generate.sh
│ ├── prep-lab.sh
│ └── wazuh-snort.sh
├── lab/
│ └── README.md
└── README.md
-
MITRE-Caldera/- Scripts de instalación/desinstalación de MITRE Caldera.
-
Snort/- Scripts de instalación/desinstalación de Snort.
-
Wazuh/- Scripts de instalación/desinstalación de Wazuh.
-
automation/- Scripts de integración entre herramientas.
- Script de generación de claves.
- Script de preparación del entorno del lab (
prep-lab.sh).
-
lab/README.md- Ejercicios y metodología SOC para ejecutar el laboratorio en local.
⚠️ Recuerde: siemprekey-generate.shy los scripts de integración (wazuh-snort.sh,caldera-snort.sh) deben ejecutarse consudo.
Los ejercicios están descritos en:
📌 lab/README.md
Esta versión Lite permite ejecutar el flujo del Level-01 en local con menos recursos, manteniendo la metodología didáctica:
- detección
- investigación
- mejora
- documentación/reporte
ℹ️ Nota: Diferencia principal respecto al repo automatizado: cambia el método de despliegue (manual/semi-automatizado), pero los ejercicios y el enfoque SOC siguen siendo aplicables.
-
Use snapshots de VMware antes de cambios grandes.
-
Mantenga nombres coherentes:
snort-serverwazuh-managercaldera-server
-
Documente evidencias con:
- timestamp
- nodo implicado
- comando ejecutado
- log/alerta/evento correlacionado
-
Use la misma NAT network en las 3 VMs.
-
Revise permisos de ejecución:
chmod +xen scriptssudoen scripts de integración/keys
-
Compruebe que están en NAT y en la misma red NAT.
-
Revise IPs:
ip a
-
Pruebe ping:
ping -c 2 <IP_OTRA_VM>
-
Compruebe servicio y puerto:
ss -tulpn | grep 8888 -
Pruebe desde
snort-server:curl -I http://IP_CALDERA:8888
-
Verifique que Snort escribe en:
/var/log/snort/alert_fast.txt -
Verifique la configuración del agente (
localfile) en:/var/ossec/etc/ossec.conf -
Reinicie el agente:
sudo systemctl restart wazuh-agent
Síntomas comunes:
Permission denied- cambios parciales
- comandos que requieren privilegios
Comprobación rápida:
cd nics-cyberlab-lite/automation
ls -lProyecto experimental para entornos de laboratorio y formación en ciberseguridad.