Informations :
Dates
- Publish : : Sunday 02 august 2009
- Modification : Thursday 01 september 2011
- 1497 views
Share :
Sniffer des connexions réseaux avec TCPDUMP
Introduction
Tcpdump est un logiciel en ligne de commande sous Linux, qui permet de capturer et d'analyser tous les paquets qui transitent par une carte réseau. Cet article explique son fonctionnement et est illustré de quelques exemples.
Utilisation simple
Dans les exemples donnés ici, la carte réseau utilisée est identifiée par eth0. Il faut savoir également que cette commande n'est accessible que pour l'utilisateur root.
Capturer toutes les connexions, qui ont pour source une adresse IP commençant par 192.168.
Script avec 1 ligne
001tcpdump -i eth0 src net 192.168
Capturer toutes les connexions, qui ont pour destination une adresse IP bien précise
Script avec 1 ligne
001tcpdump -i eth0 dst net 192.168.0.90
Isoler toutes les connexions qui utilisent le port 80 (http)
Script avec 1 ligne
001tcpdump -i eth0 port 80
On peut également isoler la source ou la destination. Ici on ne souhaite capturer que les envois de mails (port 25 en destination)
Script avec 1 ligne
001tcpdump -i eth0 dst port 25
Utilisation avancée
La commande tcpdump permet également d'utiliser des expressions logiques, afin d'affiner les captures. Pour cela, on peut utiliser les opérateurs logiques suivants :
- Négation :
!ounot - Opérateur et :
&&ouand - Opérateur ou :
||ouor
Capturer un mot de passe FTP
Script avec 1 ligne
001tcpdump -XX -s0 -i eth0 tcp and port 21 | grep -A1 PASS
Récupérer un cookie de session, d'un utilisateur authentifié sur un site web
Script avec 1 ligne
001tcpdump -XX -s0 -i eth0 port 80 | grep -i -A5 Cookie
Capturer des emails envoyés sur le réseau (ici on prend une longueur de 20 lignes, à adapter selon la taille du message)
Script avec 1 ligne
001tcpdump -XX -s0 -i eth0 port 25 | grep -i -A20 From
Capturer des conversations msn (longueur de 10 lignes à adapter aussi selon la taille du message)
Script avec 1 ligne
001tcpdump -XX -s0 -i eth0 port 1863 | grep -A10 "text/plain"
Aller plus loin : man tcpdump
Logiciel équivalent proposant une interface graphique : WireShark (anciennement appelé Ethereal) et snort.
Sniffer des connexions réseaux avec SNORT
Ici on ne souhaite capturer que les envois FTP (port 21 en destination)
Script avec 1 ligne
001snort -vde dst port 21
Tester la fiabilite de son mot de passe avec JHON THE RIPPER
Cette partie traite essentiellement de la sécurité de nos mots de passe, des techniques pour les tester et des erreurs à ne pas commettre.
On récupère son mot de passe crypté depuis le fichier /etc/shadow
Script avec 1 ligne
001cat /etc/shadow | grep toto > /tmp/john.tmp
On lance john pour qu'il trouve le password
Script avec 1 ligne
001john /tmp/john.tmp
En quelques minutes John trouve le mot de passe
Script avec 3 lignes
001Loaded 1 password hash (FreeBSD MD5 [32/32])002pass12 (toto)003guesses: 1 time: 0:00:03:27 (3) c/s: 5850 trying: pass12
Cette méthode fonctionne aussi pour les mots de passe codés en Traditional DES, utilisés dans les fichiers .htpasswd
Script avec 7 lignes
001htpasswd -cb /tmp/john.tmp toto pass12002Adding password for user toto003 004john /tmp/john.tmp005Loaded 1 password hash (Traditional DES [24/32 4K])006pass12 (toto)007guesses: 1 time: 0:00:00:08 (3) c/s: 149111 trying: ph34321 - pastin
On pourra aussi utiliser un dictionnaire de mots, afin de trouver le mot de passe plus rapidement. Cette méthode consiste à tester une liste de mots prédéfinis dans un fichier texte john --wordlist=/usr/share/dict/words /tmp/john.tmp
Au passage, on notera que lorsque le décodage est long, on peut appuyer à tout moment sur le touche entrée, afin de voir ou en est le logiciel.


