GNU/Linux >> Znalost Linux >  >> Linux

Jak používat příkaz Wireshark tshark pro vlastní porty a textové soubory

Wireshark je open-source paketový analyzátor používaný pro analýzu sítě.

Dokáže zachytit, pitvat a dekódovat různé protokoly.

V tomto tutoriálu probereme několik problematických scénářů a jak používat nástroje příkazového řádku wireshark k analýze paketu.

Scénář 1:Použití nestandardního portu s tshark pro analýzu

Wireshark dokáže rozebrat a dekódovat konkrétní protokoly (obsažené ve zprávě o užitečné zátěži) na základě čísla portu přiřazeného tomuto protokolu, které je uloženo v jeho souboru předvoleb.

Předpokládejme, že tshark rozebírá paket ldap a výchozí číslo portu pro server ldap je 389. Pokud má zpráva číslo portu 389 buď ve zdrojovém nebo cílovém portu, tshark pochopí, že se jedná o zprávu ldap, a správně ji dekóduje.

Pokud je však ldap nakonfigurován na nějakém jiném čísle portu, musíme nástroji explicitně zadat číslo portu. Můžeme to udělat pomocí jedné z následujících dvou metod:

Číslo portu pevného kódu v souboru preferencí

První metodou je vypsat všechna další čísla portu, která chcete konfigurovat, v souboru preferencí wireshark.

Soubor preferencí Wireshark je ~/.wireshark/preferences.

Následuje část ldap souboru předvoleb ~/.wireshark/preferences:

Pokud je váš server LDAP nakonfigurován na portu číslo 400, stačí ke stávající hodnotě připojit číslo portu, jak je uvedeno níže:

# 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

Použijte příkazový řádek tshark -o Option

Zadejte informace o portu pomocí volby -o. Formát by měl být přesně stejný, jak je uveden v souboru preferencí, jak je znázorněno v příkladu.

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

Použijme jako příklad protokol průměru. Pokud tshark neposkytnete informace o portu, nebude se rozebírat část užitečného zatížení, protože číslo portu není v souboru preferencí přítomno.

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

Když použijete volbu -R , nevytiskne se ani jeden znak.

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

Když zadáte informace o čísle portu pro průměr, jak je uvedeno níže, příkaz tshark bude fungovat podle očekávání a zobrazí příslušné informace.

# 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énář 2:Analyzujte pouze pomocí bajtové vyrovnávací paměti paketu

Pokud nemáte soubor pcap a máte pouze byte buffer paketu, použijte tuto metodu.

Předpokládejme, že v souboru protokolu vašeho vývojového serveru jste našli bytearray paketu a chcete to analyzovat pomocí tshark.

Nejprve převeďte bajtové pole do hex formátu, udělá to jednoduchý printf(%2X).

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

Nyní chcete odfiltrovat informace z výše uvedeného výstupu. První věc, kterou musíte udělat, je nastavit offsety pro toto bajtové pole a přidat to na každý řádek, můžete napsat kód, který to zautomatizuje.

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 

Použijte text2pcap a převeďte jej na soubor 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

Použijte tshark na tento soubor 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

Jak vidíte ve výstupu níže, právě jsme dekódovali bytearray na něco smysluplného.

$ 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. Jak používat Awk a regulární výrazy k filtrování textu nebo řetězců v souborech

  2. Co je příkaz Chown v Linuxu a jak jej používat

  3. Co je příkaz cURL a jak jej používat?

  1. Jak používám Ansible a anacron pro automatizaci

  2. Jak používat Ranger pro navigaci v souborech z příkazového řádku

  3. Jak používat příkaz Grep k vyhledání textu v souborech

  1. Jak vytvářet a používat vlastní fakta v Ansible

  2. Linux Tail Command:Co to je a jak jej používat

  3. Jak používat příkaz SFTP k přenosu souborů