Cargando...
Cargando...
Duración: 2 horas (Estimada)
¡Bienvenido/a al noveno episodio de nuestro curso completo de Nmap! En este módulo, pasaremos de las técnicas individuales a flujos de trabajo completos de evaluación de seguridad. Exploraremos escenarios de seguridad del mundo real y te mostraremos exactamente cómo los profesionales abordan diferentes desafíos de seguridad de red de principio a fin.
La teoría es importante, pero la verdadera maestría viene de aplicar tus habilidades para resolver casos reales. Los mejores profesionales de seguridad de redes no solo conocen las herramientas, sino que saben cómo usarlas metódicamente para descubrir vulnerabilidades y fortalecer las defensas.
Al examinar estudios de caso prácticos, aprenderás cómo combinar las técnicas que hemos cubierto en procedimientos comprensivos de evaluación de seguridad adaptados a escenarios específicos. Al final de este módulo, entenderás cómo abordar diferentes situaciones de seguridad de manera metódica y efectiva, desde el reconocimiento inicial hasta el reporte final.
Una evaluación de seguridad efectiva requiere una metodología estructurada. Aunque las técnicas específicas varían según el escenario, el enfoque general sigue fases consistentes:
Establecer la base y la autorización.
Construir un mapa del entorno.
Revelar detalles del sistema para identificación de vulnerabilidades.
Analizar información para encontrar debilidades específicas.
Transformar hallazgos en inteligencia accionable.
Este enfoque estructurado asegura una cobertura comprensiva, minimiza problemas omitidos y proporciona resultados accionables.
Una línea base de red documenta el estado normal de tu entorno, esencial para detectar cambios y anomalías. Crear una línea base efectiva implica:
Una línea base bien mantenida transforma el escaneo ad-hoc en monitoreo sistemático de seguridad, permitiéndote identificar rápidamente cambios no autorizados o posibles incidentes de seguridad.
Una documentación adecuada transforma los datos crudos del escaneo en inteligencia accionable. La documentación de seguridad efectiva incluye:
La documentación debe ser:
Recordá: Incluso la evaluación más exhaustiva solo es tan valiosa como su documentación. Tus hallazgos deben comunicarse eficazmente para impulsar mejoras en la seguridad.
Recorramos un flujo de trabajo completo de evaluación de vulnerabilidades para un entorno de aplicación web:
Identificar hosts y posibles servidores web.
# Identificar hosts
nmap -sn 192.168.1.0/24 -oA descubrimiento_webapp
# Encontrar servidores web
nmap -p 80,443,8000-8100 --open 192.168.1.0/24 -oA servidores_webapp
# Extraer objetivos (CORREGIDO: Usando {''}, escapado >)
grep "open" servidores_webapp.gnmap | cut -d " " -f 2 {'>'} objetivos_webapp.txtRealizar detección detallada de servicios y SO.
# Detección detallada de servicios nmap -sV -p 80,443,8000-8100 -iL objetivos_webapp.txt -oA servicios_webapp # Detección de SO sudo nmap -O -iL objetivos_webapp.txt -oA so_webapp
Usar scripts NSE para enumeración de aplicaciones web y verificación de vulnerabilidades.
# Enumeración básica de aplicación web nmap --script http-enum -p 80,443,8000-8100 -iL objetivos_webapp.txt -oA enum_webapp # Verificar vulnerabilidades comunes nmap --script "http-vuln*" -p 80,443,8000-8100 -iL objetivos_webapp.txt -oA vulns_webapp
Evaluar la configuración SSL/TLS para servicios HTTPS.
# Verificar configuración SSL/TLS nmap --script ssl-enum-ciphers -p 443,8443 -iL objetivos_webapp.txt -oA ssl_webapp
Analizar resultados y preparar documentación.
# Generar reporte HTML (si se usa Zenmap o con xsltproc)
# xsltproc servicios_webapp.xml -o servicios_webapp.html
# Resumir hallazgos (CORREGIDO: Usando {''}, escapado >)
grep "open" servicios_webapp.gnmap | sort | uniq -c {'>'} resumen_servicios.txt
grep "VULNERABLE" vulns_webapp.nmap {'>'} vulnerabilidades.txt#!/bin/bash
# Evaluación de Entorno de Aplicación Web
OUTDIR="evaluacion_webapp_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$OUTDIR"
cd "$OUTDIR"
TARGET_RANGE="192.168.1.0/24"
WEB_PORTS="80,443,8000-8100"
echo "[+] Fase 1: Descubrimiento - Identificando hosts en $TARGET_RANGE..."
sudo nmap -sn $TARGET_RANGE -oA descubrimiento
grep "Up" descubrimiento.gnmap | cut -d " " -f 2 > hosts_activos.txt
echo "[+] Fase 2: Escaneo de Puertos - Identificando servidores web en puertos $WEB_PORTS..."
sudo nmap -p $WEB_PORTS --open -iL hosts_activos.txt -oA servidores_web
grep "open" servidores_web.gnmap | cut -d " " -f 2 > objetivos_servidores_web.txt
echo "[+] Fase 3: Enumeración de Servicios - Detectando servicios y SO..."
sudo nmap -sV -O -p $WEB_PORTS -iL objetivos_servidores_web.txt -oA servicios
echo "[+] Fase 4: Escaneo de Vulnerabilidades - Ejecutando scripts NSE..."
sudo nmap --script "http-enum,http-vuln*,ssl-enum-ciphers" -p $WEB_PORTS -iL objetivos_servidores_web.txt -oA vulnerabilidades
echo "[+] Fase 5: Análisis - Resumiendo hallazgos..."
grep "VULNERABLE" vulnerabilidades.nmap > sistemas_vulnerables.txt
grep "open" servicios.gnmap | sort | uniq -c > resumen_servicios.txt
echo "[+] Evaluación completa. Resultados guardados en $PWD"Exploremos cómo crear y mantener una línea base de seguridad de red:
Realizar descubrimiento y documentación comprensiva.
# Crear directorio de línea base BASE_DIR="linea_base_red/$(date +%Y-%m-%d)" mkdir -p "$BASE_DIR" cd "$BASE_DIR" # Descubrir todos los hosts (ajustar rango) TARGET_RANGE="10.0.0.0/16" sudo nmap -sn $TARGET_RANGE -oA descubrimiento_host # Realizar escaneo comprensivo grep "Up" descubrimiento_host.gnmap | cut -d " " -f 2 > hosts_activos.txt sudo nmap -sV -O -p 1-1000 -iL hosts_activos.txt -oA linea_base_servicios # Documentar topología de red (opcional, puede ser lento) # sudo nmap --traceroute -iL hosts_activos.txt -oA topologia_red
Script para comparar el estado actual con la línea base.
#!/bin/bash
# Comparación de Línea Base de Red
BASELINE_DIR="/ruta/a/tu/ultima/lineabase" # Apuntar al dir de línea base
CURRENT_DIR="comparacion_$(date +%Y%m%d_%H%M%S)"
TARGET_RANGE="10.0.0.0/16" # Igualar rango línea base
PORTS_TO_SCAN="1-1000" # Igualar puertos línea base
mkdir -p "$CURRENT_DIR"
cd "$CURRENT_DIR"
echo "[+] Realizando escaneo del estado actual..."
sudo nmap -sn $TARGET_RANGE -oA descubrimiento_host_actual
grep "Up" descubrimiento_host_actual.gnmap | cut -d " " -f 2 > hosts_activos_actual.txt
sudo nmap -sV -O -p $PORTS_TO_SCAN -iL hosts_activos_actual.txt -oA linea_base_servicios_actual
echo "[+] Comparando listas de hosts..."
comm -3 <(sort $BASELINE_DIR/hosts_activos.txt) <(sort hosts_activos_actual.txt) > cambios_host.txt
echo "[+] Comparando servicios usando ndiff..."
ndiff $BASELINE_DIR/linea_base_servicios.xml linea_base_servicios_actual.xml > cambios_servicios.txt
echo "[+] Comparación completa. Revisá cambios_host.txt y cambios_servicios.txt en $PWD"Automatizar el mantenimiento de la línea base usando cron.
# Agregar a crontab (ej., corre mensualmente a las 2 AM el día 1) # Línea de ejemplo para /etc/crontab: # 0 2 1 * * root /ruta/a/tu/script_creacion_lineabase.sh
Al responder a un posible incidente de seguridad, Nmap puede ayudar a identificar sistemas comprometidos:
Escanear en busca de puertos abiertos inusuales que puedan indicar compromiso.
# Escanear puertos comunes de backdoor/C2 (ajustar según sea necesario) PUERTOS_BACKDOOR="4444,5555,6666,31337,12345,54321" sudo nmap -p $PUERTOS_BACKDOOR 10.0.0.0/16 --open -oA verificacion_backdoor
Usar scripts NSE para buscar signos de malware (usar scripts específicos si es posible).
# Buscar indicadores de malware (puede ser amplio) sudo nmap --script "malware*" 10.0.0.5 -oA verificacion_malware # Verificaciones más dirigidas si es posible # sudo nmap --script=http-malware-host 10.0.0.5 -p 80
Comparar servicios actuales con la línea base si está disponible.
# Realizar escaneo actual
sudo nmap -sV 10.0.0.5 -oA estado_actual
# Comparar con línea base (reemplazar con archivo real)
ndiff linea_base_10.0.0.5.xml estado_actual.xml {'>'} cambios_sistema.txt Verificar que los sistemas comprometidos estén adecuadamente aislados.
# Verificar si el aislamiento es efectivo (esperar sin puertos abiertos si está aislado) sudo nmap -sS -p- --max-retries 1 10.0.0.5 -oA verificacion_aislamiento
#!/bin/bash
# Script Auxiliar de Respuesta a Incidentes de Seguridad
if [ -z "$1" ]; then
echo "Uso: $0 <ip_objetivo>"
exit 1
fi
TARGET=$1
NETWORK=$(echo $TARGET | cut -d "." -f 1-3).0/24
OUTDIR="respuesta_incidente_$TARGET_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$OUTDIR"
cd "$OUTDIR"
PUERTOS_BACKDOOR="4444,5555,6666,31337,12345,54321"
PUERTOS_LATERAL="22,3389,445,135,139"
echo "[+] Investigando posible compromiso de $TARGET"
# Verificar puertos inusuales
echo "[+] Verificando puertos backdoor ($PUERTOS_BACKDOOR)..."
sudo nmap -p $PUERTOS_BACKDOOR $TARGET --open -oA verificacion_backdoor
# Verificar potencial de movimiento lateral en la red local
echo "[+] Verificando potencial de movimiento lateral en $NETWORK (Puertos: $PUERTOS_LATERAL)..."
sudo nmap -p $PUERTOS_LATERAL $NETWORK --open -oA movimiento_lateral
# Verificar indicadores de malware
echo "[+] Verificando indicadores de malware en $TARGET (usando NSE)..."
sudo nmap --script "malware*,auth-owners,unusual-port" $TARGET -oA verificacion_malware
# Comparar con línea base si está disponible
ARCHIVO_LINEABASE="/ruta/a/lineasbase/lineabase_$TARGET.xml" # ACTUALIZAR ESTA RUTA
if [ -f "$ARCHIVO_LINEABASE" ]; then
echo "[+] Comparando $TARGET con línea base $ARCHIVO_LINEABASE..."
sudo nmap -sV $TARGET -oA estado_actual
ndiff "$ARCHIVO_LINEABASE" estado_actual.xml {'>'} cambios_sistema.txt # CORREGIDO: Escapado >
echo "[+] Cambios del sistema guardados en cambios_sistema.txt"
else
echo "[-] Archivo de línea base $ARCHIVO_LINEABASE no encontrado. Omitiendo comparación."
fi
echo "[+] Investigación completa. Revisá los archivos de salida en $PWD"Nmap puede ayudar a verificar el cumplimiento de estándares de seguridad como PCI DSS:
Identificar sistemas dentro del alcance para cumplimiento (ej., Entorno de Datos de Tarjetahabientes).
# Descubrir sistemas en alcance PCI (rango de ejemplo)
RANGO_PCI="10.0.0.0/24"
sudo nmap -sn $RANGO_PCI -oA descubrimiento_pci
grep "Up" descubrimiento_pci.gnmap | cut -d " " -f 2 {'>'} alcance_pci.txt Escanear en busca de servicios a menudo prohibidos por estándares de cumplimiento.
# Verificar servicios prohibidos (ej., Telnet, FTP, POP/IMAP sin encriptar) PUERTOS_PROHIBIDOS="21,23,110,143" sudo nmap -p $PUERTOS_PROHIBIDOS -iL alcance_pci.txt --open -oA servicios_prohibidos
Verificar configuraciones SSL/TLS contra requisitos (ej., deshabilitar SSLv3, TLS temprano).
# Verificar configuraciones SSL/TLS
PUERTOS_HTTPS="443,8443" # Agregar otros puertos relevantes
sudo nmap --script ssl-enum-ciphers -p $PUERTOS_HTTPS -iL alcance_pci.txt -oA verificacion_ssl
# Identificar protocolos/cifrados no conformes
grep -E "SSLv2|SSLv3|TLSv1\.0|TLSv1\.1|RC4|MD5" verificacion_ssl.nmap {'>'} ssl_no_conforme.txt Crear un reporte básico de cumplimiento.
#!/bin/bash
# Generación Básica de Reporte de Cumplimiento
ARCHIVO_REPORTE="reporte_cumplimiento_$(date +%Y%m%d).txt"
ARCHIVO_ALCANCE_PCI="alcance_pci.txt"
ARCHIVO_PROHIBIDOS="servicios_prohibidos.nmap"
ARCHIVO_VERIFICACION_SSL="verificacion_ssl.nmap"
ARCHIVO_SSL_NO_CONFORME="ssl_no_conforme.txt"
echo "Reporte de Escaneo de Cumplimiento - $(date)" > "$ARCHIVO_REPORTE"
echo "====================================" >> "$ARCHIVO_REPORTE"
echo "\n1. Sistemas en Alcance:" >> "$ARCHIVO_REPORTE"
cat "$ARCHIVO_ALCANCE_PCI" >> "$ARCHIVO_REPORTE"
echo "\n2. Servicios Prohibidos Encontrados:" >> "$ARCHIVO_REPORTE"
if [ -s "$ARCHIVO_PROHIBIDOS" ]; then
grep "open" "$ARCHIVO_PROHIBIDOS" >> "$ARCHIVO_REPORTE"
else
echo " Ninguno encontrado." >> "$ARCHIVO_REPORTE"
fi
echo "\n3. SSL/TLS No Conforme Encontrado:" >> "$ARCHIVO_REPORTE"
if [ -s "$ARCHIVO_SSL_NO_CONFORME" ]; then
cat "$ARCHIVO_SSL_NO_CONFORME" >> "$ARCHIVO_REPORTE"
else
echo " Ninguno encontrado." >> "$ARCHIVO_REPORTE"
fi
# Ejemplo: Agregar una verificación simple de pasa/falla
FALLO=false
if [ -s "$ARCHIVO_PROHIBIDOS" ] || [ -s "$ARCHIVO_SSL_NO_CONFORME" ]; then
FALLO=true
fi
echo "\nEstado General: $(if $FALLO; then echo 'FALLÓ'; else echo 'PASÓ'; fi)" >> "$ARCHIVO_REPORTE"
echo "\nReporte generado: $ARCHIVO_REPORTE"Creá una línea base para tu red de laboratorio o doméstica.
sudo nmap -sn 192.168.1.0/24 -oA descubrimiento_lineabasegrep "Up" descubrimiento_lineabase.gnmap | cut -d " " -f 2 > hosts_activos.txt && sudo nmap -sV -O -p 1-1000 -iL hosts_activos.txt -oA servicios_lineabasendiff servicios_lineabase.xml nuevos_servicios.xml > cambios.txtRealizá una evaluación de app web en un servidor de prueba (ej., Metasploitable).
sudo nmap -p 80,443,8000... --open ...sudo nmap --script http-enum ...sudo nmap --script "http-vuln*" ...Simulá una respuesta a incidentes.
nc -lvp 4444 en el objetivo).sudo nmap -p 1-10000 --open ...), buscá servicios inusuales (sudo nmap -sV ...).Verificá el cumplimiento con un estándar simple.
sudo nmap -p 21,23 --open ...Faltan sistemas críticos.
Solución:
# Usar múltiples técnicas de descubrimiento sudo nmap -sn ... # Rango de red sudo nmap -sL ... # Basado en DNS sudo nmap -sn --send-ip ... # Pasivo
Escaneos de vulnerabilidad reportan problemas inexistentes.
Solución:
# Validar hallazgos manualmente o # Usar argumentos NSE específicos sudo nmap --script ... --script-args ...
Demasiados datos para analizar.
Solución:
# Enfocarse en objetivos de alto valor sudo nmap -p ... --open ... # Encontrar críticos # Filtrar resultados/salidas grep ... | cut ...
La documentación varía.
Solución:
# Usar plantillas y scripts de automatización # Ejemplo: script bash para ejecutar escaneos # y formatear salida consistentemente.
Verificar controles de seguridad para datos de pacientes (HIPAA).
--script ssl-enum-ciphers), servicios prohibidos.--script vuln.Identificado: Encriptación débil, acceso no autorizado, sistemas sin parches.
Evaluar seguridad red empresa adquirida antes de integrar.
nmap -sn ...).nmap -sV ...), verificar vulnerabilidades (--script vuln).Revelado: Vulnerabilidades críticas, segmentación inadecuada, shadow IT.
En el episodio final, exploraremos:
Guía Técnica para Pruebas de Seguridad de la Información.
Guía de Pruebas de Seguridad Web.
Incluye procedimientos de escaneo de seguridad de red.
El libro oficial de Nmap por Gordon Lyon.
Nota: Usá este video como guía visual para complementar el material escrito.
Test your understanding with these questions
1. ¿Cuál es la primera fase en una metodología estructurada de evaluación de seguridad como se describe en este episodio?
2. ¿Cuál es el propósito principal de establecer una línea base de seguridad de red usando Nmap?
3. En un escenario de evaluación de entorno de aplicación web, ¿qué categoría de scripts NSE de Nmap sería más útil para identificar vulnerabilidades web comunes?
4. Al usar Nmap para la respuesta a incidentes de seguridad, ¿qué podría ayudar a identificar el escaneo de un rango específico de puertos abiertos inusuales?
5. En el contexto de la verificación de cumplimiento (como PCI DSS), ¿cuál es un aspecto clave que Nmap puede ayudar a evaluar con respecto a la seguridad de los sistemas que manejan datos sensibles?
