Cargando...
Cargando...
Duración: 1.5 horas
¡Bienvenidos y bienvenidas al séptimo episodio de nuestro curso completo de Nmap! En este módulo, vamos a explorar las técnicas de evasión de firewalls e IDS: métodos avanzados que nos permiten realizar escaneos de red exhaustivos minimizando la detección. Estas técnicas son esenciales para realizar pruebas de seguridad completas y entender las limitaciones de los controles de seguridad.
En el mundo digital, a veces ser visto es la diferencia entre el éxito y el fracaso. Los sistemas de seguridad están diseñados para detectar escaneos, pero como un agente habilidoso, Nmap puede moverse a través de las redes minimizando su huella.
Este juego del gato y el ratón entre el escaneo y la detección es un aspecto crucial de la seguridad de redes que tanto atacantes como defensores necesitan comprender. Al final de este módulo, vamos a entender ambos lados de esta partida de ajedrez técnica —cómo funciona la detección y cómo la evasión la contrarresta—, conocimiento esencial para una evaluación de seguridad integral.
Las técnicas que veremos en este módulo solo deben usarse con la autorización adecuada. Usar técnicas de evasión sin permiso puede violar leyes sobre delitos informáticos y políticas organizacionales. Estas habilidades se presentan únicamente con fines educativos y de pruebas de seguridad legítimas.
Antes de meternos con la evasión, tenemos que entender cómo se detectan los escaneos. Los sistemas de seguridad de red usan varios mecanismos:
Los dispositivos de seguridad mantienen bases de datos de patrones de escaneo conocidos y alertan cuando detectan tráfico coincidente.
Cuando ocurren demasiados intentos de conexión en un corto período, especialmente si muchos fallan, los sistemas de seguridad generan alertas.
Los sistemas de seguridad modernos construyen líneas base de comportamiento normal y señalan desviaciones de estos patrones.
Los firewalls y sistemas IDS rastrean el estado de las conexiones y alertan sobre violaciones del comportamiento esperado del protocolo.
Distintos tipos de firewalls detectan los escaneos de diferentes maneras:
Firewalls básicos que verifican las cabeceras de los paquetes contra un conjunto de reglas. Pueden bloquear puertos específicos pero típicamente no inspeccionan el contenido del paquete.
Rastrean el estado de las conexiones activas y analizan el contenido de los paquetes. Pueden detectar secuencias incorrectas de flags TCP usadas en escaneos de puertos.
Combinan funciones de firewall tradicionales con características de IDS/IPS. Analizan el tráfico a nivel de aplicación y pueden detectar escaneos sofisticados.
Especializados para tráfico web. Se enfocan en conexiones HTTP/HTTPS y en proteger aplicaciones basadas en web.
Una evasión efectiva no se trata de una única técnica, sino de una estrategia integral que aborda múltiples vectores de detección:
La combinación adecuada dependerá de nuestros objetivos específicos y de los controles de seguridad que estemos probando. Vamos a explorar cada enfoque en detalle.
Las opciones de timing de Nmap nos permiten controlar la agresividad y velocidad de nuestros escaneos. Esto es crucial tanto para evitar la detección como para optimizar la duración del escaneo.
Nmap ofrece seis plantillas de timing incorporadas, desde la más sigilosa (T0) hasta la más agresiva (T5):
Escaneo extremadamente lento que espera 5 minutos entre el envío de paquetes. Diseñado para evadir incluso los IDS más sofisticados.
sudo nmap -T0 192.168.1.1Escaneo muy lento que espera 15 segundos entre paquetes. Sigue siendo muy sigiloso pero más práctico que T0.
sudo nmap -T1 192.168.1.1Ralentiza el escaneo para usar menos ancho de banda y recursos de la máquina objetivo. Espera 0.4 segundos entre paquetes.
sudo nmap -T2 192.168.1.1La plantilla de timing por defecto. Equilibra velocidad con confiabilidad. Sin retrasos deliberados.
sudo nmap -T3 192.168.1.1Acelera los escaneos asumiendo que estamos en una red rápida y confiable. Puede sobrecargar hosts lentos.
sudo nmap -T4 192.168.1.1Prioriza la velocidad sobre la precisión. Sacrifica resultados exhaustivos por un escaneo más rápido. Fácil de detectar.
sudo nmap -T5 192.168.1.1Para un control más preciso, podemos ajustar parámetros de timing individuales:
Acá tenemos un ejemplo de parámetros de timing ajustados para un escaneo sigiloso:
sudo nmap --max-rate 10 --scan-delay 1s --max-retries 1 --host-timeout 30m 192.168.1.1Y para un escaneo rápido que prioriza la velocidad sobre la confiabilidad:
sudo nmap --min-rate 300 --max-retries 2 --min-parallelism 50 192.168.1.1Las técnicas de manipulación de paquetes modifican cómo se construyen y envían los paquetes para evadir la detección basada en patrones:
La fragmentación de paquetes divide las cabeceras TCP en múltiples paquetes IP, lo que puede eludir algunos sistemas de inspección:
# Fragmentar paquetes
sudo nmap -f 192.168.1.1
# Usar fragmentos más pequeños
sudo nmap -ff 192.168.1.1
# Especificar MTU personalizada (múltiplo de 8)
sudo nmap --mtu 24 192.168.1.1La fragmentación funciona porque algunos sistemas de inspección no reensamblan los fragmentos antes de analizarlos.
El escaneo con señuelos (decoys) genera ruido enviando paquetes desde direcciones IP falseadas (spoofed) junto con nuestra dirección real:
# Usar señuelos aleatorios
sudo nmap -D RND:10 192.168.1.1
# Especificar direcciones señuelo (ME es nuestra IP real)
sudo nmap -D 10.0.0.1,10.0.0.2,ME 192.168.1.1
# Usar solo señuelos (nuestra IP no incluida explícitamente, necesitamos -S para definirla)
# El siguiente comando usa 10.0.0.3 como IP fuente REAL y 10.0.0.1, 10.0.0.2 como señuelos
sudo nmap -D 10.0.0.1,10.0.0.2 -S 10.0.0.3 192.168.1.1Esta técnica hace más difícil identificar el origen real del escaneo entre el tráfico de los señuelos.
Cambiar la longitud de los paquetes puede ayudar a evadir la detección basada en patrones:
# Agregar datos aleatorios a los paquetes
sudo nmap --data-length 25 192.168.1.1Esto agrega datos aleatorios a los paquetes enviados, haciendo que se parezcan menos a los paquetes estándar de Nmap.
Para un control máximo, podemos especificar exactamente qué flags usar:
# Escaneo TCP personalizado con flags SYN-FIN
sudo nmap --scanflags SYNFIN 192.168.1.1
# Escaneo Null (sin flags)
sudo nmap -sN 192.168.1.1
# Escaneo FIN
sudo nmap -sF 192.168.1.1
# Escaneo Xmas (flags FIN, PSH, URG)
sudo nmap -sX 192.168.1.1Estas combinaciones inusuales de flags pueden eludir dispositivos de seguridad configurados para buscar solo tipos de escaneo estándar.
Nmap ofrece varias técnicas para evadir la detección de firewalls e IDS. Vamos a explorar algunos de estos métodos en más detalle:
La fragmentación de paquetes divide las cabeceras TCP en múltiples paquetes, lo que puede eludir sistemas de inspección de paquetes que no reensamblan los fragmentos antes de analizarlos.
sudo nmap -f 192.168.1.1Para una mayor fragmentación, podemos usar -ff para utilizar fragmentos más pequeños:
sudo nmap -ff 192.168.1.1Alternativamente, podemos especificar una MTU (Maximum Transmission Unit) personalizada con --mtu. El valor debe ser múltiplo de 8:
sudo nmap --mtu 16 192.168.1.1El escaneo con señuelos (decoys) crea ruido haciendo parecer que el escaneo proviene de múltiples IPs de origen, ocultando la fuente real entre los señuelos:
# ME representa nuestra IP real
sudo nmap -D 10.0.0.1,10.0.0.2,10.0.0.3,ME 192.168.1.1Esto hace que el escaneo parezca provenir de 10.0.0.1, 10.0.0.2, 10.0.0.3 y nuestra IP real (ME). También podemos generar señuelos aleatorios:
# Genera 10 IPs señuelo aleatorias además de la nuestra
sudo nmap -D RND:10 192.168.1.1Esto genera 10 direcciones IP aleatorias como señuelos.
Consideraciones Importantes sobre los Señuelos
Al usar señuelos, asegurémonos de que los hosts señuelo estén activos y accesibles. Si no lo están, podría ralentizar nuestro escaneo o hacerlo fallar. Además, tengamos cuidado de no implicar a terceros inocentes en nuestras actividades de escaneo.
Podemos rutear nuestros escaneos Nmap a través de proxies o falsear (spoof) nuestra dirección MAC:
sudo nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1También podemos usar --spoof-mac 0 para una MAC aleatoria, o --spoof-mac Apple,--spoof-mac Cisco, etc., para MACs específicas de proveedores.
Primero, asegurémonos de que Tor esté instalado y corriendo, luego usemos ProxyChains con Nmap:
sudo proxychains nmap -sT -Pn 192.168.1.1Notá que solo los escaneos TCP connect (-sT) funcionan de manera confiable a través de proxies como Tor. Otros tipos de escaneo (como SYN) generalmente fallarán.
Algunos firewalls e IDS inspeccionan el tamaño de los paquetes. Al agregar datos aleatorios a los paquetes, podemos evadir la detección basada en firmas:
# Agrega 200 bytes de datos aleatorios
sudo nmap --data-length 200 192.168.1.1Esto agrega datos aleatorios a los paquetes enviados, haciéndolos parecer menos típicos de un escaneo.
Al escanear múltiples hosts, aleatorizar el orden puede hacer que el patrón de escaneo sea menos obvio:
sudo nmap --randomize-hosts 192.168.1.0/24El escaneo idle (-sI) es una de las técnicas más sofisticadas de Nmap. Utiliza un host "zombie" para realizar el escaneo, haciéndolo completamente ciego (el objetivo no ve nuestra IP):
# Es necesario especificar un host zombie y, opcionalmente, un puerto en él
sudo nmap -sI host_zombie:puerto host_objetivoEsta técnica requiere un host "zombie" inactivo con secuencias predecibles de IP ID, lo cual es cada vez más raro en sistemas modernos debido a mejoras de seguridad en las pilas TCP/IP.
Muchos firewalls tienen reglas que permiten tráfico desde puertos de origen específicos, particularmente aquellos asociados con servicios comunes. Al manipular el puerto de origen, a veces podemos eludir estos filtros.
Algunos puertos de origen comúnmente confiables (o al menos, frecuentemente permitidos) incluyen:
Para especificar un puerto de origen (-g es un alias de --source-port):
# Usar el puerto 53 (DNS) como puerto de origen
sudo nmap --source-port 53 192.168.1.1
# O equivalentemente:
sudo nmap -g 53 192.168.1.1Este ejemplo usa DNS (puerto 53) como el puerto de origen, que a menudo se permite a través de firewalls para consultas DNS.
Combinándolo con un escaneo SYN (que suele ser más sigiloso) para intentar mejores resultados:
sudo nmap -sS -g 443 192.168.1.1Aplicación en el Mundo Real
En engagements de pentesting, probar diferentes puertos de origen a veces puede revelar inconsistencias en el filtrado. Si una regla de firewall permite tráfico HTTP saliente (desde cualquier puerto origen hacia el puerto 80 destino) o entrante (desde puerto origen 80), usar el puerto 80 como nuestro puerto de origen podría permitir que nuestro escaneo atraviese el firewall, revelando información que de otro modo estaría oculta.
Como mencionamos, el escaneo Idle usa un host zombie para realizar un escaneo completamente ciego:
# Escaneo Idle básico
sudo nmap -sI host_zombie.philocyber.com 192.168.1.1
# Escaneo Idle especificando un puerto en el zombie (a veces necesario)
sudo nmap -sI host_zombie.philocyber.com:80 192.168.1.1Esta técnica "rebota" los escaneos en un host "zombie" inactivo, haciendo que el escaneo parezca provenir de ese host en lugar del nuestro.
Requisitos para un buen host zombie:
Algunos servidores FTP antiguos y mal configurados permitían ataques "bounce" que podían usarse para escanear indirectamente otros hosts a través del comando PORT/EPRT de FTP:
# Escaneo FTP bounce (requiere un servidor FTP vulnerable)
sudo nmap -b usuario:contraseña@ftp.vulnerable.com host_objetivoEsta técnica es raramente útil hoy en día, ya que la mayoría de los servidores FTP modernos deshabilitan esta funcionalidad por razones de seguridad.
Para una máxima evasión, combinamos múltiples técnicas basadas en el entorno específico:
# Ejemplo de escaneo sigiloso comprensivo
sudo nmap -sS -T1 -f --randomize-hosts --data-length 15 \
--max-retries 1 --max-scan-delay 500ms 192.168.1.0/24Este enfoque:
En el próximo episodio, vamos a explorar:
Guía completa de todas las características de evasión de Nmap directamente de la fuente.
Capítulo detallado del libro de Nmap sobre técnicas de evasión y spoofing.
Exploración enfocada en métodos de evasión de IDS con ejemplos prácticos.
Metodologías de prueba para evaluar la efectividad del firewall.
Nota: Usá este video como guía visual para complementar el material escrito.
Test your understanding with these questions
1. ¿Qué plantilla de timing de Nmap es la más agresiva y rápida?
2. ¿Qué hace la opción "-f" en Nmap?
3. ¿Qué comando usaríamos para hacer que nuestro escaneo parezca provenir de múltiples IPs de origen?
4. ¿Cuándo usaríamos la opción "--source-port 53" (o "-g 53")?
5. ¿Qué opción de Nmap guarda los resultados del escaneo en múltiples formatos simultáneamente?