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 (ou 255.0.0.0 si vous voulez – ça importe peu)
  • DNS : on va utiliser les DNS de Google : 8.8.8.8 et 8.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 !

3 Comments

  1. Cyril – Mes astuces » Blog Archive » Sniffer le trafic HTTPS d’un iPhone/Android says:

    […] Vous pouvez vous référer à l’article précédent Sniffer le trafic d’un iPhone/Android avec Linux. […]

  2. sylvan says:

    Bonjour,

    Merci pour ce blog instructif.
    J ai essaye avec le script sniff.sh et la config dhcp.
    J ai du un tout petit peu changer le script :
    – remplacer dhcpc par dhclient
    – ajouter la ligne « ifconfig ${MOBILE_IFACE} down » avant l’utilisation de iwconfig (sinon il me disait que l interface etait busy)

    J ai pris choisi un nom de reseau plus simple 🙂 : « aa ».

    Le probleme est que je n arrive pas a me connecter sur mon iphone.
    je suis incapable de me connecter …
    A mon avis j ai du mal faire quelque chose sur mq redhat …

    Sylvan

  3. Cyril says:

    Salut,
    Qu’entendez-vous par « je n’arrive pas à me connecter » ? Le wifi apparait-il dans la liste des réseaux disponibles ? Si oui, avez-vous une adresse IP assignée ? Et enfin, si oui, c’est la connexion à internet qui ne fonctionne pas depuis le mobile ?

Leave a Reply