Aller au contenu

« Tshark » : différence entre les versions

De Marmits Wiki
Ligne 45 : Ligne 45 :
<span id="explications-des-options"></span>
<span id="explications-des-options"></span>
==== '''Explications des options :''' ====
==== '''Explications des options :''' ====
{| class="wikitable"
{| class="wikitable"
|-
|-
! Option
! Composant
! Exemple/Format
! Description
! Description
! Pourquoi l’utiliser ?
|-
| '''<code>tshark</code>'''
| -
| Outil de capture et analyse de trafic (version CLI de Wireshark).
| Alternative puissante à <code>tcpdump</code>.
|-
|-
| '''<code>-i eth0</code>'''
| '''<code>-i eth0</code>'''
| Capture sur l’interface réseau (remplacez par <code>wlan0</code> pour le Wi-Fi).
| <code>-i wlan0</code> (pour le Wi-Fi)
| Capture le trafic sur l’interface <code>eth0</code>.
| Cible une interface spécifique.
|-
|-
| '''<code>-f &quot;not port 22&quot;</code>'''
| '''<code>-f &quot;not port 22&quot;</code>'''
| Filtre BPF (noyau) : exclut le trafic SSH pour réduire le bruit.
| <code>-f &quot;port 53&quot;</code>
| '''Filtre BPF (noyau)''' : Exclut le trafic SSH (port 22).
| Réduit le bruit en ignorant les paquets non pertinents dès la capture.
|-
|-
| '''<code>-Y &quot;not ssh&quot;</code>'''
| '''<code>-Y &quot;not ssh&quot;</code>'''
| Filtre d’affichage : supprime les paquets SSH résiduels.
| <code>-Y &quot;http&quot;</code>
| '''Filtre d’affichage''' : Supprime les paquets SSH résiduels.
| Affine les résultats après capture.
|-
|-
| '''<code>-T fields</code>'''
| '''<code>-T fields</code>'''
| Format de sortie en colonnes personnalisées.
| -
| Spécifie un format de sortie en colonnes personnalisées.
| Permet de choisir les champs à afficher.
|-
|-
| '''<code>-e frame.time</code>'''
| '''<code>-e frame.time</code>'''
| <code>2025-05-20 14:30:00.123456</code>
| Horodatage du paquet.
| Horodatage du paquet.
| Pour tracer l’heure exacte des événements.
|-
| '''<code>-e ip.src</code>'''
| <code>192.168.1.77</code>
| Adresse IP source.
| Identifie l’origine du trafic.
|-
| '''<code>-e ip.dst</code>'''
| <code>8.8.8.8</code>
| Adresse IP destination.
| Identifie la cible du trafic.
|-
|-
| '''<code>-e ip.src</code> / <code>-e ip.dst</code>'''
| '''<code>-e frame.protocols</code>'''
| Adresses IP source et destination.
| <code>eth:ip:tcp:http</code>
| Liste des protocoles utilisés (par couche).
| Comprendre la structure des paquets (ex: TCP vs UDP, HTTP vs DNS).
|-
|-
| '''<code>-e proto</code>'''
| '''<code>-e tcp.srcport</code>'''
| Protocole (TCP/UDP/ICMP, etc.).
| <code>443</code> (HTTPS)
| Port source TCP (si applicable).
| Identifier les services TCP (ex: 443 = HTTPS, 80 = HTTP).
|-
|-
| '''<code>-e tcp.port</code> / <code>-e udp.port</code>'''
| '''<code>-e udp.srcport</code>'''
| Ports source/destination.
| <code>53</code> (DNS)
| Port source UDP (si applicable).
| Identifier les services UDP (ex: 53 = DNS, 67 = DHCP).
|-
|-
| '''<code>-e http.host</code>'''
| '''<code>-e http.host</code>'''
| Affiche les hôtes HTTP (si trafic web).
| <code>example.com</code>
| Hôte HTTP (si trafic web).
| Voir les sites web visités.
|-
|-
| '''<code>-e dns.qry.name</code>'''
| '''<code>-e dns.qry.name</code>'''
| Affiche les requêtes DNS.
| <code>google.com</code>
| Nom de domaine interrogé en DNS.
| Surveiller les requêtes DNS.
|-
|-
| '''<code>-E separator=&quot;|&quot;</code>'''
| '''<code>-E separator=&quot;|&quot;</code>'''
| Séparateur de colonnes (lisible).
| <code>ip.src|ip.dst</code>
| Définit <code>|</code> comme séparateur de colonnes.
| Rend la sortie plus lisible (CSV-friendly).
|-
|-
| '''<code>-E header=y</code>'''
| '''<code>-E header=y</code>'''
| Affiche les en-têtes des colonnes.
| -
| Affiche les en-têtes de colonnes.
| Comprendre facilement ce que représente chaque champ.
|}
|}


-----
-----

Version du 19 mai 2025 à 22:45

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|proto|tcp.port|udp.port|http.host|dns.qry.name
2025-05-20 12:34:56|192.168.1.77|8.8.8.8|UDP| |53| |google.com
2025-05-20 12:34:57|192.168.1.77|151.101.1.69|TCP|443| |example.org| 

Variantes selon l’analyse souhaitée

1. Analyse HTTP/HTTPS

sudo tshark -i eth0 -Y "http || ssl" -T fields -e ip.src -e http.host -e http.request.uri -e ssl.handshake.extensions_server_name

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 !