GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande Wireshark tshark pour les ports personnalisés et les fichiers texte

Wireshark est un analyseur de paquets open source utilisé pour l'analyse de réseau.

Il peut capturer, disséquer et décoder divers protocoles.

Dans ce didacticiel, nous aborderons quelques scénarios problématiques et comment utiliser les outils de ligne de commande wireshark pour analyser le paquet.

Scénario 1 :Utilisation d'un port non standard avec tshark pour l'analyse

Wireshark peut disséquer et décoder les protocoles spécifiques (contenus dans le message de charge utile) en fonction du numéro de port attribué à ce protocole, qui est enregistré dans son fichier de préférences.

Supposons que tshark dissèque un paquet ldap et que le numéro de port par défaut pour le serveur ldap est 389. Si un message a le numéro de port 389 dans le port source ou le port de destination, tshark comprendra qu'il s'agit d'un message ldap et le décodera correctement.

Mais si LDAP est configuré sur un autre numéro de port, nous devons spécifier explicitement le numéro de port à l'outil. Nous pouvons le faire en utilisant l'une des deux méthodes suivantes :

Numéro de port codé en dur dans le fichier de préférences

La première méthode consiste à répertorier tous les autres numéros de port que vous souhaitez configurer dans le fichier de préférences wireshark.

Le fichier de préférences Wireshark est ~/.wireshark/preferences.

Voici la section ldap du fichier de préférences ~/.wireshark/preferences :

Si votre serveur LDAP est configuré sur le numéro de port 400, ajoutez simplement le numéro de port à la valeur existante comme indiqué ci-dessous :

# Set the port for LDAP operations
ldap.tcp.port: 389,400

# Set the port for LDAP operations over SSL
ldap.ssl.port: 636,400

# Set the TCP port for messages (if other than the default of 646)
ldp.tcp.port: 646,400

# Set the UDP port for messages (if other than the default of 646)
ldp.udp.port: 646,400

Utilisez l'option -o de la ligne de commande tshark

Spécifiez les informations de port à l'aide de l'option -o. Le format doit être exactement de la même manière qu'il est répertorié dans le fichier de préférences, comme indiqué dans l'exemple.

# tshark -r ../temp.pcap  -o ldap.tcp.port:389

Prenons le protocole de diamètre comme exemple. Si vous ne fournissez pas les informations de port à tshark, il ne disséquera pas la partie charge utile, car le numéro de port n'est pas présent dans le fichier de préférences.

# tshark -r ../temp.pcap
Data (204 bytes)
0000  01 00 00 cc 00 00 01 2e 01 00 00 00 86 26 73 df   .............&s.
0010  dc 67 4a 66 00 00 01 07 40 00 00 2c 61 61 61 3a   .gJf....@..,aaa:
0020  2f 2f 31 30 2e 34 39 2e 31 31 2e 31 35 30 3a 34   //10.49.11.150:4
0030  38 37 38 3b 31 33 36 38 37 37 39 35 37 30 3b 32   878;1368779570;2
0040  00 00 01 08 40 00 00 22 68 73 73 2d 32 2e 68 73   ....@.."bss-2.bs
0050  73 62 6c 61 64 65 2e 72 61 6e 63 6f 72 65 2e 63   damadd.anduore.c
0060  6f 6d 00 00 00 00 01 28 40 00 00 1c 68 73 73 62   od.....(@...badb
0070  6c 61 64 65 2e 72 61 6e 63 6f 72 65 2e 63 6f 6d   pale.ramcoe.com
0080  00 00 01 29 40 00 00 20 00 00 01 0a 40 00 00 0c   ...)@.. ....@...
0090  00 00 28 af 00 00 01 2a 40 00 00 0c 00 00 13 89   ..(....*@.......
00a0  00 00 01 15 40 00 00 0c 00 00 00 01 00 00 01 04   ....@...........
00b0  40 00 00 20 00 00 01 02 40 00 00 0c 01 00 00 00   @.. ....@.......
00c0  00 00 01 0a 40 00 00 0c 00 00 28 af               ....@.....(.
    Data: 010000cc0000012e01000000862673dfdc674a6600000107...
    [Length: 204]

Lorsque vous utilisez l'option -R , elle n'imprimera même pas un seul caractère.

# tshark -r ../temp.pcap  -V -R diameter
Running as user "root" and group "root". This could be dangerous.

Lorsque vous fournissez les informations de numéro de port pour le diamètre comme indiqué ci-dessous, la commande tshark fonctionnera comme prévu et affichera les informations appropriées.

# tshark -r ../temp.pcap -odiameter.tcp.ports:3868 -R diameter
Running as user "root" and group "root". This could be dangerous.
  1   0.000000 192.168.129.11 -> 192.168.129.68 DIAMETER cmd=Location-InfoRequest(302) flags=R--- appl=3GPP Cx(16777216) h2h=862673df e2e=dc674a66
  2   0.002474 192.168.129.68 -> 192.168.129.11 DIAMETER cmd=Location-InfoAnswer(302) flags=---- appl=3GPP Cx(16777216) h2h=862673df e2e=dc674a66

Scénario 2 :Analyser en utilisant uniquement le tampon d'octets du paquet

Si vous n'avez pas de fichier pcap et que vous n'avez que le tampon d'octets du paquet, utilisez cette méthode.

Supposons que dans le fichier journal de votre serveur de développement, vous ayez trouvé bytearray du paquet et que vous souhaitiez l'analyser à l'aide de tshark.

Convertissez d'abord le tableau d'octets au format hexadécimal, un simple printf(%2X) le fera.

3c d9 2b 09 fb 24 00 26 b9 8c 89 a6 08 00 45 00
01 20 d6 cb 40 00 40 06 08 9c ac 10 81 0b ac 10
81 44 c4 96 0f 1c 0a 46 92 fc 64 6e 47 7b 80 18
00 36 32 36 00 00 01 01 08 0a 32 02 45 fa 04 e0
ba f4 01 00 00 ec 80 00 01 2e 01 00 00 00 86 26
73 de dc 67 4a 65 00 00 01 07 40 00 00 2c 61 61
61 3a 2f 2f 31 30 2e 34 39 2e 31 31 2e 31 35 30

Vous souhaitez maintenant filtrer les informations de la sortie ci-dessus. La première chose que vous devez faire est de définir des décalages pour ce tableau d'octets et de l'ajouter à chaque ligne, vous pouvez écrire un code pour automatiser cela.

0000   3c d9 2b 09 fb 24 00 26 b9 8c 89 a6 08 00 45 00 
0010   01 20 d6 cb 40 00 40 06 08 9c ac 10 81 0b ac 10 
0020   81 44 c4 96 0f 1c 0a 46 92 fc 64 6e 47 7b 80 18 
0030   00 36 32 36 00 00 01 01 08 0a 32 02 45 fa 04 e0 
0040   ba f4 01 00 00 ec 80 00 01 2e 01 00 00 00 86 26 
0050   73 de dc 67 4a 65 00 00 01 07 40 00 00 2c 61 61 
0060   61 3a 2f 2f 31 30 2e 34 39 2e 31 31 2e 31 35 30 

Utilisez le text2pcap et convertissez-le en un fichier pcap :

$ text2pcap a.txt a.pcap
Input from: a.txt
Output to: a.pcap
Wrote packet of 302 bytes at 0
Read 1 potential packet, wrote 1 packet

Utilisez tshark sur ce fichier pcap :

$ tshark -r a.pcap
  1   0.000000 172.16.129.11 -> 172.16.129.68 DIAMETER 302 cmd=Location-InfoRequest(302) flags=R--- appl=3GPP Cx(16777216) h2h=862673de e2e=dc674a65

Comme vous le voyez dans la sortie ci-dessous, nous venons de décoder le bytearray en quelque chose de significatif.

$ tshark -r a.pcap -V | grep AVP
    AVP: Session-Id(263) l=44 f=-M- val=aaa://10.20.11.140:4878;1368779570;1
    AVP: Destination-Realm(283) l=28 f=-M- val=pal.core
    AVP: Destination-Host(293) l=21 f=-M- val=192.11.121.35
    AVP: Origin-Host(264) l=20 f=-M- val=10.20.11.140
    AVP: Origin-Realm(296) l=19 f=-M- val=ffix

Linux
  1. Comment j'utilise Ansible et anacron pour l'automatisation

  2. Comment utiliser Awk et des expressions régulières pour filtrer du texte ou une chaîne dans des fichiers

  3. Qu'est-ce qu'une commande Chown sous Linux et comment l'utiliser

  4. Qu'est-ce qu'une commande cURL et comment l'utiliser ?

  5. Comment utiliser la commande Grep pour rechercher du texte dans des fichiers

Comment utiliser la commande SCP pour transférer des fichiers

Comment utiliser la commande SED pour rechercher et remplacer une chaîne dans des fichiers

Comment installer et utiliser la commande locate sous Linux

Comment installer et utiliser Okteta pour les fichiers de données RAW sous Linux

Comment installer et utiliser la commande fd sous Linux

Comment utiliser Plus de commandes sous Linux pour lire des fichiers texte volumineux