Wireshark

En guide till Wireshark Command Line Interface tshark

En guide till Wireshark Command Line Interface tshark
I de tidigare självstudierna för Wireshark har vi täckt grundläggande ämnen på avancerad nivå. I den här artikeln kommer vi att förstå och täcka ett kommandoradsgränssnitt för Wireshark, i.e., tshark. Terminalversionen av Wireshark stöder liknande alternativ och är mycket användbar när ett grafiskt användargränssnitt (GUI) inte är tillgängligt.

Även om ett grafiskt användargränssnitt teoretiskt sett är mycket lättare att använda stöder inte alla miljöer det, särskilt servermiljöer med endast kommandoradsalternativ. Därför måste du som nätverksadministratör eller säkerhetsingenjör någon gång använda ett kommandoradsgränssnitt. Viktigt att notera att tshark ibland används som ersättning för tcpdump. Även om båda verktygen är nästan likvärdiga i trafikfångningsfunktionaliteten är tshark mycket kraftfullare.

Det bästa du kan göra är att använda tshark för att ställa in en port på din server som vidarebefordrar information till ditt system, så att du kan fånga trafik för analys med ett GUI. För tillfället lär vi oss hur det fungerar, vilka egenskaper har det och hur du kan utnyttja det så bra som möjligt.

Skriv följande kommando för att installera tshark i Ubuntu / Debian med apt-get:

[e-postskyddad]: ~ $ sudo apt-get install tshark -y

Skriv nu tshark -hjälp att lista ut alla möjliga argument med respektive flaggor som vi kan skicka till ett kommando tshark.

