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.
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.
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.
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.
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/nullCambia servicio_ids por el servicio instalado.
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.
Resume autenticaciones fallidas y usuarios afectados.
sudo journalctl -u ssh --since '{{periodo}}' | grep -Ei 'failed|invalid user' | tail -100Solo análisis defensivo de registros.
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.
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 -20Ejercicio defensivo: solo procesa logs existentes.
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.
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.
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.
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.
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.
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.
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 --failedAyuda a cerrar un ejercicio de vulnerabilidad y mitigación.