the_open_door
café
ESEN
← Volver al índice

ICMP Tunneling

El ICMP tunneling encapsula tráfico TCP dentro de paquetes ICMP, normalmente los echo request y echo reply del ping. Es la técnica a la que se recurre cuando un cortafuegos deja pasar el ping pero bloquea casi todo lo demás: el ping se considera inofensivo y rara vez se filtra, así que su campo de datos se convierte en un canal de salida por donde nadie mira.

Mecanismo

Un paquete ICMP echo tiene un campo de datos cuyo contenido el protocolo no examina (sirve para medir latencia y tamaño). El tunneling lo aprovecha: el cliente trocea el tráfico TCP y lo mete en el campo de datos de echo request; el servidor, en el otro extremo, lo extrae, lo reenvía al destino real y devuelve las respuestas dentro de echo reply. Para la red intermedia solo se ven pings yendo y viniendo.

ptunnel-ng implementa este esquema. En el host comprometido (con salida ICMP) se levanta el servidor, reenviando a un servicio interno como el SSH:

sudo ./ptunnel-ng -r<ip> -R22

Y en el atacante se conecta el cliente, que expone ese SSH en un puerto local a través del túnel ICMP:

sudo ./ptunnel-ng -p<ip> -l2222 -r127.0.0.1 -R22
ssh -p2222 <user>@127.0.0.1

Requisitos

Basta con que el ICMP salga del segmento (algo muy común, porque bloquear el ping rompe diagnósticos legítimos) y con poder ejecutar el servidor en el host pivote. El túnel es lento y algo frágil (depende de que la red no limite ni reordene los ICMP), pero cuando el ping es lo único que atraviesa el cortafuegos, es la diferencia entre pivotar o no.

Cómo detectarlo

Los echo request/reply de un túnel se distinguen del ping normal por el tamaño y la variabilidad del campo de datos (un ping legítimo lleva un payload fijo y pequeño; el túnel, cargas grandes y cambiantes), por un volumen sostenido de ICMP hacia un mismo host y por una proporción request/reply que no cuadra con diagnósticos normales. Un IDS que inspeccione el payload ICMP lo caza enseguida.

Defensa. Limitar o bloquear el ICMP saliente hacia Internet, aplicar rate limiting al echo, e inspeccionar el tamaño y el contenido del payload ICMP en el perímetro. Relacionado con DNS tunneling y relay con socat.

Herramientasptunnel-ng