Wireshark är de-facto go-to-verktyget för flera nätverksproblem som varierar från nätverksfelsökning, undersökning av säkerhetsproblem, inspektion av nätverkstrafik för en misstänkt applikation, felsökning av protokollimplementeringar, tillsammans med inlärningsändamål för nätverksprotokoll, etc.
Wireshark-projektet inleddes 1998. Tack vare den globala nätverksexpertens frivilliga bidrag fortsätter den att göra uppdateringar för ny teknik och krypteringsstandarder. Därför är det överlägset ett av de bästa paketanalysverktygen och används som ett vanligt kommersiellt verktyg av olika myndigheter, utbildningsinstitut och ideella organisationer.
Wireshark-verktyget består av en rik uppsättning funktioner. Några av dem är följande:
- Multiplatform: den är tillgänglig för Unix-, Mac- och Window-system.
- Det fångar paket från olika nätverksmedier, dvs.e., Trådlöst LAN, Ethernet, USB, Bluetooth, etc.
- Det öppnar paketfiler som fångats av andra program som Oracle snoop och atmsnoop, Nmap, tcpdump, Microsoft Network Monitor, SNORT och många andra.
- Det sparar och exporterar fångade paketdata i olika format (CSV, XML, klartext osv.).
- Det ger beskrivningsstöd för protokoll inklusive SSL, WPA / WPA2, IPsec och många andra.
- Det inkluderar fångst- och visningsfilter.
Wireshark varnar dig dock inte för någon skadlig aktivitet. Det hjälper dig bara att inspektera och identifiera vad som händer i ditt nätverk. Dessutom analyserar den bara nätverksprotokoll / aktiviteter och kommer inte att utföra någon annan aktivitet som att skicka / avlyssna paket.
Den här artikeln ger en djupgående handledning som börjar med grunderna (i.e., filtrering, Wireshark nätverkslager, etc.) och tar dig in i djupet av trafikanalys.
Wireshark-filter
Wireshark levereras med kraftfulla filtermotorer, Capture-filter och Display-filter för att ta bort brus från nätverket eller redan fångad trafik. Dessa filter begränsar den oönskade trafiken och visar endast de paket som du vill se. Den här funktionen hjälper nätverksadministratörer att felsöka de aktuella problemen.
Innan du går in i detaljerna i filter. Om du undrar hur du kan fånga nätverkstrafiken utan filter kan du antingen trycka på Ctrl + E eller gå till alternativet Capture i Wireshark-gränssnittet och klicka på Start.
Låt oss nu gräva djupt i de tillgängliga filtren.
Fånga filter
Wireshark ger stöd för att minska storleken på en rå paketfångst genom att låta dig använda ett Capture Filter. Men det fångar bara pakettrafiken som matchar filtret och bortser från resten av det. Denna funktion hjälper dig att övervaka och analysera trafiken för en specifik applikation med hjälp av nätverket.
Blanda inte det här filtret med displayfilter. Det är inte ett displayfilter. Det här filtret visas i huvudfönstret som behövs för att ställa in innan du startar paketfångst. Dessutom kan du inte ändra detta filter under inspelningen.
Du kan gå till Fånga alternativ för gränssnittet och välj Fånga filter.
Du kommer att uppmanas med ett fönster, som visas på ögonblicksbilden. Du kan välja vilket filter som helst i listan med filter eller lägga till / skapa ett nytt filter genom att klicka på + knapp.
Exempel på listan med användbara Capture-filter:
- värd ip-adress - fångar trafik, endast mellan den specifika kommunicerande IP-adressen
- netto 192.168.0.0/24 - fångar trafik mellan IP-adressintervall / CIDR
- port 53 - fångar DNS-trafik
- tcp portrange 2051-3502 - fångar TCP-trafik från portområdet 2051-3502
- port inte 22 och inte 21 - fånga all trafik utom SSH och FTP
Displayfilter
Displayfilter låter dig dölja några paket från den redan fångade nätverkstrafiken. Dessa filter kan läggas till ovanför den fångade listan och kan ändras direkt. Du kan nu styra och begränsa de paket du vill koncentrera dig på medan du gömmer de onödiga paketen.
Du kan lägga till filter i verktygsfältet för visningsfilter precis ovanför den första rutan som innehåller paketinformation. Detta filter kan användas för att visa paket baserat på protokoll, källans IP-adress, destinations-IP-adress, portar, värde och information för fält, jämförelse mellan fält och mycket mer.
Det är rätt! Du kan skapa en kombination av filter med hjälp av logiska operatorer som ==.!=, ||, &&, etc.
Några exempel på visningsfilter för ett enda TCP-protokoll och ett kombinationsfilter visas nedan:
Nätverkslager i Wireshark
Förutom paketinspektion presenterar Wireshark OSI-lager som hjälper till i felsökningen. Wireshark visar skikten i omvänd ordning, till exempel:
- Fysiskt lager
- Datalänkskikt
- Nätverksskikt
- Transportskikt
- Applikationsskikt
Observera att Wireshark inte alltid visar det fysiska lagret. Vi gräver nu i varje lager för att förstå den viktiga aspekten av paketanalys och vad varje lager presenterar i Wireshark.
Fysiskt lager
Det fysiska lagret, som visas i följande ögonblicksbild, visar den fysiska sammanfattningen av ramen, till exempel hårdvaruinformation. Som nätverksadministratör extraherar du generellt inte information från detta lager.
Datalänkskikt
Nästa datalänkskikt innehåller källans och destinationsnätverkskortets adress. Det är relativt enkelt eftersom det bara levererar ramen från den bärbara datorn till routern eller nästa intilliggande ram i det fysiska mediet.
Nätverksskikt
Nätverksskiktet presenterar källans och destinations-IP-adresser, IP-version, rubriklängd, total paketlängd och massor av annan information.
Transportskikt
I detta lager visar Wireshark information om transportlagret, som består av SRC-port, DST-port, huvudlängd och sekvensnummer som ändras för varje paket.
Applikationsskikt
I det sista lagret kan du se vilken typ av data som skickas över mediet och vilken applikation som används, till exempel FTP, HTTP, SSH, etc.
Trafikanalys
ICMP-trafikanalys
ICMP används för felrapportering och testning genom att avgöra om data når den avsedda destinationen i tid eller inte. Ping-verktyget använder ICMP-meddelanden för att testa hastigheten på anslutningen mellan enheter och rapportera hur lång tid paketet tar för att nå sin destination och sedan komma tillbaka.
Pingen använder ICMP_echo_request-meddelandet till enheten i nätverket, och enheten svarar med ICMP_echo_reply-meddelandet. För att fånga paket på Wireshark, starta Capture-funktionen för Wireshark, öppna terminalen och kör följande kommando:
ubuntu $ ubuntu: ~ $ ping google.comAnvända sig av Ctrl + C för att avsluta paketupptagningsprocessen i Wireshark. I ögonblicksbilden nedan kan du se ICMP-paket skickat = ICMP-paket mottaget med 0% paketförlust.
Markera det första ICMP_echo_request-paketet i Wireshark-inspelningsfönstret och observera detaljerna genom att öppna den mellersta Wireshark-rutan.
I nätverksskiktet kan du märka källan Src som min ip-adress, medan destinationen Dst ip_address är från Googles server, medan IP-lagret nämner protokollet som ICMP.
Nu zoomar vi in i ICMP-paketdetaljerna genom att utöka Internet Control Message Protocol och avkoda de markerade rutorna i ögonblicksbilden nedan:
- Typ: 08-bitarsfält inställt på 8 betyder meddelande om ekobegäran
- Kod: alltid noll för ICMP-paket
- kontrollsumma: 0x46c8
- Identifieringsnummer (BE): 19797
- Identifieringsnummer (LE): 21837
- Sekvensnummer (BE): 1
- Sekvensnummer (LE): 256
Identifieraren och sekvensnumren matchas för att hjälpa till att identifiera svaren på ekoförfrågningar. På samma sätt beräknas kontrollsumman före paketöverföring och läggs till fältet som ska jämföras med kontrollsumman i det mottagna datapaketet.
Lägg märke till IPv4-lagret i ICMP: s svarspaket. Käll- och destinationsadresserna har bytt ut.
Kontrollera och jämför följande viktiga fält i ICMP-lagret:
- Typ: 08-bitarsfält inställt på 0 betyder Echo-svarsmeddelande
- Kod: alltid 0 för ICMP-paket
- kontrollsumma: 0x46c8
- Identifieringsnummer (BE): 19797
- Identifieringsnummer (LE): 21837
- Sekvensnummer (BE): 1
- Sekvensnummer (LE): 256
Du kan märka att ICMP-svaret ekar samma begäran, kontrollsumma, identifierare och sekvensnummer.
HTTP-trafikanalys
HTTP är ett Hypertext Transfer-applikationslagerprotokoll. Den används av internet och definierar regler när HTTP-klienten / servern överför / tar emot HTTP-kommandon. De vanligaste HTTP-metoderna ae POST och GET:
POSTA: den här metoden används för att säkert skicka konfidentiell information till servern som inte visas i webbadressen.
SKAFFA SIG: denna metod används vanligtvis för att hämta data från adressfältet från en webbserver.
Innan vi gräver djupare in i HTTP-paketanalys kommer vi först att kort visa TCP-trevägshandskakningen i Wireshark.
TCP trevägs-handskakning
I ett trevägs handskak initierar klienten en anslutning genom att skicka ett SYN-paket och ta emot ett SYN-ACK-svar från servern, vilket bekräftas av klienten. Vi använder Nmap TCP connect scan-kommandot för att illustrera TCP handskakning mellan klient och server.
ubuntu $ ubuntu: ~ $ nmap -sT google.comI Wireshark-paketfångningsfönstret, bläddra till toppen av fönstret för att märka olika trevägs-handskakningar som är baserade på vissa portar.
Använd tcp.port == 80 filter för att se om anslutningen upprättas via port 80. Du kan märka det kompletta trevägshandskakningen, dvs.e., SYN, SYN-ACK, och ACK, markerad högst upp på ögonblicksbilden och illustrerar en tillförlitlig anslutning.
HTTP-paketanalys
För HTTP-paketanalys, gå till din webbläsare och klistra in Wiresharks dokumentations-URL: http: // www.våffeljärn.com och ladda ner användarhandboken PDF. Under tiden måste Wireshark fånga alla paket.
Applicera ett HTTP-filter och leta efter HTTP GET begäran skickas till servern av klienten. Om du vill visa ett HTTP-paket markerar du det och expanderar applikationslagret i den mellersta rutan. Det kan finnas många rubriker i en begäran, beroende på webbplatsen och webbläsaren också. Vi analyserar rubrikerna i vår begäran i ögonblicksbilden nedan.
- Begärningsmetod: HTTP-förfrågningsmetoden är GET
- Värd: identifierar namnet på servern
- Användaragent: informerar om webbläsartypen på klientsidan
- Acceptera, acceptera kodning, acceptera språk: informerar servern om filtyp, accepterad kodning på klientsidan, i.e., gzip, etc., och det accepterade språket
- Cache-kontroll: visar hur den begärda informationen cachas
- Pragma: visar kakans namn och värden som webbläsaren har för webbplatsen
- Förbindelse: rubrik som styr om anslutningen förblir öppen efter transaktionen
I HTTP OK paket från server till klient, observera informationen i Hypertext Transfer Protocol-lagret visar “200 OK“. Denna information indikerar en normal lyckad överföring. I HTTP OK-paketet kan du observera olika rubriker jämfört med HTTP GET paket. Dessa rubriker innehåller information om det begärda innehållet.
- Svarversion: informerar om HTTP-versionen
- Statuskod, svarsfras: skickas av servern
- Datum: den tid då servern fick HTTP GET-paketet
- Server: serverinformation (Nginx, Apache, etc.)
- Innehållstyp: typ av innehåll (json, txt / html, etc.)
- Innehållslängd: total längd på innehållet; vår fil är 39696 byte
I det här avsnittet har du lärt dig hur HTTP fungerar och vad som händer när vi begär innehåll på webben.
Slutsats
Wireshark är det mest populära och kraftfulla nätverkssniffer- och analysverktyget. Det används ofta i dagliga paketanalysuppgifter i olika organisationer och institut. I den här artikeln har vi studerat några nybörjare till medelnivåämnen i Wireshark i Ubuntu. Vi har lärt oss vilken typ av filter som erbjuds av Wireshark för paketanalys. Vi har täckt nätverkslagermodellen i Wireshark och utfört djupgående ICMP- och HTTP-paketanalys.
Att lära sig och förstå olika aspekter av detta verktyg är dock en lång svår resa. Därför finns det många andra online-föreläsningar och handledning tillgängliga för att hjälpa dig kring specifika ämnen i Wireshark. Du kan följa den officiella användarhandboken som finns på Wiresharks webbplats. När du väl har byggt den grundläggande förståelsen för protokollanalys rekommenderas det också att använda ett verktyg som Varonis som pekar på det potentiella hotet och sedan använda Wireshark för att undersöka för bättre förståelse.