
icmptunnel
icmptunnel es una herramienta para tunelizar tráfico IP dentro de paquetes ICMP de solicitud y respuesta de eco (ping). Está pensada para evadir firewalls de forma semicubierta, por ejemplo al pivotar dentro de una red donde ping está permitido. También puede ser útil para la salida desde una red corporativa hacia Internet, aunque es bastante común que el tráfico de eco ICMP esté filtrado en el perímetro de la red.
Aunque existen un par de herramientas que implementan esta técnica, icmptunnel proporciona un protocolo más fiable y un mecanismo para tunelizar a través de firewalls stateful y NAT.
La herramienta utiliza un Makefile sencillo para compilar e instalar.
Usa make para compilar icmptunnel.
Primero, desactiva las respuestas de eco ICMP tanto en el cliente como en el servidor. Esto evita que el kernel responda a los paquetes ping por sí mismo.
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
En el lado del servidor, inicia icmptunnel en modo servidor y asigna una dirección IP a la nueva interfaz de túnel.
# ./icmptunnel –s
opened tunnel device: tun0
(ctrl-z)
# bg
# /sbin/ifconfig tun0 10.0.0.1 netmask 255.255.255.0
En el lado del cliente, apunta icmptunnel al servidor y asigna una dirección IP.
# ./icmptunnel <server>
opened tunnel device: tun0
connection established.
(ctrl-z)
# bg
# /sbin/ifconfig tun0 10.0.0.2 netmask 255.255.255.0
En este punto, deberías tener un túnel punto a punto funcional mediante paquetes ICMP. El lado del servidor es 10.0.0.1 y el lado del cliente es 10.0.0.2. En el cliente, intenta conectarte al servidor mediante SSH:
# ssh [email protected]
Password:
Para usar el servidor remoto como un proxy SOCKS cifrado:
# ssh -D 8080 -N [email protected]
Password:
Ahora apunta tu navegador web al servidor SOCKS local.
Consulta ./icmptunnel -h para ver una lista de opciones.
Por favor, reporta cualquier error en la página del proyecto en Github: