Pour sniffer le réseau, nous allons transformer notre ordinateur sous Linux en routeur Wifi pour notre mobile.
Téléchargez le script sniff.sh, qui reprend toutes les étapes de ce tutorial, et modifiez-le à votre guise !
Avec ce système, l’ordinateur est connecté au réseau filaire pour Internet, et l’iPhone sera connecté à l’ordinateur via la carte réseau. Il est aussi possible de connecter l’ordinateur à Internet via wifi avec une deuxième carte réseau sans fil.
1. Désactivez votre gestionnaire réseau
Tous les gestionnaires réseaux ne sont pas capables de gérer plusieurs connexions réseau en même temps. Du coup, on désactive le gestionnaire réseau pour tout configurer manuellement (à l’ancienne !)
$ /etc/init.d/wicd stop $ /etc/init.d/NetworkManager stop $ ...
2. Votre connexion Internet
Réactivez votre connexion internet : si vous êtes en ethernet par exemple, vous pouvez exécuter dhcpcd eth0
. Si vous êtes en Wifi, reportez-vous à la configuration de wpa_supplicant (mais vous aurez besoin d’une autre interface Wifi pour votre mobile !)
Ensuite, pour que votre ordinateur transfère les paquets, il faut activer le NAT :
$ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Active le NAT : changez eth0 par le nom de votre interface réseau Internet $ sysctl net.ipv4.ip_forward=1 # Active le routage des paquets via votre ordinateur
3. Votre connexion Wifi
Pour transformer votre ordinateur en routeur, il faut configurer le wifi et le DHCP (facultatif) pour aider votre mobile à se connecter.
Configuration du Wifi
On configure l’interface pour lui donner un nom Wifi, et une adresse IP :
$ iwconfig wlan0 mode ad-hoc # passage en mode ad-hoc : on autorise un autre device Wifi à se connecter avec nous $ iwconfig wlan0 essid RouteurMobile # Nom de votre réseau $ ifconfig wlan0 10.10.10.1 # L'adresse IP de votre carte réseau Wifi
Sans DHCP
Vous pouvez connecter votre mobile dès à présent pour utiliser votre réseau, mais il faudra alors lui donner les paramètres suivants :
- IP :
10.10.10.2
- Gateway/Passerelle :
10.10.10.1
- Netmask :
255.255.255.0
(ou255.0.0.0
si vous voulez – ça importe peu) - DNS : on va utiliser les DNS de Google :
8.8.8.8
et8.8.4.4
Avec DHCP
Sinon, vous configurez votre routeur linux pour fournir ces paramètres via un serveur DHCP. Cela évite de rentrer manuellement sur le téléphone les paramètres de la connexion IP.
Pour ce faire, commencez par installer le serveur dhcpd. Ensuite, paramétrez comme suit votre fichier (/etc/dhcp/dhcpd.conf) :
option domain-name-servers 8.8.4.4, 8.8.8.8; default-lease-time 600; max-lease-time 7200; subnet 10.10.10.0 netmask 255.255.255.0 { range 10.10.10.10 10.10.10.20; option routers 10.10.10.1; }
Vous pouvez télécharger un exemple de fichier de conf dhcpd.
Puis démarrez votre serveur : /etc/init.d/dhcpd start
4. Connexion
Si tout s’est bien passé, vous verrez votre réseau créé sur votre mobile, et vous pourrez vous connecter dessus sans problème.
5. Sniffer avec Wireshark
Je vous propose d’utiliser wireshark pour sniffer le trafic.
Quelques filtres :
- http : affichera les requêtes HTTP, mais uniquement les paquets de questions (GET, POST, …) et ceux de réponses (HTTP/1.0 200 Ok, …)
- dns : les requêtes DNS
- dhcp : utile pour débugger le trafic DHCP
Problèmes fréquents
- Mon réseau n’apparait pas : vérifiez que la carte wifi de votre linux est bien configurée avec iwconfig et que l’interface est up : ifconfig wlan0 up
- Je me connecte mais je n’ai pas l’icône wifi, et pas d’adresse IP ou une adresse IP en 169.254.* : votre serveur DHCP ne fonctionne pas. Relancez-le et vérifiez sa configuration.
- Je suis connecté mais je ne vois rien dans Wireshark : vérifiez que vous avez sélectionné la bonne interface à écouter ! Aussi, utilisez votre iPhone pour aller sur Internet un peu 🙂
Ceci n’est qu’une étape vers un prochain article : sniffer des connexion HTTPS !