Tshark
Commandes de bases
Version en ligne de commande de Wireshark. Il est plus léger que l'interface graphique complète et peut être utilisé pour capturer et analyser le trafic réseau.
sudo apt-get install tshark
sudo tshark -i eth0
sudo tshark -i eth0 -f "host 192.168.1.10"
sudo tshark -i eth0 -f "port 853"
Afficher les paquets en temps réel
sudo tshark -i eth0 -Y "ip.addr == 192.168.1.10"
Analyse DNS ciblée
sudo tshark -i eth0 -f "port 53" -Y "dns" -T fields \
-e frame.time -e ip.src -e ip.dst -e dns.qry.name -e dns.qry.type -e dns.flags.response \
-E separator=, -E quote=d
Analyse DNS ciblée (montre seulement le trafic qui vient OU va vers 192.169.1.100)
ex : 192.169.1.100 = pihole
sudo tshark -i eth0 -f "port 53" -Y "ip.src == 192.168.1.100 || ip.dst == 192.168.1.100" -T fields \
-e frame.time -e ip.src -e ip.dst -e dns.qry.name -e dns.qry.type -e dns.flags.response \
-E separator=, -E quote=d
Pour analyser efficacement le trafic réseau sur votre machine avec TShark, voici une commande optimisée et expliquée en détail :
Commande recommandée (analyse complète)
sudo tshark -i eth0 -f "not port 22" -Y "not ssh" -T fields \
-e frame.time -e ip.src -e ip.dst -e frame.protocols -e tcp.srcport -e udp.srcport -e http.host -e dns.qry.name \
-E separator="|" -E header=y
Explications des options :
| Composant | Exemple/Format | Description | Pourquoi l’utiliser ? |
|---|---|---|---|
tshark
|
- | Outil de capture et analyse de trafic (version CLI de Wireshark). | Alternative puissante à tcpdump.
|
-i eth0
|
-i wlan0 (pour le Wi-Fi)
|
Capture le trafic sur l’interface eth0.
|
Cible une interface spécifique. |
-f "not port 22"
|
-f "port 53"
|
Filtre BPF (noyau) : Exclut le trafic SSH (port 22). | Réduit le bruit en ignorant les paquets non pertinents dès la capture. |
-Y "not ssh"
|
-Y "http"
|
Filtre d’affichage : Supprime les paquets SSH résiduels. | Affine les résultats après capture. |
-T fields
|
- | Spécifie un format de sortie en colonnes personnalisées. | Permet de choisir les champs à afficher. |
-e frame.time
|
2025-05-20 14:30:00.123456
|
Horodatage du paquet. | Pour tracer l’heure exacte des événements. |
-e ip.src
|
192.168.1.77
|
Adresse IP source. | Identifie l’origine du trafic. |
-e ip.dst
|
8.8.8.8
|
Adresse IP destination. | Identifie la cible du trafic. |
-e frame.protocols
|
eth:ip:tcp:http
|
Liste des protocoles utilisés (par couche). | Comprendre la structure des paquets (ex: TCP vs UDP, HTTP vs DNS). |
-e tcp.srcport
|
443 (HTTPS)
|
Port source TCP (si applicable). | Identifier les services TCP (ex: 443 = HTTPS, 80 = HTTP). |
-e udp.srcport
|
53 (DNS)
|
Port source UDP (si applicable). | Identifier les services UDP (ex: 53 = DNS, 67 = DHCP). |
-e http.host
|
example.com
|
Hôte HTTP (si trafic web). | Voir les sites web visités. |
-e dns.qry.name
|
google.com
|
Nom de domaine interrogé en DNS. | Surveiller les requêtes DNS. |
| " | ip.dst | comme séparateur de colonnes. | Rend la sortie plus lisible (CSV-friendly). |
-E header=y
|
- | Affiche les en-têtes de colonnes. | Comprendre facilement ce que représente chaque champ. |
Exemple de sortie
frame.time|ip.src|ip.dst|frame.protocols|tcp.srcport|udp.srcport|http.host|dns.qry.name 2025-05-20 14:30:00|192.168.1.77|8.8.8.8|eth:ip:udp:dns| |53| |google.com 2025-05-20 14:30:01|192.168.1.77|151.101.1.69|eth:ip:tcp:http|49234| |example.org|
Variantes selon l’analyse souhaitée
1. Analyse HTTP/HTTPS
sudo tshark -i eth0 -Y "http || tls" -T fields \
-e ip.src -e http.host -e http.request.uri -e tls.handshake.extensions_server_name
| Composant | Exemple/Valeur | Description | Utilité |
|---|---|---|---|
sudo
|
- | Exécute avec les privilèges root | Accès à l’interface réseau |
tshark
|
- | Outil de capture réseau (CLI Wireshark) | Alternative puissante à tcpdump |
-i eth0
|
-i wlan0
|
Capture sur l’interface ethernet | Cibler une interface spécifique |
-Y "http || tls" |
-Y "dns"
|
Filtre d’affichage : • HTTP (non chiffré) • TLS (HTTPS) |
Isoler le trafic web |
-T fields
|
- | Format de sortie en colonnes | Personnaliser l’affichage |
-e ip.src
|
192.168.1.77
|
Adresse IP source | Identifier l’appareil émetteur |
-e http.host
|
example.com
|
Domaine HTTP (Header Host) | Voir les sites visités (HTTP) |
-e http.request.uri
|
/search?q=test
|
URI complète de la requête | Analyser les pages/requêtes |
-e tls.handshake.extensions_server_name
|
google.com
|
SNI (Server Name Indication) | Voir les domaines HTTPS |
2. Surveillance DNS
sudo tshark -i eth0 -f "port 53" -Y "dns" -T fields -e frame.time -e ip.src -e dns.qry.name -e dns.flags.response
3. Détection de connexions suspectes
sudo tshark -i eth0 -Y "tcp.flags.syn==1 and tcp.flags.ack==0" -T fields -e ip.src -e ip.dst -e tcp.port
4. Export JSON pour analyse avancée
sudo tshark -i eth0 -T json -l > traffic.json
Optimisations
Pour réduire la charge CPU :
sudo tshark -i eth0 -f "not port 22 and not port 53" -s 128 -l
-s 128: Capture seulement les 128 premiers octets de chaque paquet.
-l: Affiche en temps réel sans buffer.
Pour capturer sur une durée limitée :
timeout 30 sudo tshark -i eth0 -w capture.pcap # Capture 30 secondes
Analyse post-capture
Si vous avez enregistré dans un fichier (.pcap) :
tshark -r capture.pcap -Y "http" -T fields -e http.host -e http.user_agent
Résumé des commandes clés
| Objectif | Commande |
|---|---|
| Analyse générale | sudo tshark -i eth0 -f "not port 22" -Y "not ssh" -T fields [...]
|
| Debug HTTP | sudo tshark -i eth0 -Y "http" -O http
|
| Surveillance DNS | sudo tshark -i eth0 -f "port 53" -Y "dns"
|
| Détection SYN scans | sudo tshark -i eth0 -Y "tcp.flags.syn==1 and tcp.flags.ack==0"
|
Pourquoi utiliser TShark plutôt que tcpdump ?
- Décodage des protocoles : TLS, HTTP/2, QUIC, etc.
- Filtres avancés : Syntaxe Wireshark (
http.request.method=="GET").
- Sorties structurées : JSON, CSV, XML.
Cette commande vous donne une vision complète et organisée du trafic sur votre machine. Utilisez les filtres (-Y) pour cibler des protocoles spécifiques selon vos besoins !