Lab 7: Hardening y Pentesting de Sistemas OT
Objetivo
Realizar hardening de un sistema Linux industrial simulado y verificar su seguridad.
Prerrequisitos
- Docker
- Acceso a internet para descargar herramientas
Entorno
# Instalar OpenPLC (simulador PLC)
docker run -d -p 8080:8080 -p 502:502 --name openplc openplc/plc
# Instalar Industrial Security Framework (ISF)
git clone https://github.com/industrial-security-framework/isf.git
cd isf && pip install -r requirements.txtEscenario
Un cliente del sector industrial solicita un hardening de sus sistemas Linux industriales. Debes aplicar las mejores prácticas y verificar.
Pasos
Paso 1: Análisis Inicial
# Escanear puertos del PLC
nmap -sS -p 502 192.168.56.5
# Identificar servicios
nmap -sV -p 502 192.168.56.5Paso 2: Hardening con ISF
# Ejecutar hardening
python isf/harden.py --target 192.168.56.5 --report hardening_report.html
# Revisar recomendaciones
cat hardening_report.htmlPaso 3: Pentesting con Pentagi
# Instalar Pentagi
docker build -t pentagi .
docker run -d -p 5000:5000 pentagi
# Ejecutar escaneo
# Acceder a http://localhost:5000Paso 4: Verificación Post-Hardening
# Comparar resultados antes/después
nmap -sS -p 502 192.168.56.5Entregable
Archivo: ot_security_report.md
Incluir: - Estado inicial - Medidas de hardening aplicadas - Resultados de pentest - Comparativa antes/después - Recomendaciones finales
Resultado Esperado
Al completar el lab, el estudiante debe demostrar comprensión de la superficie de ataque OT y las medidas de mitigación:
- Modbus expuesto identificado: Output de
nmap -sS -p 502 192.168.56.5mostrando502/tcp open modbusantes del hardening. - Lectura de registros Modbus: Uso de
modbus-clio script Python conpymodbusque lea al menos un registro del PLC simulado, mostrando el valor leído (ej.Coil 0: True). - Hardening aplicado: Captura del reporte HTML de ISF mostrando el estado inicial vs. final con al menos 5 controles mejorados (ej. firewall, autenticación, cifrado de tráfico).
- Comparativa de superficie de ataque: Dos outputs de Nmap (antes y después) mostrando reducción de puertos expuestos o servicios endurecidos.
Flag de completitud: El puerto 502 (Modbus) debe estar filtrado o con autenticación configurada en el escaneo post-hardening, documentado en el reporte final.