Zona de simulación defensiva

Ataques controlados, respuestas seguras.

Ejercicios para validar detección, registros, contención y respuesta dentro de un entorno propio. No ejecuta fuerza bruta ni explotación: solo analiza registros, verifica controles y genera eventos locales de prueba. No incluye evasión, spoofing, flooding, payloads, credenciales ni instrucciones para comprometer servicios.

Antes de comenzar: confirma el alcance, usa objetivos de laboratorio, documenta cada cambio y prepara una reversión. Estas plantillas analizan o generan eventos locales inocuos; no lanzan ataques contra terceros.

Detectar un escaneo

Busca patrones de reconocimiento en logs sin generar tráfico ofensivo.

sudo grep -Ei 'Nmap|scan|SYN' /var/log/suricata/eve.json 2>/dev/null | tail -50

Úsalo sobre logs de tu laboratorio.

Validar rate limiting

Comprueba la configuración existente y sus contadores desde el servidor.

sudo journalctl -u {{servicio}} --since "15 minutes ago" | grep -Ei "429|rate.?limit|thrott"

No genera solicitudes automáticamente.

Revisar reglas IDS/IPS

Lista reglas cargadas y verifica que el motor de detección esté activo.

sudo systemctl status {{servicio_ids}} --no-pager; sudo suricata --list-runmodes 2>/dev/null

Cambia servicio_ids por el servicio instalado.

Bloquear una IP de laboratorio

Aplica una regla de contención a una IP de prueba documentada.

sudo ufw deny from {{ip_laboratorio}} comment "laboratorio controlado"

Confirma la IP y ten una regla de reversión preparada.

Auditar intentos SSH

Resume autenticaciones fallidas y usuarios afectados.

sudo journalctl -u ssh --since '{{periodo}}' | grep -Ei 'failed|invalid user' | tail -100

Solo análisis defensivo de registros.

Simular respuesta con archivo

Genera un evento local inocuo para validar alertas y documentación.

logger -t linuxkit-lab "evento de prueba autorizado"

No accede a otros sistemas ni explota servicios.

Detectar patrón de fuerza bruta

Analiza intentos fallidos ya registrados y resume IPs y usuarios afectados, sin generar autenticaciones.

sudo journalctl -u ssh --since '{{periodo}}' | grep -Ei 'failed|invalid user' | awk '{print $NF}' | sort | uniq -c | sort -nr | head -20

Ejercicio defensivo: solo procesa logs existentes.

Comprobar Fail2ban

Verifica si Fail2ban está activo, qué jails carga y qué IPs están bloqueadas.

sudo fail2ban-client ping; sudo fail2ban-client status; sudo fail2ban-client status {{jail}}

No añade reglas ni bloquea direcciones automáticamente.

Revisar política de bloqueo

Inspecciona la configuración efectiva de SSH para comprobar límites de intentos y tiempos.

sudo sshd -T | grep -Ei 'maxauthtries|loginGraceTime|authenticationmethods|allowusers|denyusers'

Solo lectura; aplica cambios en una ventana controlada.

Auditar paquetes vulnerables

Busca actualizaciones de seguridad disponibles sin explotar vulnerabilidades.

apt list --upgradable 2>/dev/null | grep -Ei "security|openssl|openssh|kernel"

Revisa el changelog y prueba actualizaciones antes de producción.

Validar exposición de servicios

Compara puertos escuchando con el inventario esperado y marca desviaciones.

sudo ss -tulpn; printf "\nInventario esperado: {{puertos_esperados}}\n"

No escanea terceros; compara el estado local documentado.

Simular alerta IDS local

Escribe un evento de prueba en el log local para comprobar que una regla de detección lo captura.

logger -p auth.warning -t linuxkit-lab "LAB_TEST suspicious-login source={{ip_laboratorio}}"

Evento local inocuo; elimina o etiqueta los datos de prueba.

Verificar mitigación de aplicación

Comprueba cabeceras de seguridad y códigos de respuesta de una aplicación propia.

curl --max-time 5 -sSI {{url}} | grep -Ei "HTTP/|strict-transport|content-security|x-frame|x-content-type"

Una solicitud HEAD puntual, sin payload ni explotación.

Revisión posterior al parche

Confirma versión del kernel, reinicio pendiente y servicios activos tras una corrección.

uname -r; test -f /var/run/reboot-required && echo "Reinicio pendiente" || echo "Sin reinicio pendiente"; systemctl --failed

Ayuda a cerrar un ejercicio de vulnerabilidad y mitigación.

Abrir laboratorio completo