ICMP-Tunnel
Objectif
Dans ce document, nous allons voir comment créer un tunnel ICMP pour pouvoir contourner le pare-feu d'un hôtel qui n'aurait pas bloqué les flux ICMP, par exemple. Nous allons, via ce tunnel ICMP, créer un proxy pour naviguer sur Internet. Pour ce projet, nous allons utiliser le projet GitHub suivant : ICMPtunnel
Création du serveur
Voici les commandes suivante pour installer et lancer le tunnel icmp
sudo apt install make gcc net-tools
git clone https://github.com/jamesbarlow/icmptunnel
cd icmptunnel
make
sudo echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
sudo ./icmptunnel –sd
sudo ifconfig tun0 10.0.0.1 netmask 255.255.255.0
Création du client
sudo apt install make gcc net-tools
git clone https://github.com/jamesbarlow/icmptunnel
cd icmptunnel
make
./icmptunnel <server> &
sudo ifconfig tun0 10.0.0.2 netmask 255.255.255.0
Tunnelisation des flux
Par un proxy
Crée un serveur proxy socks sur le serveur icmp
docker run -d \
--restart=always \
--name socks5 \
-p 1090:9090 \
-e PROXY_PORT=9090 \
serjs/go-socks5-proxy
source : Github
Modifier le navigateur (Dans cette exemple firefox pour ajouter le proxy)

Par SSH (fonctionne pas)
On peut utiliser le logiciel sshuttle qui tunnelise les flux via ssh
Les paramêtres supplémentaire permette d'éviter tout problème de connexion mais nonRésultat
Wireshark
En capturant les trames de notre client on peut voire que toutes les trames réseau sont bien tuneeliser sur le serveur.

Exemple de rêgle par feux qui bloque les flux TCP/UDP
Exemple de rêgle par feux qui bloque toutes les connexions sortantes (sauf l'ICMP ce qui nous permet de crée le tunnel)
(Utilisée pour tester le tunnel ICMP dans le lab)