Même si une interface utilisateur graphique est, théoriquement, beaucoup plus facile à utiliser, tous les environnements ne le prennent pas en charge, en particulier les environnements de serveur avec seulement des options de ligne de commande. Par conséquent, à un moment donné, en tant qu'administrateur réseau ou ingénieur de sécurité, vous devrez utiliser une interface de ligne de commande. Important de noter que Tshark est parfois utilisé comme substitut de TCPDump. Même si les deux outils sont presque équivalents dans la fonctionnalité de capture du trafic, Tshark est beaucoup plus puissant.
Le mieux que vous puissiez faire est d'utiliser Tshark pour configurer un port de votre serveur qui transfère les informations à votre système, afin que vous puissiez capturer le trafic pour analyser à l'aide d'une GUI. Cependant, pour le moment, nous apprendreons comment cela fonctionne, quels sont ses attributs et comment vous pouvez l'utiliser au mieux de ses capacités.
Tapez la commande suivante pour installer Tshark dans Ubuntu / Debian à l'aide d'APT-Get:
ubuntu @ ubuntu: ~ $ sudo apt-get install tshark -y
Tapez maintenant Tshark -Help Pour énumérer tous les arguments possibles avec leurs drapeaux respectifs que nous pouvons transmettre à une commande tshark.
Ubuntu @ Ubuntu: ~ $ tshark - help | tête -20
Tshark (Wireshark) 2.6.10 (Git V2.6.10 emballés comme 2.6.10-1 ~ Ubuntu18.04.0)
Vider et analyser le trafic réseau.
Voir https: // www.Wireshark.org pour plus d'informations.
Utilisation: Tshark [Options]…
Interface de capture:
-jeNom ou IDX de l'interface (Def: First Non-Bopback)
-FFiltre de paquet dans la syntaxe du filtre LIBPCAP
-sLongueur d'instantané des paquets (Def: maximum approprié)
-p Ne capturez pas en mode promiscuité
-Je capture en mode moniteur, si disponible
-B Taille du tampon du noyau (Def: 2 Mo)
-Y Type de couche de liaison (Def: d'abord approprié)
--Méthode d'horodatage de type temporel pour l'interface
-D Liste d'impression des interfaces et de la sortie
-L Imprimer la liste des types de couches de liaison d'IFACE et de sortie
--Liste des types-time-types Imprimer la liste des types d'horodatage pour iface et sortie
Capture des conditions d'arrêt:
Vous pouvez remarquer une liste de toutes les options disponibles. Dans cet article, nous couvrirons la plupart des arguments en détail, et vous comprendrez la puissance de cette version de Wireshark orientée vers le terminal.
Sélection de l'interface réseau:
Pour effectuer une capture et une analyse en direct dans cet utilitaire, nous devons d'abord déterminer notre interface de travail. Taper Tshark -d et Tshark répertorie toutes les interfaces disponibles.
ubuntu @ ubuntu: ~ $ tshark -d
1. ENP0S3
2. n'importe quel
3. lo (Loopback)
4. nflog
5. nfqueue
6. USBMON1
7. Ciscodump (Cisco Remote Capture)
8. Randpkt (générateur de paquets aléatoires)
9. sshdump (capture à distance SSH)
dix. UDPDump (Capture à distance de l'écoute UDP)
Notez que toutes les interfaces répertoriées ne fonctionneront pas. Taper ifconfig Pour trouver des interfaces de travail sur votre système. Dans mon cas, c'est ENP0S3.
Capturer le trafic:
Pour démarrer le processus de capture en direct, nous utiliserons le tshark commande avec le «-je”Option pour commencer le processus de capture à partir de l'interface de travail.
ubuntu @ ubuntu: ~ $ tshark -i enp0s3
Utiliser Ctrl + c Pour arrêter la capture en direct. Dans la commande ci-dessus, j'ai tué le trafic capturé vers la commande Linux diriger Pour afficher les premiers paquets capturés. Ou vous pouvez également utiliser la syntaxe «-c» pour capturer le «n ” Nombre de paquets.
ubuntu @ ubuntu: ~ $ tshark -i enp0s3 -c 5
Si vous entrez uniquement tshark, Par défaut, il ne commencera pas à capturer le trafic sur toutes les interfaces disponibles et à écouter votre interface de travail. Au lieu de cela, il capturera les paquets sur la première interface répertoriée.
Vous pouvez également utiliser la commande suivante pour vérifier plusieurs interfaces:
ubuntu @ ubuntu: ~ $ tshark -i enp0s3 -i usbmon1 -i lo
En attendant, une autre façon de capturer le trafic de capture est d'utiliser le nombre aux côtés des interfaces répertoriées.
ubuntu @ ubuntu: ~ $ tshark -i interface_number
Cependant, en présence de multiples interfaces, il est difficile de garder une trace de leurs numéros répertoriés.
Filtre de capture:
Les filtres de capture réduisent considérablement la taille du fichier capturé. Tshark utilise la syntaxe du filtre de paquets Berkeley -F "», Qui est également utilisé par TCPDump. Nous utiliserons l'option «-f» pour ne capturer que des paquets à partir des ports 80 ou 53 et utiliser «-c» pour afficher uniquement les 10 premiers paquets.
ubuntu @ ubuntu: ~ $ tshark -i enp0s3 -f "port 80 ou port 53" -c 10
Enregistrement du trafic capturé vers un fichier:
La clé à noter dans la capture d'écran ci-dessus est que les informations affichées ne sont pas enregistrées, donc elle est moins utile. Nous utilisons l'argument "-w«Pour économiser le trafic réseau capturé vers test_capture.PCAP dans / tmp dossier.
ubuntu @ ubuntu: ~ $ tshark -i enp0s3 -w / tmp / test_capture.PCAP
Alors que, .PCAP est l'extension de type de fichier Wireshark. En enregistrant le fichier, vous pouvez consulter et analyser le trafic dans une machine avec Wireshark GUI plus tard.
C'est une bonne pratique pour enregistrer le fichier dans /TMP Comme ce dossier ne nécessite aucun privilège d'exécution. Si vous l'enregistrez dans un autre dossier, même si vous exécutez Tshark avec des privilèges racine, le programme niera l'autorisation pour des raisons de sécurité.
Faisons toutes les manières possibles par lesquelles vous pouvez:
Paramètre Autostop:
Vous pouvez utiliser le "-un”Paramètre pour incorporer les indicateurs disponibles tels que la taille du fichier de durée et les fichiers. Dans la commande suivante, nous utilisons le paramètre Autostop avec le durée Flag pour arrêter le processus dans les 120 secondes.
ubuntu @ ubuntu: ~ $ tshark -i enp0s3 -a durée: 120 -w / tmp / test_capture.PCAP
De même, si vous n'avez pas besoin que vos fichiers soient extra-larges, taille du fichier est un drapeau parfait pour arrêter le processus après certaines limites de KB.
ubuntu @ ubuntu: ~ $ tshark -i ENP0S3 -A Fichier: 50 -W / TMP / TEST_CAPTURE.PCAP
Surtout, des dossiers Flag vous permet d'arrêter le processus de capture après un certain nombre de fichiers. Mais cela ne peut être possible qu'après avoir créé plusieurs fichiers, ce qui nécessite l'exécution d'un autre paramètre utile, capture la sortie.
Paramètre de sortie de capture:
Capture la sortie, alias argument Ringbuffer "-b«, Vient avec les mêmes drapeaux qu'Autostop. Cependant, l'utilisation / la sortie est un peu différente, je.e., les drapeaux durée et taille du fichier, car il vous permet de changer ou d'enregistrer des paquets dans un autre fichier après avoir atteint une limite de temps spécifiée en secondes ou une taille de fichier.
La commande ci-dessous montre que nous capturons le trafic via notre interface réseau ENP0S3, et capturer le trafic à l'aide du filtre de capture "-F”Pour TCP et DNS. Nous utilisons l'option Ringbuffer «-b» avec un taille du fichier Indicateur pour enregistrer chaque fichier de taille 15 kb, et utilisez également l'argument Autostop pour spécifier le nombre de fichiers à l'aide des dossiers option telle qu'il arrête le processus de capture après avoir généré trois fichiers.
Ubuntu @ Ubuntu: ~ $ TSHARK -I ENP0S3 -F "Port 53 ou port 21" -B Fichiers: 15 -A Fichiers: 2 -W / TMP / TEST_CAPTURE.PCAP
J'ai divisé mon terminal en deux écrans pour surveiller activement la création de trois .fichiers PCAP.
Aller à votre / tmp dossier et utilisez la commande suivante dans le deuxième terminal pour surveiller les mises à jour après chaque seconde.
ubuntu @ ubuntu: ~ $ watch -n 1 "ls -lt"
Maintenant, vous n'avez pas besoin de mémoriser tous ces drapeaux. Au lieu de cela, tapez une commande TSHARK -I ENP0S3 -F «Port 53 ou port 21» -b Fichier: 15 -A Dans votre terminal et appuyez sur Languette. La liste de tous les drapeaux disponibles sera disponible sur votre écran.
ubuntu @ ubuntu: ~ $ tshark -i enp0s3 -f "port 53 ou port 21" -b Fichier: 15 -a
Durée: Fichiers: Fiches:
ubuntu @ ubuntu: ~ $ tshark -i enp0s3 -f "port 53 ou port 21" -b Fichier: 15 -a
En lisant .Fichiers PCAP:
Plus important encore, vous pouvez utiliser un «-r”Paramètre pour lire le test_capture.fichiers PCAP et le tuyau sur le diriger commande.
ubuntu @ ubuntu: ~ $ tshark -r / tmp / test_capture.PCAP | diriger
Les informations affichées dans le fichier de sortie peuvent être un peu écrasantes. Pour éviter les détails inutiles et mieux comprendre toute adresse IP de destination spécifique, nous utilisons le -r Option pour lire le fichier capturé de paquets et utiliser un IP.addr Filtrez pour rediriger la sortie vers un nouveau fichier avec le «-w" option. Cela nous permettra d'examiner le fichier et d'affiner notre analyse en appliquant d'autres filtres.
ubuntu @ ubuntu: ~ $ tshark -r / tmp / test_capture.pcap -w / tmp / redirected_file.IP PCAP.dst == 216.58.209.142
ubuntu @ ubuntu: ~ $ tshark -r / tmp / redirected_file.PCAP | Tête
dix.000000000 10.0.2.15 → 216.58.209.142 TLSV1.2 370 données d'application
2 0.000168147 10.0.2.15 → 216.58.209.142 TLSV1.2 669 données d'application
3 0.011336222 10.0.2.15 → 216.58.209.142 TLSV1.2 5786 Données d'application
4 0.016413181 10.0.2.15 → 216.58.209.142 TLSV1.2 1093 Données d'application
5 0.016571741 10.0.2.15 → 216.58.209.142 TLSV1.2 403 données d'application
6 0.016658088 10.0.2.15 → 216.58.209.142 TCP 7354 [segment TCP d'un PDU réassemblé]
7 0.016738530 10.0.2.15 → 216.58.209.142 TLSV1.2 948 Données d'application
8 0.023006863 10.0.2.15 → 216.58.209.142 TLSV1.2 233 Données d'application
9 0.023152548 10.0.2.15 → 216.58.209.142 TLSV1.2 669 données d'application
10 0.023324835 10.0.2.15 → 216.58.209.142 TLSV1.2 3582 Données d'application
Sélection des champs à la sortie:
Les commandes ci-dessus sortent un résumé de chaque paquet qui comprend divers champs d'en-tête. Tshark vous permet également d'afficher les champs spécifiés. Pour spécifier un champ, nous utilisons "-Champ»Et extraire les champs selon notre choix.
Après le "-Champ«Switch, nous utilisons l'option« -e »pour imprimer les champs / filtres spécifiés. Ici, nous pouvons utiliser des filtres d'affichage Wireshark.
ubuntu @ ubuntu: ~ $ tshark -r / tmp / test_capture.Crame de champs PCAP -E.numéro -e ip.src -e ip.DST | diriger
1 10.0.2.15 216.58.209.142
2 10.0.2.15 216.58.209.142
3 216.58.209.142 10.0.2.15
4 216.58.209.142 10.0.2.15
5 10.0.2.15 216.58.209.142
6 216.58.209.142 10.0.2.15
7 216.58.209.142 10.0.2.15
8 216.58.209.142 10.0.2.15
9 216.58.209.142 10.0.2.15
10 10.0.2.15 115.186.188.3
Capturez les données de poignée de main cryptées:
Jusqu'à présent, nous avons appris à enregistrer et à lire les fichiers de sortie en utilisant divers paramètres et filtres. Nous allons maintenant apprendre comment HTTPS initialise la session Tshark. Les sites Web accessibles via HTTPS au lieu de HTTP assure une transmission de données sécurisée ou cryptée sur le fil. Pour une transmission sécurisée, un chiffrement de sécurité de la couche de transport démarre un processus de poignée de main pour lancer la communication entre le client et le serveur.
Capturons et comprenons la poignée de main TLS à l'aide de Tshark. Divisez votre terminal en deux écrans et utilisez un wget commande pour récupérer un fichier html à partir de https: // www.Wireshark.org.
ubuntu @ ubuntu: ~ $ wget https: // www.Wireshark.org
--2021-01-09 18: 45: 14-- https: // www.Wireshark.org /
Connexion à www.Wireshark.org (www.Wireshark.org) | 104.26.dix.240 |: 443… connecté.
Demande HTTP envoyée, en attente de réponse… 206 Contenu partiel
Longueur: 46892 (46k), 33272 (32k) restant [texte / html]
Économie vers: 'Index.html '
indice.HTML 100% [+++++++++++++++ =============================================== ==>] 45.79k 154Kb / s en 0.2s
2021-01-09 18:43:27 (154 Ko / s) - 'Index.HTML 'enregistré [46892/46892]
Dans un autre écran, nous utiliserons Tshark pour capturer les 11 premiers paquets en utilisant le «-c»Paramètre. Tout en effectuant une analyse, les horodatages sont importants pour reconstruire les événements, nous utilisons donc «-t annonce», D'une manière que Tshark ajoute un horodatage à côté de chaque paquet capturé. Enfin, nous utilisons la commande hôte pour capturer les paquets de l'hôte partagé adresse IP.
Cette poignée de main est assez similaire à la poignée de main TCP. Dès que la poignée de main à trois voies TCP se termine dans les trois premiers paquets, les quatrième à neuvième paquets suivent un rituel de poignée de main quelque peu similaire et incluent les chaînes TLS pour assurer une communication cryptée entre les deux parties.
ubuntu @ ubuntu: ~ $ tshark -i enp0s3 -c 11 -t hôte ad 104.26.dix.240
Capturer sur «ENP0S3»
1 2021-01-09 18:45:14.174524575 10.0.2.15 → 104.26.dix.240 TCP 74 48512 → 443 [syn] SEQ = 0 Win = 64240 len = 0 mss = 1460 SACK_PERM = 1 TSVAL = 2488996311 TSECR = 0 WS = 128
2 2021-01-09 18:45:14.279972105 104.26.dix.240 → 10.0.2.15 TCP 60 443 → 48512 [syn, ack] seq = 0 ack = 1 win = 65535 len = 0 mss = 1460
3 2021-01-09 18:45:14.280020681 10.0.2.15 → 104.26.dix.240 TCP 54 48512 → 443 [ack] seq = 1 ack = 1 win = 64240 len = 0
4 2021-01-09 18:45:14.280593287 10.0.2.15 → 104.26.dix.240 TLSV1 373 Client Bonjour
5 2021-01-09 18:45:14.281007512 104.26.dix.240 → 10.0.2.15 TCP 60 443 → 48512 [ack] seq = 1 ack = 320 win = 65535 len = 0
6 2021-01-09 18:45:14.390272461 104.26.dix.240 → 10.0.2.15 TLSV1.3 1466 Server Bonjour, modifier le chiffre
7 2021-01-09 18:45:14.390303914 10.0.2.15 → 104.26.dix.240 TCP 54 48512 → 443 [ACK] SEQ = 320 ACK = 1413 Win = 63540 len = 0
8 2021-01-09 18:45:14.392680614 104.26.dix.240 → 10.0.2.15 TLSV1.3 1160 Données d'application
9 2021-01-09 18:45:14.392703439 10.0.2.15 → 104.26.dix.240 TCP 54 48512 → 443 [ACK] SEQ = 320 ACK = 2519 Win = 63540 len = 0
10 2021-01-09 18:45:14.394218934 10.0.2.15 → 104.26.dix.240 TLSV1.3 134 Modifier les spécifications du chiffre, données d'application
11 2021-01-09 18:45:14.394614735 104.26.dix.240 → 10.0.2.15 TCP 60 443 → 48512 [ACK] SEQ = 2519 ACK = 400 Win = 65535 len = 0
11 paquets capturés
Affichage du paquet entier:
Le seul inconvénient d'un utilitaire de ligne de commande est qu'il n'a pas d'interface graphique, car il devient très pratique lorsque vous avez besoin de rechercher beaucoup de trafic Internet, et il propose également un panneau de paquet qui affiche tous les détails de paquets dans un instantané. Cependant, il est toujours possible d'inspecter le paquet et de vider l'intégralité des informations de paquet affichées dans le panneau de paquet GUI.
Pour inspecter un paquet entier, nous utilisons une commande ping avec l'option «-c» pour capturer un seul paquet.
ubuntu @ ubuntu: ~ $ ping -c 1 104.26.dix.240
Ping 104.26.dix.240 (104.26.dix.240) 56 (84) octets de données.
64 octets de 104.26.dix.240: ICMP_SEQ = 1 TTL = 55 Temps = 105 ms
--- 104.26.dix.240 statistiques de ping ---
1 paquets transmis, 1 reçu, 0% de perte de paquets, heure 0 ms
RTT MIN / AVG / MAX / MDEV = 105.095/105.095/105.095/0.000 ms
Dans une autre fenêtre, utilisez la commande Tshark avec un indicateur supplémentaire pour afficher l'ensemble des détails du paquet. Vous pouvez remarquer diverses sections, affichage des cadres, des détails Ethernet II, IPV et ICMP.
ubuntu @ ubuntu: ~ $ tshark -i enp0s3 -c 1 -v hôte 104.26.dix.240
Frame 1: 98 octets sur fil (784 bits), 98 octets capturés (784 bits) sur l'interface 0
ID d'interface: 0 (ENP0S3)
Nom de l'interface: ENP0S3
Type d'encapsulation: Ethernet (1)
Heure d'arrivée: 9 janvier 2021 21:23:39.167581606 PKT
[Changement de temps pour ce paquet: 0.000000000 secondes]
Heure de l'époque: 1610209419.167581606 secondes
[Time Delta du cadre capturé précédent: 0.000000000 secondes]
[Time Delta du cadre affiché précédent: 0.000000000 secondes]
[Temps depuis la référence ou la première image: 0.000000000 secondes]
Numéro de trame: 1
Longueur du cadre: 98 octets (784 bits)
Longueur de capture: 98 octets (784 bits)
[Le cadre est marqué: faux]
[Le cadre est ignoré: faux]
[Protocoles dans le cadre: ETH: EtherType: IP: ICMP: Données]
Ethernet II, SRC: PCSCompu_17: FC: A6 (08: 00: 27: 17: FC: A6), DST: Realteku_12: 35: 02 (52: 54: 00: 12: 35: 02)
Destination: realteku_12: 35: 02 (52: 54: 00: 12: 35: 02)
Adresse: realteku_12: 35: 02 (52: 54: 00: 12: 35: 02)
… 1… = LG BIT: Adresse administrée localement (ce n'est pas la valeur par défaut d'usine)
… 0… = bit ig: adresse individuelle (unicast)
Source: PCSCompu_17: FC: A6 (08: 00: 27: 17: FC: A6)
Adresse: PCSCOMPU_17: FC: A6 (08: 00: 27: 17: FC: A6)
ID d'interface: 0 (ENP0S3)
Nom de l'interface: ENP0S3
Type d'encapsulation: Ethernet (1)
Heure d'arrivée: 9 janvier 2021 21:23:39.167581606 PKT
[Changement de temps pour ce paquet: 0.000000000 secondes]
Heure de l'époque: 1610209419.167581606 secondes
[Time Delta du cadre capturé précédent: 0.000000000 secondes]
[Time Delta du cadre affiché précédent: 0.000000000 secondes]
[Temps depuis la référence ou la première image: 0.000000000 secondes]
Numéro de trame: 1
Longueur du cadre: 98 octets (784 bits)
Longueur de capture: 98 octets (784 bits)
[Le cadre est marqué: faux]
[Le cadre est ignoré: faux]
[Protocoles dans le cadre: ETH: EtherType: IP: ICMP: Données]
Ethernet II, SRC: PCSCompu_17: FC: A6 (08: 00: 27: 17: FC: A6), DST: Realteku_12: 35: 02 (52: 54: 00: 12: 35: 02)
Destination: realteku_12: 35: 02 (52: 54: 00: 12: 35: 02)
Adresse: realteku_12: 35: 02 (52: 54: 00: 12: 35: 02)
… 1… = LG BIT: Adresse administrée localement (ce n'est pas la valeur par défaut d'usine)
… 0… = bit ig: adresse individuelle (unicast)
Source: PCSCompu_17: FC: A6 (08: 00: 27: 17: FC: A6)
Adresse: PCSCOMPU_17: FC: A6 (08: 00: 27: 17: FC: A6)
… 0… = Bit lg: adresse unique globalement (par défaut d'usine)
… 0… = bit ig: adresse individuelle (unicast)
Type: IPv4 (0x0800)
Protocole Internet version 4, SRC: 10.0.2.15, DST: 104.26.dix.240
0100… = Version: 4
… 0101 = longueur d'en-tête: 20 octets (5)
Champ de services différenciés: 0x00 (DSCP: CS0, ECN: Not-ECT)
0000 00… = Services différenciés CodePoint: par défaut (0)
… 00 = Notification de congestion explicite: pas de transport compatible ECN (0)
Longueur totale: 84
Identification: 0xcc96 (52374)
Facteurs: 0x4000, ne fragment pas
0… = bit réservé: pas réglé
.1… = Ne fragment pas: Set
… 0… = plus de fragments: pas réglé
… 0 0000 0000 0000 = décalage de fragment: 0
Il est temps de vivre: 64
Protocole: ICMP (1)
En-tête de contrôle: 0xEEF9 [Validation Disabled]
[État de la somme de contrôle de l'en-tête: non vérifié]
Source: 10.0.2.15
Destination: 104.26.dix.240
Protocole de message de contrôle Internet
Type: 8 (demande d'écho (ping))
Code: 0
Vérification: 0x0cb7 [correct]
[Statut de somme de contrôle: bon]
Identifiant (be): 5038 (0x13ae)
Identifiant (LE): 44563 (0xae13)
Numéro de séquence (BE): 1 (0x0001)
Numéro de séquence (LE): 256 (0x0100)
Timestamp des données ICMP: 9 janvier 2021 21:23:39.000000000 PKT
[Horodatage des données ICMP (relative): 0.167581606 secondes]
Données (48 octets)
0000 91 8E 02 00 00 00 00 00 10 11 12 13 14 15 16 17…
0010 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27… !"# $% & '
0020 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 () *+,-./ 01234567
Données: 918E02000000000011112131415161718191A1B1C1D1E1F…
[Longueur: 48]
Conclusion:
L'aspect le plus difficile de l'analyse des paquets est de trouver les informations les plus pertinentes et d'ignorer les bits inutiles. Même si les interfaces graphiques sont faciles, elles ne peuvent pas contribuer à l'analyse automatisée des paquets de réseau. Dans cet article, vous avez appris les paramètres Tshark les plus utiles pour capturer, afficher, enregistrer et lire des fichiers de trafic réseau.
Tshark est un utilitaire très pratique qui lit et écrit les fichiers de capture pris en charge par Wireshark. La combinaison des filtres d'affichage et de capture contribue beaucoup tout en travaillant sur des cas d'utilisation de niveau avancé. Nous pouvons tirer parti de la capacité Tshark à imprimer des champs et à manipuler les données selon nos exigences pour une analyse approfondie. En d'autres termes, il est capable de faire pratiquement tout ce que fait Wireshark. Plus important encore, il est parfait pour les paquets reniflant à distance en utilisant SSH, qui est un sujet pour un autre jour.