[e-postskyddad: ~ $ tshark --hjälp | huvud -20
TShark (Wireshark) 2.6.10 (Git v2.6.10 förpackade som 2.6.10-1 ~ ubuntu18.04.0)
Dumpa och analysera nätverkstrafik.
Se https: // www.wireshark.org för mer information.
Användning: tshark [alternativ] ..
Fånga gränssnitt:
-i gränssnittets namn eller idx (def: första icke-loopback)
-f paketfilter i libpcap-filtersyntax
-s paket ögonblicksbildslängd (def: lämpligt maximalt)
-p fånga inte i promiskuöst läge
-Jag spelar in i bildskärmsläge, om tillgängligt
-B storlek på kärnbuffert (def: 2MB)
-y länklagertyp (def: först lämpligt)
--tidsstämpeltyp tidsstämpelmetod för gränssnitt
-D Skriv ut lista över gränssnitt och avsluta
-L Skriv ut lista över länklagertyper av iface och exit
--list-time-stamp-types skriv ut lista över tidsstämpeltyper för iface och exit
Villkor för fångstopp:

Du kan se en lista över alla tillgängliga alternativ. I den här artikeln kommer vi att täcka de flesta argumenten i detalj, och du kommer att förstå kraften i denna terminalorienterade Wireshark-version.

Välja nätverksgränssnitt:

För att genomföra live-fångst och analys i detta verktyg måste vi först ta reda på vårt arbetsgränssnitt. Typ tshark -D och tshark listar alla tillgängliga gränssnitt.

[e-postskyddad]: ~ $ tshark -D
1. enp0s3
2. några
3. lo (Loopback)
4. nflog
5. nfqueue
6. usbmon1
7. ciscodump (Cisco remote capture)
8. randpkt (slumpmässig paketgenerator)
9. sshdump (SSH remote capture)
10. udpdump (fjärrinspelning av UDP Listener)

Observera att inte alla listade gränssnitt fungerar. Typ ifconfig för att hitta arbetsgränssnitt på ditt system. I mitt fall är det enp0s3.

Fånga trafik:

För att starta live fångstprocessen använder vi tshark kommandot med ”-i”-Alternativ för att starta fångningsprocessen från arbetsgränssnittet.

[e-postskyddad]: ~ $ tshark -i enp0s3

Använda sig av Ctrl + C för att stoppa live-fångsten. I ovanstående kommando har jag skickat den fångade trafiken till Linux-kommandot huvud för att visa de första fångade paketen. Eller så kan du också använda “-c ”Syntax för att fånga“n ” antal paket.

[e-postskyddad]: ~ $ tshark -i enp0s3 -c 5

Om du bara går in tshark, som standard kommer det inte att fånga trafik på alla tillgängliga gränssnitt och inte heller lyssna på ditt arbetsgränssnitt. Istället kommer det att fånga paket i det första listade gränssnittet.

Du kan också använda följande kommando för att kontrollera flera gränssnitt:

[e-postskyddad]: ~ $ tshark -i enp0s3 -i usbmon1 -i lo

Under tiden är ett annat sätt att leva fånga trafik att använda numret bredvid de listade gränssnitten.

[e-postskyddad]: ~ $ tshark -i gränssnittsnummer

I närvaro av flera gränssnitt är det dock svårt att hålla reda på deras listade nummer.

Fångar filter:

Fångningsfilter minskar den inspelade filstorleken avsevärt. Tshark använder Berkeley Packet Filter-syntax -f”, Som också används av tcpdump. Vi använder alternativet “-f” för att bara fånga paket från port 80 eller 53 och använda “-c” för att endast visa de första 10 paketen.

[e-postskyddad]: ~ $ tshark -i enp0s3 -f "port 80 eller port 53" -c 10

Spara fångad trafik i en fil:

Det viktigaste att notera i skärmdumpen ovan är att informationen som visas inte sparas, därför är den mindre användbar. Vi använder argumentet ”-w”För att spara den fångade nätverkstrafiken till test_capture.pcap i / tmp mapp.

[e-postskyddad]: ~ $ tshark -i enp0s3 -w / tmp / test_capture.pcap

Medan, .pcap är filtillägget Wireshark. Genom att spara filen kan du granska och analysera trafiken i en maskin med Wireshark GUI senare.

Det är bra att spara filen i /tmp eftersom den här mappen inte kräver några körrättigheter. Om du sparar den i en annan mapp, även om du kör tshark med root-behörigheter, kommer programmet att neka tillstånd av säkerhetsskäl.

Låt oss gräva på alla möjliga sätt genom vilka du kan:

  • tillämpa gränser för att fånga data, så att de går ut tshark eller automatiskt stoppa fångningsprocessen och
  • mata ut dina filer.

Autostop-parameter:

Du kan använda-a”-Parameter för att inkludera tillgängliga flaggor som varaktighet filstorlek och filer. I följande kommando använder vi parametern autostop med varaktighet flagga för att stoppa processen inom 120 sekunder.

[e-postskyddad]: ~ $ tshark -i enp0s3 -a varaktighet: 120 -w / tmp / test_capture.pcap

På samma sätt, om du inte behöver dina filer för att vara extra stora, filstorlek är en perfekt flagga för att stoppa processen efter vissa KB-gränser.

[e-postskyddad]: ~ $ tshark -i enp0s3 -a filstorlek: 50 -w / tmp / test_capture.pcap

Viktigast, filer flagga låter dig stoppa inspelningsprocessen efter ett antal filer. Men detta kan bara vara möjligt efter att du har skapat flera filer, vilket kräver körning av en annan användbar parameter, capture output.

Capture Output Parameter:

Capture output, aka ringbuffer argument “-b”, Kommer med samma flaggor som autostop. Användningen / utgången är dock lite annorlunda, dvs.e., flaggorna varaktighet och filstorlek, eftersom det låter dig byta eller spara paket till en annan fil efter att ha nått en viss tidsgräns i sekunder eller filstorlek.

Kommandot nedan visar att vi fångar upp trafiken genom vårt nätverksgränssnitt enp0s3, och fånga trafik med fångstfiltret “-f”För tcp och dns. Vi använder ringbuffertalternativ “-b” med a filstorlek flagga för att spara varje fil i storlek 15 Kb, och använd även autostoppargumentet för att ange antalet filer som används filer alternativ så att det stoppar fångningsprocessen efter att ha genererat tre filer.

[e-postskyddad]: ~ $ tshark -i enp0s3 -f "port 53 eller port 21" -b filstorlek: 15 -a filer: 2 -w / tmp / test_capture.pcap

Jag har delat min terminal i två skärmar för att aktivt övervaka skapandet av tre .pcap-filer.

Gå till din / tmp och använd följande kommando i den andra terminalen för att övervaka uppdateringar efter varannan sekund.

[e-postskyddad]: ~ $ watch -n 1 "ls -lt"

Nu behöver du inte memorera alla dessa flaggor. Skriv istället ett kommando tshark -i enp0s3 -f “port 53 eller port 21” -b filstorlek: 15 -a i din terminal och tryck Flik. Listan över alla tillgängliga flaggor kommer att finnas på din skärm.

[e-postskyddad]: ~ $ tshark -i enp0s3 -f "port 53 eller port 21" -b filstorlek: 15 -a
varaktighet: filer: filstorlek:
[e-postskyddad]: ~ $ tshark -i enp0s3 -f "port 53 eller port 21" -b filstorlek: 15 -a

Läsning .pcap-filer:

Viktigast är att du kan använda en-r”-Parameter för att läsa test_capture.pcap-filer och rör den till huvud kommando.

[e-postskyddad]: ~ $ tshark -r / tmp / test_capture.pcap | huvud

Informationen som visas i utdatafilen kan vara lite överväldigande. För att undvika onödiga detaljer och få en bättre förståelse för någon specifik destinations-IP-adress använder vi -r möjlighet att läsa paketfångade filer och använda en ip.addr filter för att omdirigera utdata till en ny fil med “-w”Alternativ. Detta gör att vi kan granska filen och förfina vår analys genom att använda ytterligare filter.

[e-postskyddad]: ~ $ tshark -r / tmp / test_capture.pcap -w / tmp / omdirigerad_fil.pcap ip.dst == 216.58.209.142
[e-postskyddad]: ~ $ tshark -r / tmp / omdirigerad_fil.pcap | huvud
1 0.000000000 10.0.2.15 → 216.58.209.142 TLSv1.2 370 Applikationsdata
2 0.000168147 10.0.2.15 → 216.58.209.142 TLSv1.2669 Applikationsdata
3 0.011336222 10.0.2.15 → 216.58.209.142 TLSv1.2 5786 Applikationsdata
4 0.016413181 10.0.2.15 → 216.58.209.142 TLSv1.2 1093 Applikationsdata
5 0.016571741 10.0.2.15 → 216.58.209.142 TLSv1.2 403 Applikationsdata
6 0.016658088 10.0.2.15 → 216.58.209.142 TCP 7354 [TCP-segment av en återmonterad PDU]
7 0.016738530 10.0.2.15 → 216.58.209.142 TLSv1.2 948 Applikationsdata
8 0.023006863 10.0.2.15 → 216.58.209.142 TLSv1.2 233 Applikationsdata
9 0.023152548 10.0.2.15 → 216.58.209.142 TLSv1.2669 Applikationsdata
10 0.023324835 10.0.2.15 → 216.58.209.142 TLSv1.2 3582 Applikationsdata

Välja fält att mata ut:

Kommandona ovan ger en sammanfattning av varje paket som innehåller olika rubrikfält. Tshark låter dig också visa angivna fält. För att ange ett fält använder vi “-T-fält”Och extrahera fält enligt vårt val.

Efter "-T-fält”-Omkopplaren använder vi alternativet“ -e ”för att skriva ut de angivna fälten / filtren. Här kan vi använda Wireshark Display-filter.

[e-postskyddad]: ~ $ tshark -r / tmp / test_capture.pcap -T fält -e ram.nummer -e ip.src -e ip.dst | huvud
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

Fånga krypterad handskakningsdata:

Hittills har vi lärt oss att spara och läsa utdatafiler med olika parametrar och filter. Vi lär oss nu hur HTTPS initierar session tshark. Webbplatserna som nås via HTTPS istället för HTTP säkerställer en säker eller krypterad dataöverföring över kabeln. För säker överföring startar en kryptering av Transport Layer Security en handskakningsprocess för att starta kommunikationen mellan klienten och servern.

Låt oss fånga och förstå TLS-handskakningen med tshark. Dela din terminal i två skärmar och använd a wget kommando för att hämta en html-fil från https: // www.wireshark.org.

[e-postskyddad]: ~ $ wget https: // www.wireshark.org
--2021-01-09 18: 45: 14-- https: // www.wireshark.org /
Ansluter till www.wireshark.org (www.wireshark.org) | 104.26.10.240 |: 443 ... ansluten.
HTTP-begäran skickad, väntar på svar ... 206 Delvis innehåll
Längd: 46892 (46K), 33272 (32K) kvar [text / html]
Sparar i: 'index.html '
index.html 100% [++++++++++++++ ================================== ==>] 45.79K 154KB / s i 0.2s
2021-01-09 18:43:27 (154 KB / s) - 'index.html 'sparad [46892/46892]

I en annan skärm kommer vi att använda tshark för att fånga de första 11 paketen med hjälp av "-c”-Parameter. När vi utför analyser är tidsstämplar viktiga för att rekonstruera händelser, därför använder vi ”-t annons”, På ett sätt som tshark lägger till tidsstämpel vid sidan av varje fångat paket. Slutligen använder vi värdkommandot för att fånga paket från den delade värden IP-adress.

Detta handskakning är ganska likt TCP-handskakningen. Så snart TCP-trevägshandskakningen avslutas i de första tre paketen följer det fjärde till nionde paketet en något liknande handskakningsritual och inkluderar TLS-strängar för att säkerställa krypterad kommunikation mellan båda parter.

[e-postskyddad: ~ $ tshark -i enp0s3 -c 11 -t annonsvärd 104.26.10.240
Fångar på 'enp0s3'
1 2021-01-09 18:45:14.174524575 10.0.2.15 → 104.26.10.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.10.240 → 10.0.2.15 TCP 60443 → 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.10.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.10.240 TLSv1 373 klient Hej
5 2021-01-09 18:45:14.281007512 104.26.10.240 → 10.0.2.15 TCP 60443 → 48512 [ACK] Seq = 1 Ack = 320 Win = 65535 Len = 0
6 2021-01-09 18:45:14.390272461 104.26.10.240 → 10.0.2.15 TLSv1.3 1466 Server Hello, Change Cipher Spec
7 2021-01-09 18:45:14.390303914 10.0.2.15 → 104.26.10.240 TCP 54 48512 → 443 [ACK] Seq = 320 Ack = 1413 Win = 63540 Len = 0
8 2021-01-09 18:45:14.392680614 104.26.10.240 → 10.0.2.15 TLSv1.3 1160 Applikationsdata
9 2021-01-09 18:45:14.392703439 10.0.2.15 → 104.26.10.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.10.240 TLSv1.3 134 Ändra chifferspecifikation, applikationsdata
11 2021-01-09 18:45:14.394614735 104.26.10.240 → 10.0.2.15 TCP 60443 → 48512 [ACK] Seq = 2519 Ack = 400 Win = 65535 Len = 0
11 paket fångade

Visar hela paketet:

Den enda nackdelen med ett kommandoradsverktyg är att det inte har ett GUI, eftersom det blir väldigt praktiskt när du behöver söka mycket internettrafik, och det erbjuder också en paketpanel som visar alla paketdetaljer inom en omedelbar. Det är dock fortfarande möjligt att inspektera paketet och dumpa hela paketinformationen som visas i GUI Packet Panel.

För att inspektera ett helt paket använder vi ett ping-kommando med alternativet “-c” för att fånga ett enda paket.

[e-postskyddad]: ~ $ ping -c 1 104.26.10.240
PING 104.26.10.240 (104.26.10.240) 56 (84) byte data.
64 byte från 104.26.10.240: icmp_seq = 1 ttl = 55 tid = 105 ms
--- 104.26.10.240 ping-statistik ---
1 sända paket, 1 mottagen, 0% paketförlust, tid 0 ms
rtt min / avg / max / mdev = 105.095/105.095/105.095/0.000 ms

I ett annat fönster använder du kommandot tshark med en ytterligare flagga för att visa hela paketdetaljer. Du kan se olika avsnitt, som visar ramar, Ethernet II, IPV och ICMP-detaljer.

[e-postskyddad]: ~ $ tshark -i enp0s3 -c 1 -V värd 104.26.10.240
Bild 1: 98 byte på tråd (784 bitar), 98 byte fångade (784 bitar) på gränssnitt 0
Gränssnitts-id: 0 (enp0s3)
Gränssnittsnamn: enp0s3
Inkapslingstyp: Ethernet (1)
Ankomsttid: 9 jan 2021 21:23:39.167581606 PKT
[Tidsskift för detta paket: 0.000000000 sekunder]
Epoktid: 1610209419.167581606 sekunder
[Tidsdelta från föregående tagna ram: 0.000000000 sekunder]
[Tidsdelta från föregående visad ram: 0.000000000 sekunder]
[Tid sedan referens eller första bildruta: 0.000000000 sekunder]
Ramnummer: 1
Bildlängd: 98 byte (784 bitar)
Fångstlängd: 98 byte (784 bitar)
[Ramen är markerad: Falsk]
[Ramen ignoreras: Falsk]
[Protokoll i ram: eth: ethertype: ip: icmp: data]
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)
Adress: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
… 1… = LG-bit: Lokalt administrerad adress (detta är INTE fabriksinställningen)
… 0… = IG-bit: individuell adress (unicast)
Källa: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
Adress: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
Gränssnitts-id: 0 (enp0s3)
Gränssnittsnamn: enp0s3
Inkapslingstyp: Ethernet (1)
Ankomsttid: 9 jan 2021 21:23:39.167581606 PKT
[Tidsskift för detta paket: 0.000000000 sekunder]
Epoktid: 1610209419.167581606 sekunder
[Tidsdelta från föregående tagna ram: 0.000000000 sekunder]
[Tidsdelta från tidigare visad ram: 0.000000000 sekunder]
[Tid sedan referens eller första bildruta: 0.000000000 sekunder]
Ramnummer: 1
Bildlängd: 98 byte (784 bitar)
Inspelningslängd: 98 byte (784 bitar)
[Ramen är markerad: Falsk]
[Ramen ignoreras: Falsk]
[Protokoll i ram: eth: ethertype: ip: icmp: data]
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)
Adress: RealtekU_12: 35: 02 (52: 54: 00: 12: 35: 02)
… 1… = LG-bit: Lokalt administrerad adress (detta är INTE fabriksinställningen)
… 0… = IG-bit: individuell adress (unicast)
Källa: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
Adress: PcsCompu_17: fc: a6 (08: 00: 27: 17: fc: a6)
… 0… = LG-bit: Globalt unik adress (fabriksinställning)
… 0… = IG-bit: individuell adress (unicast)
Typ: IPv4 (0x0800)
Internetprotokoll version 4, Src: 10.0.2.15, Dst: 104.26.10.240
0100… = Version: 4
… 0101 = Huvudlängd: 20 byte (5)
Differentierat tjänstefält: 0x00 (DSCP: CS0, ECN: Not-ECT)
0000 00 ... = Differentierade tjänster Codepoint: Standard (0)
… 00 = Meddelande om explicit överbelastning: Ej ECN-kapabel transport (0)
Total längd: 84
Identifiering: 0xcc96 (52374)
Flaggor: 0x4000, fragmentera inte
0… = Reserverad bit: Ej inställd
.1 ... = Fragmentera inte: Ställ in
… 0… = Fler fragment: Ej inställd
… 0 0000 0000 0000 = Fragmentförskjutning: 0
Dags att leva: 64
Protokoll: ICMP (1)
Huvudkontrollsumma: 0xeef9 [validering inaktiverad]
[Status för huvudkontrollsumma: Overifierad]
Källa: 10.0.2.15
Destination: 104.26.10.240
Internet Control Message Protocol
Typ: 8 (Echo (ping) begäran)
Kod: 0
Kontrollsumma: 0x0cb7 [rätt]
[Kontrollsummans status: Bra]
Identifierare (BE): 5038 (0x13ae)
Identifierare (LE): 44563 (0xae13)
Sekvensnummer (BE): 1 (0x0001)
Sekvensnummer (LE): 256 (0x0100)
Tidsstämpel från icmp-data: 9 jan 2021 21:23:39.000000000 PKT
[Tidsstämpel från icmp-data (relativ): 0.167581606 sekunder]
Data (48 byte)
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
Data: 918e020000000000101112131415161718191a1b1c1d1e1f ..
[Längd: 48]

Slutsats:

Den mest utmanande aspekten av paketanalys är att hitta den mest relevanta informationen och ignorera de värdelösa bitarna. Även om grafiska gränssnitt är enkla kan de inte bidra till automatiserad nätverkspaketanalys. I den här artikeln har du lärt dig de mest användbara tshark-parametrarna för att fånga, visa, spara och läsa nätverkstrafikfiler.

Tshark är ett mycket praktiskt verktyg som läser och skriver de fångningsfiler som stöds av Wireshark. Kombinationen av visnings- och inspelningsfilter bidrar mycket när du arbetar på avancerade användningsfall. Vi kan utnyttja tsharks förmåga att skriva ut fält och manipulera data enligt våra krav på djupgående analys. Med andra ord är det kapabelt att göra praktiskt taget allt som Wireshark gör. Viktigast av allt är att den är perfekt för fjärranslutning av paket med ssh, vilket är ett ämne för en annan dag.

Mus Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Om du upptäcker att muspekaren hoppar eller rör sig på egen hand, automatiskt, slumpmässigt när du skriver in Windows-bärbar dator eller dator, kan nå...
Mus Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Mus och Pekplattas gör inte bara datoranvändning lättare men effektivare och mindre tidskrävande. Vi kan inte föreställa oss ett liv utan dessa enhete...
Mus Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Muspekaren och markören i Windows 10 är mycket viktiga aspekter av operativsystemet. Detta kan också sägas för andra operativsystem, så i sanning är d...