[TomatoUSB] Capturer du traffic avec tcpdump
On a parfois besoin de sniffer des paquets sur sa passerelle faisant office de routeur/pare-feu, dans mon cas ça se passe avec un routeur Tomato (TomatoUSB plus précisément).
Le firmware alternatif ne contient pas l'utilitaire tcpdump, voici comment l'ajouter et l'exploiter avec des exemples de commandes.
Télécharger tcpdump
Avant tout je vous conseille d'utiliser une clé USB qui restera toujours connectée sur votre routeur, aujourd'hui ça ne coûte plus rien.
Dans mon cas c'est une clé 1G peu rapide qui ne me servait pas, je lui ai trouvé une seconde vie, ou plutôt une première. Cette clé me sert pour enregistrer la bande passante (download/upload) qui était effacée à chaque reboot du routeur, elle va désormais également nous servir à stocker des fichiers pcap. Formatez là comme bon vous semble : NTFS, EXT2/3 ou FAT, puis connectez-là sur le port USB derrière votre routeur.
Vérifiez dans l'interface de tomato :
- USB and NAS > USB Support : tout est coché excepté USB Printer Support
- Votre clé doit apparaître dans "attached devices" juste en dessous dans la même fenêtre :
- USB and NAS > File Sharing, activez ou non l'authentification (dépend si vous êtes tout seul sur votre réseau) puis sélectionner un montage en lecture/écriture (R/W) :
Il faut utiliser un binaire compilé pour tourner sur le CPU de votre routeur, dans mon cas un WNR3500L v1, à télécharger ici (merci Martin Denizet, mirroir).
Copiez le binaire après l'avoir extrait sur votre clé USB, via SCP ou via le partage de la clé créé par le routeur (\\\\ip-routeur\\nom_cle).
Reniflons
Pour renifler rien de plus simple !
Il suffit de se connecter en SSH sur le routeur (activez SSH dans l'interface web si ce n'est pas fait). Puis rendez vous à l'endroit où vous avez déposé le binaire tcpdump, sur la clé pour mon cas :
cd /tmp/mnt/CLE1GO/outils
Quelques exemples de commandes tcpdump que j'utilise la plupart du temps.
Pour capturer les paquets venant et à destination de 192.168.0.1, en affichant le contenu ASCII (avec "-A") :
tcpdump -s0 -w ecoute.pcap host 192.168.0.1 -A
Capture les paquets contenant des trames FTP ou SSH sur l'interface WAN (vlan2 chez moi) :
tcpdump -s0 -w ecoute.pcap port ftp or ssh -i vlan2
Capture les paquets provenant et à destination de 192.168.0.1 sur le port 8443 :
tcpdump -s0 -w ecoute.pcap host 192.168.0.1 and port 8443
Capture les paquets igmp (ping par ex), sans résoudre les IP en nom :
tcpdump -s0 -w -n ecoute.pcap igmp
Capture les paquets tcp sur le port 80 provenant de 192.168.0.1 :
tcpdump -s0 -w ecoute.pcap tcp port 80 and src 192.168.0.1
Capture les paquets provenant et à destination de 192.168.0.1, sauf les paquets ssh (pour s'exclure des traces):
tcpdump -s0 -w ecoute.pcap host 192.168.0.1 and port not 22
tcpdump -s0 -w ecoute.pcap host 192.168.0.1 and port !22
Capture les paquets provenant et à destination de 192.168.0.1 sur les ports de destination 80 et 443 :
tcpdump -s0 -w ecoute.pcap host 192.168.0.1 and "(dst port 80 or dst port 443)"
Capture les paquets à destination des réseaux suivants :
tcpdump -s0 -w ecoute.pcap dst net 192.168.0.0/24 or 10.0.2.0/24
le "-s0" permet de capture sans limite de taille ("-s0 200" capture les 200 premiers octets)
le "-n" ne résoud pas les IP en nom (nom de machine local / nom de domaine)
Pour connaître tous les paramètres j'utilise ce mémo tcpdump et ce mémo wireshark (et une doc pour combiner).
Nous pouvons maintenant exploiter ces fichiers pcap dans wireshark et profiter de la puissance de l'outil pour cherche de façon très fine. Dans mon cas je voulais débusquer un dysfonctionnement sur un module Somfy :
Conclusion
Vous n'êtes bien sûr pas forcés d'orienter les résultats vers un fichier de sortie si l'affichage dans le terminal vous suffit. C'est en tout cas bien pratique de pouvoir sniffer sur tous les équipements, y compris ceux en WiFi (smartphone, imprimante, tablette, alarme, etc). De nombreux logiciels utilisent des systèmes de type wget sans rien dire à l'utilisateur, c'est une excellente façon de savoir ce qui se trame dans votre dos (elle était facile...).
Même chose pour certains équipements propriétaires, on peut comprendre comment tout ça communique. Pour ma part j'ai investigué le matériel Somfy et je me suis aperçu que c'était plutôt blindé sur les échanges entre les équipements et les serveurs Somfy. Me voilà rassuré !
BM vous parraine en mode Premium chez iGraal.fr : 10 euros offerts à l'inscription :)Vous devriez me suivre sur Twitter : @xhark
Article original écrit par Mr Xhark publié sur Blogmotion le 01/10/2014 |
3 commentaires |
Attention : l'intégralité de ce billet est protégée par la licence Creative Commons