
icmptunnel
icmptunnel è uno strumento per instradare il traffico IP all'interno di pacchetti ICMP echo request e response (ping). È progettato per bypassare i firewall in modo semi-nascosto, ad esempio quando ci si sposta all'interno di una rete in cui il ping è consentito. Può essere utile anche per l'egress da una rete aziendale verso Internet, sebbene sia abbastanza comune che il traffico ICMP echo venga filtrato al perimetro di rete.
Sebbene esista un paio di strumenti esistenti che implementano questa tecnica, icmptunnel fornisce un protocollo più affidabile e un meccanismo per il tunneling attraverso firewall stateful e NAT.
Lo strumento utilizza un semplice Makefile per compilare e installare.
Usa make per compilare icmptunnel.
Per prima cosa, disabilita le risposte ICMP echo sia sul client che sul server. Questo impedisce al kernel di rispondere ai pacchetti ping.
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Sul lato server, avvia icmptunnel in modalità server e assegna un indirizzo IP alla nuova interfaccia di tunnel.
# ./icmptunnel –s
opened tunnel device: tun0
(ctrl-z)
# bg
# /sbin/ifconfig tun0 10.0.0.1 netmask 255.255.255.0
Sul lato client, indica a icmptunnel il server e assegna un indirizzo IP.
# ./icmptunnel <server>
opened tunnel device: tun0
connection established.
(ctrl-z)
# bg
# /sbin/ifconfig tun0 10.0.0.2 netmask 255.255.255.0
A questo punto, dovresti avere un tunnel punto-punto funzionante tramite pacchetti ICMP. Il lato server è 10.0.0.1, mentre il lato client è 10.0.0.2. Sul client, prova a connetterti al server via SSH:
# ssh [email protected]
Password:
Per usare il server remoto come proxy SOCKS crittografato:
# ssh -D 8080 -N [email protected]
Password:
Ora punta il tuo browser web al server SOCKS locale.
Vedi ./icmptunnel -h per un elenco delle opzioni.
Segnala eventuali bug nella pagina del progetto Github all'indirizzo: