GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie den Wireshark-Tshark-Befehl für benutzerdefinierte Ports und Textdateien

Wireshark ist ein Open-Source-Paketanalysator, der für die Netzwerkanalyse verwendet wird.

Es kann verschiedene Protokolle erfassen, sezieren und entschlüsseln.

In diesem Tutorial besprechen wir einige problematische Szenarien und die Verwendung von Wireshark-Befehlszeilentools zur Analyse des Pakets.

Szenario 1:Verwendung eines nicht standardmäßigen Ports mit tshark für die Analyse

Wireshark kann die spezifischen Protokolle (in der Nutzlastnachricht enthalten) basierend auf der diesem Protokoll zugewiesenen Portnummer, die in seiner Einstellungsdatei gespeichert ist, sezieren und entschlüsseln.

Angenommen, tshark zerlegt das LDAP-Paket und die Standard-Portnummer für den LDAP-Server ist 389. Wenn eine Nachricht die Portnummer 389 entweder im Quellport oder im Zielport hat, würde tshark verstehen, dass es sich um eine LDAP-Nachricht handelt, und sie richtig dekodieren.

Wenn ldap jedoch auf einer anderen Portnummer konfiguriert ist, müssen wir die Portnummer explizit für das Tool angeben. Wir können dies mit einer der beiden folgenden Methoden tun:

Hardcode-Portnummer in der Einstellungsdatei

Die erste Methode besteht darin, alle anderen Portnummern aufzulisten, die Sie in der Wireshark-Einstellungsdatei konfigurieren möchten.

Die Wireshark-Einstellungsdatei ist ~/.wireshark/preferences.

Das Folgende ist der LDAP-Abschnitt der Einstellungsdatei ~/.wireshark/preferences:

Wenn Ihr LDAP-Server auf Portnummer 400 konfiguriert ist, hängen Sie einfach die Portnummer wie unten gezeigt an den vorhandenen Wert an:

# 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

Verwenden Sie die tshark-Befehlszeilenoption -o

Geben Sie Portinformationen mit der Option -o an. Das Format sollte genau so sein, wie es in der Einstellungsdatei aufgeführt ist, wie im Beispiel gezeigt.

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

Nehmen wir als Beispiel das Diameter-Protokoll. Wenn Sie Tshark die Port-Informationen nicht zur Verfügung stellen, wird der Payload-Teil nicht seziert, da die Port-Nr. nicht in der Einstellungsdatei vorhanden ist.

# 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]

Wenn Sie die Option -R verwenden, wird nicht einmal ein einziges Zeichen gedruckt.

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

Wenn Sie die Informationen zur Portnummer für den Durchmesser wie unten gezeigt angeben, funktioniert der Befehl tshark wie erwartet und zeigt die entsprechenden Informationen an.

# 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

Szenario 2:Analyse nur mit Byte-Puffer des Pakets

Wenn Sie keine pcap-Datei und nur den Byte-Puffer des Pakets haben, verwenden Sie diese Methode.

Angenommen, Sie haben in der Protokolldatei Ihres Entwicklungsservers ein Bytearray des Pakets gefunden und möchten dies mit tshark analysieren.

Konvertieren Sie zuerst das Byte-Array in das Hex-Format, ein einfaches printf(%2X) erledigt das.

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

Jetzt möchten Sie die Informationen aus der obigen Ausgabe herausfiltern. Als erstes müssen Sie Offsets für dieses Byte-Array setzen und dies in jeder Zeile anhängen, Sie können einen Code schreiben, um dies zu automatisieren.

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 

Verwenden Sie die text2pcap und konvertieren Sie diese in eine pcap-Datei:

$ 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

Verwenden Sie tshark für diese pcap-Datei:

$ 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

Wie Sie in der Ausgabe unten sehen, haben wir das Bytearray einfach in etwas Sinnvolles dekodiert.

$ 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. Wie ich Ansible und Anacron für die Automatisierung verwende

  2. So verwenden Sie Awk und reguläre Ausdrücke zum Filtern von Text oder Zeichenfolgen in Dateien

  3. Was ist ein Chown-Befehl unter Linux und wie wird er verwendet?

  4. Was ist ein cURL-Befehl und wie wird er verwendet?

  5. So verwenden Sie den Grep-Befehl, um Text in Dateien zu finden

So verwenden Sie den SCP-Befehl zum Übertragen von Dateien

So verwenden Sie den SED-Befehl zum Suchen und Ersetzen von Zeichenfolgen in Dateien

So installieren und verwenden Sie den Befehl locate unter Linux

So installieren und verwenden Sie Okteta für RAW-Datendateien unter Linux

So installieren und verwenden Sie den fd-Befehl unter Linux

So verwenden Sie den More-Befehl in Linux, um große Textdateien zu lesen