
icmptunnel
icmptunnel é uma ferramenta para tunelar tráfego IP dentro de pacotes de requisição e resposta de eco ICMP (ping). Ela foi projetada para contornar firewalls de forma semicoberta, por exemplo, ao fazer pivoting dentro de uma rede onde o ping é permitido. Também pode ser útil para o egresso de uma rede corporativa para a Internet, embora seja bastante comum que o tráfego de eco ICMP seja filtrado no perímetro da rede.
Embora existam algumas ferramentas que implementam essa técnica, o icmptunnel oferece um protocolo mais confiável e um mecanismo para tunelar através de firewalls stateful e NAT.
A ferramenta usa um Makefile simples para compilar e instalar.
Use make para compilar o icmptunnel.
Primeiro, desabilite as respostas de eco ICMP tanto no cliente quanto no servidor. Isso impede que o kernel responda aos pacotes de ping por conta própria.
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
No lado do servidor, inicie o icmptunnel em modo servidor e atribua um endereço IP à nova interface de túnel.
# ./icmptunnel –s
opened tunnel device: tun0
(ctrl-z)
# bg
# /sbin/ifconfig tun0 10.0.0.1 netmask 255.255.255.0
No lado do cliente, aponte o icmptunnel para o servidor e atribua um endereço IP.
# ./icmptunnel <server>
opened tunnel device: tun0
connection established.
(ctrl-z)
# bg
# /sbin/ifconfig tun0 10.0.0.2 netmask 255.255.255.0
Neste ponto, você deve ter um túnel ponto a ponto funcionando via pacotes ICMP. O lado do servidor é 10.0.0.1 e o lado do cliente é 10.0.0.2. No cliente, tente conectar-se ao servidor via SSH:
# ssh [email protected]
Password:
Para usar o servidor remoto como um proxy SOCKS criptografado:
# ssh -D 8080 -N [email protected]
Password:
Agora aponte seu navegador para o servidor SOCKS local.
Consulte ./icmptunnel -h para obter uma lista de opções.
Por favor, relate quaisquer bugs na página do projeto no Github em: