Hur man avlyssnar trafik. Bästa verktyg för penntestare: sniffers och paketmanipulation

Offentliga Wi-Fi-nätverk har också blivit mycket populära nuförtiden. De finns på restauranger, gym, köpcentra, tunnelbanor, hotell, privata sjukhus och kliniker, lägenheter och bostadsrätter – de finns nästan överallt där ganska många människor samlas.

Dessa nätverk har en egenhet - de är ofta öppna Wi-Fi-nätverk som inte kräver ett lösenord för att ansluta till. Finns det några ytterligare säkerhetsregler för att arbeta med sådana nätverk?

Ja, när du använder ett öppet Wi-Fi-nätverk måste du förstå att:

  • all data sänds av radiovågor, det vill säga till skillnad från en tråd, som inte alla kan komma åt, kan radiovågor fångas upp av alla som är inom räckhåll
  • i öppna nätverk är data inte krypterad

Med den första punkten tror jag att allt är klart: om någon med en dator och ett Wi-Fi-kort är tillräckligt nära, då kan han fånga och spara all trafik som överförs mellan den trådlösa åtkomstpunkten och alla dess klienter.

När det gäller den andra punkten är det nödvändigt att klargöra krypteringen av de överförda uppgifterna. Om du till exempel öppnar en webbplats som använder HTTPS-protokollet (det vill säga ett säkert protokoll), till exempel en webbplats, krypteras data som överförs till och från denna webbplats till dig. Om du öppnar en webbplats med hjälp av HTTP-protokollet, då alla överförda data: vilka sidor du besökte, vilka kommentarer du lämnade, vilka cookies som din webbläsare tog emot - denna data överförs i okrypterad form. Så om du är ansluten till en Wi-Fi-åtkomstpunkt som kräver ett lösenord, krypteras den överförda trafiken igen. Det vill säga, även om du öppnar en webbplats på HTTPS-protokollet, krypteras den överförda trafiken två gånger (första gången när du överför från webbläsaren till webbservern och i motsatt riktning, andra gången när du överför från din enhet till åtkomstpunkt, såväl som omvänd riktning). Och om du öppnar en webbplats på HTTP-protokollet, krypteras den överförda trafiken endast en gång (endast under överföring från din enhet till åtkomstpunkten och vice versa).

Men öppna hotspots krypterar inte trafik. Det följer av detta: om du använder en öppen åtkomstpunkt och öppnar en webbplats som körs på HTTP-protokollet, så överförs dina data i klartext och alla nära dig kan fånga och spara dem. Om du öppnar en sajt på HTTPS-protokollet så är denna data krypterad, dock kan du fortfarande se vilka sajter du har öppnat (även om du inte kan se vilka sidor och vad du angett, till exempel vilka kommentarer du lämnat).

Så: du måste komma ihåg att öppna trådlösa nätverk är benägna att avlyssna.

Avlyssning av trafik i öppna Wi-Fi-nätverk

För en lyckad attack behöver du en Linux-dator (till exempel med Kali Linux eller BlackArch), samt ett Wi-Fi-kort från.

Låt oss börja med att titta på namnen på de trådlösa gränssnitten:

Som du kan se har jag flera trådlösa gränssnitt, jag kommer att använda wlp0s20f0u2.

Vi överför det trådlösa gränssnittet till monitorläge:

Sudo ip-länk set GRÄNSSNITT ned sudo iw GRÄNSSNITT set monitor kontroll sudo ip länk set GRÄNSSNITT upp

I de tidigare kommandona, istället för GRÄNSSNITT du måste ange namnet som det trådlösa gränssnittet har i ditt system. Till exempel, för wlp0s20f0u2 ser kommandona ut så här:

Sudo ip-länk set wlp0s20f0u2 ner sudo iw wlp0s20f0u2 set monitor kontroll sudo ip link set wlp0s20f0u2 up

Öppna den infångade datafilen i Wireshark.

För att markera olika data behöver vi Wireshark-filter. Här kommer jag att visa ett exempel på att bara använda några av filtren, det rekommenderas att du utforskar den stora samlingen av användbara Wireshark-filter.

För att bedöma kvaliteten på infångningen kan du börja med filter som visar resultaten av analysen av TCP-protokollet.

Till exempel:

Tcp.analysis.duplicate_ack_num == 1

Detta filter matar ut information om ramar med ACK-flaggan som är dubbletter. Ett stort antal sådana ramar kan indikera kommunikationsproblem mellan klienten och åtkomstpunkten.

Filter för att visa bildrutor för vilka det föregående segmentet inte är fångat:

Tcp.analysis.ack_lost_segment

Detta är normalt i början av datafångst - eftersom informationen inte fångas upp från första början. Men om det här felet ofta inträffar i framtiden, är du för långt från åtkomstpunkten eller klienterna och du fångar inte en del av den data som de överför.

Så här visar du ramar som återsänds (återskickas):

Tcp.analysis.retransmission

Ett stort antal sådana ramar kan indikera att kopplingen mellan klienten och AP är dålig och att de ofta måste skicka samma data upprepade gånger.

Använda ett filter

Du kan se ARP-trafik - med dess hjälp är det bekvämt att analysera hur många enheter som för närvarande är anslutna till det lokala nätverket, vilka IP-adresser de har och vilka MAC-adresser. ...

Använda ett filter

du kan se alla skickade DNS-förfrågningar.

Tack vare dessa förfrågningar kan du ta reda på vilka webbplatser användare besökte (även om dessa webbplatser använder HTTPS!), samt till vilka onlinetjänster förfrågningarna gjordes.

På skärmdumpen kan du till exempel se adresserna till onlinebiografen Netflix, Facebook, olika Google-tjänster.

För att filtrera HTTP-trafik, filtret:

Du kan hitta mycket intressant information här. Du kan till exempel se förfrågningar till tjänster och överförd data, inklusive API-nycklar, enhetsidentifierare, etc.

Du kan se de besökta webbadresserna med alla angivna parametrar:

Filer som laddas ner och öppnas på Internet är synliga:

Du kan spara alla överförda filer. För att göra detta, välj paketet som innehåller det med musen (1), sedan i mittrutan, som innehåller detaljerad information, bläddra till botten för att hitta datafältet och högerklicka på det för att ta fram snabbmenyn (2), välj i snabbmenyn Exportera valda paketbytes(3) - Exportera byte av det valda paketet:

Ange ett namn för filen, välj en plats och spara den.

Någon uppdaterar Windows:

De cookies som ställts in för användaren eller de cookies som överförs till dem är också synliga:

Använda ett filter

Http.cookie

du kan se HTTP-förfrågningar där cookies skickades.

Och med filter

Http.set_cookie

du kan se de förfrågningar där servern ställer in cookies till användarens webbläsare.

Grannar laddar ner konstiga torrenter:

Data som överförs med POST-metoden är också synliga:

Så här söker du efter uppladdade bilder:

Http.content_type innehåller "bild"

Så här söker du efter vissa typer av bilder:

Http.content_type innehåller "gif" http.content_type innehåller "jpeg" http.content_type innehåller "png"

Så här söker du efter filer av en specifik typ:

Http.content_type innehåller "text" http.content_type innehåller "xml" http.content_type innehåller "html" http.content_type innehåller "json" http.content_type innehåller "javascript" http.content_type innehåller "x-www-form-urlencode" http. content_type innehåller "komprimerad" http.content_type innehåller "applikation"

Söker i Wireshark efter förfrågningar om att få filer av en viss typ. Till exempel, för att söka efter överförda ZIP-arkiv:

Http.request.uri innehåller "zip"

Istället för http.request.uri filter kan användas för större noggrannhet http.request.uri.path eller http.request.uri.query, till exempel för att söka efter förfrågningar om att ladda ner JPG-filer (länkar till bilder):

Http.request.uri.path innehåller "jpg"

Filter som endast visar data som skickats in med POST-metoden:

Http.request.method == "POST"

Filter som endast visar data som skickas med GET-metoden:

Http.request.method == "GET"

Sök efter förfrågningar till en specifik webbplats (värd):

Http.host == " "

Sök efter förfrågningar till en specifik webbplats efter del av namnet:

Http.host innehåller "here.partial.name"

Slutsats

Nu minskar antalet applikationer och sajter som inte använder kryptering snabbt. Därför minskar risken för sådan avlyssning varje år. Ändå finns den där.

Även webbplatser som använder HTTPS kan spontant exponera data. Till exempel:

Det kan ses att informationen på booking.com överförs från användaren i okrypterad form, så denna länk kan avlyssnas.

iPhone-applikationen laddar ständigt ner några (ljud?) filer utan att använda en säker anslutning:

Den populära (i vissa regioner) qq.com använder antingen inte kryptering eller använder sin egen algoritm:

Det garanterade skyddet mot sådan avlyssning är användningen av en pålitlig VPN-tjänst. En pålitlig VPN-tjänst kan betraktas som den du konfigurerar själv, eller VPN för ditt företagsnätverk.

Metoder för att avlyssna nätverkstrafik

Att lyssna på nätverket med hjälp av nätverksanalysprogram är det första, enklaste sättet att fånga upp data.

För att skydda mot nätverksavlyssning används speciella program, till exempel AntiSniff, som kan upptäcka datorer i nätverket som är upptagna med att avlyssna nätverkstrafik.

Anti-sniffer-program för att lösa sina problem använder ett speciellt tecken på närvaron av lyssningsenheter i nätverket - nätverkskortet på snifferdatorn måste vara i ett speciellt lyssningsläge. I lyssningsläge reagerar nätverksdatorer på ett speciellt sätt på IP-datagram som skickas till adressen till värden som testas. Till exempel hanterar lyssnande värdar vanligtvis all inkommande trafik, inte begränsat till datagram som skickas till värdadressen. Det finns andra tecken på misstänkt värdbeteende som AntiSniff kan känna igen.

Utan tvekan är avlyssning mycket användbart ur en inkräktares synvinkel, eftersom det låter dig få mycket användbar information - lösenord som överförs över nätverket, adresser till nätverksdatorer, konfidentiella data, brev och så vidare. Enkel avlyssning förhindrar dock en hackare från att störa nätverkskommunikationen mellan två värdar för att modifiera och manipulera data. För att lösa ett sådant problem krävs en mer sofistikerad teknik.

För att fånga upp och stänga processen för nätverkskommunikation mellan två värdar A och B, kan en angripare förfalska IP-adresserna för de interagerande värdarna med sin egen IP-adress genom att skicka falska ARP-meddelanden (Address Resolution Protocol) till värdarna A och B.

Ris. 1 Spoof ARP-förfrågningar

Låt oss se hur en hackare kan använda ARP för att fånga upp nätverkskommunikation mellan värdarna A och B.

För att avlyssna nätverkstrafik mellan värdarna A och B lägger hackaren in sin IP-adress på dessa värdar så att A och B använder denna falska IP-adress när de utbyter meddelanden. En hacker utför följande operationer för att fånga upp sin IP-adress.

  • En angripare bestämmer MAC-adresserna för värdarna A och B, till exempel med hjälp av kommandot nbtstat från W2RK-paketet.
  • Angriparen skickar meddelanden till de identifierade MAC-adresserna för värdarna A och B, som är falska ARP-svar på förfrågningar om att lösa IP-adresser för värdar till MAC-adresser för datorer. Värd A informeras om att IP-adressen för värd B motsvarar MAC-adressen för angriparens dator; värd B får veta att värd A:s IP-adress också matchar angriparens MAC-adress.
  • Värdarna A och B anger de mottagna MAC-adresserna i sina ARP-cache och använder dem sedan för att skicka meddelanden till varandra. Eftersom IP-adresserna för A och B motsvarar MAC-adressen för angriparens dator, kommunicerar värdarna A och B, utan att misstänka något, genom en mellanhand som kan göra vad de vill med sina meddelanden.

För att försvara sig mot sådana attacker måste nätverksadministratörer upprätthålla en databas med en mappningstabell över MAC-adresser och IP-adresser för sina nätverksdatorer.

På UNIX-nätverk kan den här typen av falska ARP-attacker implementeras med hjälp av systemverktyg för att övervaka och kontrollera nätverkstrafik, såsom arpredirect. Tyvärr, på Windows-nätverk, verkar inte sådana robusta verktyg vara implementerade. Till exempel är verktyget GrabitAIl tillgängligt från NTsecurity som ett verktyg för att omdirigera trafik mellan nätverksvärdar. Men ett elementärt test av funktionaliteten hos verktyget GrabitAIl visar att det fortfarande är långt ifrån fullständig framgång i implementeringen av dess funktioner.

För att fånga upp nätverkstrafik kan en angripare förfalska den verkliga IP-adressen för en nätverksrouter med sin egen IP-adress, till exempel genom att använda förfalskade ICMP Redirect-meddelanden. Värd A måste, enligt RFC-1122, tolka det mottagna omdirigeringsmeddelandet som ett svar på ett datagram som skickats till en annan värd, till exempel B. Värd A bestämmer sina åtgärder på omdirigeringsmeddelandet baserat på innehållet i det mottagna omdirigeringsmeddelandet, och om Datagram-omdirigering är inställd i Redirect från A till B på en ny rutt, är detta vad värd A kommer att göra.

Ris. 2 Falsk routing

För att utföra falsk routing måste angriparen känna till vissa detaljer om organisationen av det lokala nätverk där värd A är belägen, i synnerhet IP-adressen till routern genom vilken trafik skickas från värd A till B. Angriparen känner till detta. kommer att generera ett IP-datagram där IP - avsändarens adress definieras som IP-adressen för routern, och destinationen är värd A. Datagrammet innehåller också ett ICMP Redirect-meddelande med den nya routerns adressfält inställt som IP-adress för angriparens dator. Vid mottagande av ett sådant meddelande kommer värd A att skicka alla meddelanden till IP-adressen för angriparens dator.

För att skydda mot en sådan attack, inaktivera (till exempel genom att använda en brandvägg) behandlingen av ICMP Redirect-meddelanden på Host A. Dessa verktyg kan hitta en ytterligare rutt som dök upp på det lokala nätverket som inte tillhandahölls under installationen, om, naturligtvis, nätverksadministratören är vaksam.

Ovanstående exempel på avlyssningar (med vilka angriparnas möjligheter är långt ifrån begränsade) övertygar behovet av att skydda data som överförs över nätverket om data innehåller konfidentiell information. Den enda metoden för skydd mot avlyssning av nätverkstrafik är användningen av program som implementerar kryptografiska algoritmer och krypteringsprotokoll och för att förhindra avslöjande och ersättning av sekretessbelagd information. För att lösa sådana problem tillhandahåller kryptografi ett sätt att kryptera, signera och verifiera äktheten av meddelanden som överförs över säkra protokoll.

Den praktiska implementeringen av alla kryptografiska metoder för att skydda informationsutbyte tillhandahålls av VPN-nätverk (Virtual Private Network).

Kapar en TCP-anslutning

Den mest sofistikerade attacken för avlyssning av nätverkstrafik är TCP-kapning, när en hackare avbryter den pågående kommunikationssessionen med värden genom att generera och skicka TCP-paket till den attackerade värden. Vidare, genom att använda funktionerna hos TCP-protokollet för att återställa den avbrutna TCP-anslutningen, avlyssnar hackaren den avbrutna kommunikationssessionen och fortsätter den istället för den frånkopplade klienten.

Flera effektiva verktyg har utvecklats för att utföra TCP-anslutningskapningsattacker, men de är alla implementerade för Unix-plattformen, och dessa verktyg presenteras endast i källkod på webbplatserna. Därför är attacker genom att avlyssna en TCP-anslutning till liten nytta.

TCP (Transmission Control Protocol) är ett av de grundläggande protokollen i OSI-transportskiktet som gör att logiska anslutningar kan upprättas över en virtuell kommunikationskanal. Paket sänds och tas emot via denna kanal med registrering av deras sekvens, paketflödet kontrolleras, återsändningen av korrupta paket organiseras och i slutet av sessionen bryts kommunikationskanalen. TCP är det enda grundläggande protokollet i TCP/IP-familjen som har ett avancerat meddelande- och anslutningsidentifieringssystem.

Översikt över mjukvarubatchsniffer

Alla mjukvarusniffare kan grovt delas in i två kategorier: sniffers som stödjer start från kommandoraden och sniffers som har ett grafiskt gränssnitt. Samtidigt noterar vi att det finns sniffers som kombinerar båda dessa funktioner. Dessutom skiljer sig sniffers från varandra i de protokoll de stöder, i analysdjupet av avlyssnade paket, i förmågan att konfigurera filter, såväl som i möjligheten till kompatibilitet med andra program.

Vanligtvis består fönstret för en sniffer med ett grafiskt gränssnitt av tre områden. Den första visar sammanfattningen av fångade paket. Vanligtvis visar detta område ett minimum av fält, nämligen: paketfångsttid; IP-adresserna för avsändaren och mottagaren av paketet; Paketkäll- och destinations-MAC-adresser, käll- och destinationsportadresser; protokolltyp (nätverk, transport eller applikationslager); viss sammanfattande information om de avlyssnade uppgifterna. Det andra området visar statistisk information om det individuella valda paketet, och slutligen, i det tredje området, presenteras paketet i hexadecimal eller ASCII-teckenform.

Nästan alla paketsniffer låter dig analysera avkodade paket (vilket är anledningen till att paketsniffer också kallas paketanalysatorer, eller protokollanalysatorer). Sniffaren distribuerar de fångade paketen efter lager och protokoll. Vissa paketsniffare kan känna igen protokollet och visa uppfångad information. Denna typ av information visas vanligtvis i det andra området av snifferfönstret. Till exempel kan alla sniffers känna igen TCP-protokollet, och avancerade sniffers kan avgöra vilken applikation som genererar denna trafik. De flesta protokollanalysatorer känner igen över 500 olika protokoll och kan beskriva och avkoda dem med namn. Ju mer information sniffern kan avkoda och presentera på skärmen, desto mindre kommer den att behöva avkoda manuellt.

Ett av problemen som paketanalysatorer kan möta är oförmågan att korrekt identifiera protokollet med en annan port än standardporten. Till exempel, för att förbättra säkerheten, kan vissa välkända applikationer konfigureras för att använda andra portar än standardportarna. Så istället för den traditionella porten 80, reserverad för en webbserver, kan den här servern tvingas omkonfigureras till port 8088 eller till någon annan. Vissa paketanalysatorer i en sådan situation kan inte korrekt bestämma protokollet och visar endast information om protokollet för lägre lager (TCP eller UDP).

Det finns mjukvarusniffer som kommer med mjukvaruanalytiska moduler som plugins eller inbyggda moduler som låter dig skapa rapporter med användbar analytisk information om den avlyssnade trafiken.

Ett annat kännetecken för de flesta paketsnifferprogram är möjligheten att konfigurera filter före och efter att fånga trafik. Filter väljer vissa paket från den allmänna trafiken enligt ett givet kriterium, vilket gör att du kan bli av med onödig information när du analyserar trafik.

Många användare inser inte ens att genom att fylla i login och lösenord när de registrerar sig eller auktoriserar på en stängd internetresurs och trycker på ENTER, kan denna data lätt fångas upp. Mycket ofta sänds de över nätverket i oskyddad form. Därför, om webbplatsen där du försöker logga in använder HTTP-protokollet, är det mycket enkelt att fånga denna trafik, analysera den med Wireshark och sedan använda speciella filter och program för att hitta och dekryptera lösenordet.

Det bästa stället att avlyssna lösenord är i kärnan av nätverket, där trafiken för alla användare går till stängda resurser (till exempel post) eller framför routern för att komma åt Internet, när man registrerar sig med externa resurser. Vi sätter upp en spegel och vi är redo att känna oss som en hackare.

Steg 1. Installera och kör Wireshark för att fånga trafik

Ibland räcker det att bara välja gränssnittet genom vilket vi planerar att fånga trafik och klicka på Start-knappen. I vårt fall gör vi en fångst över det trådlösa nätverket.

Trafikfångst har börjat.

Steg 2. Filtrera fångad POST-trafik

Vi öppnar en webbläsare och försöker logga in på valfri resurs med ett användarnamn och lösenord. När auktoriseringsprocessen har slutförts och webbplatsen öppnats slutar vi att fånga trafik i Wireshark. Öppna sedan protokollanalysatorn och se ett stort antal paket. Det är i detta skede som de flesta IT-proffs ger upp eftersom de inte vet vad de ska göra härnäst. Men vi vet och är intresserade av specifika paket som innehåller POST-data som genereras på vår lokala dator när du fyller i ett formulär på skärmen och som skickas till en fjärrserver när du klickar på knappen "Logga in" eller "Auktorisering" i webbläsare.

Inför ett speciellt filter i fönstret för att visa infångade paket: http.begäran.metod == “LÄGGA IN "

Och istället för tusen paket ser vi bara ett med den data vi letar efter.

Steg 3. Hitta användarnamnet och lösenordet

Ett snabbt högerklick med musen och välj objektet från menyn Följ TCP Steam


Efter det kommer text upp i ett nytt fönster, som i koden återställer sidans innehåll. Låt oss hitta fälten "lösenord" och "användare", som motsvarar lösenordet och användarnamnet. I vissa fall kommer båda fälten att vara lätta att läsa och inte ens krypterade, men om vi försöker fånga trafik när vi kommer åt mycket välkända resurser som Mail.ru, Facebook, Vkontakte, etc., kommer lösenordet att kodas :

HTTP / 1.1 302 Hittade

Server: Apache / 2.2.15 (CentOS)

X-Powered-By: PHP / 5.3.3

P3P: CP = "NOI ADM DEV PSAi COM NAV VÅR OTRo STP IND DEM"

Set-Cookie: lösenord = ; går ut = tors, 07-nov-2024 23:52:21 GMT; sökväg = /

Plats: loggedin.php

Innehållslängd: 0

Anslutning: stäng

Innehållstyp: text / html; teckenuppsättning = UTF-8

Så i vårt fall:

Användarnamn: networkguru

Lösenord:

Steg 4. Bestämma typ av kodning för att dekryptera lösenordet

Vi går till exempel till webbplatsen http://www.onlinehashcrack.com/hash-identification.php#res och anger vårt lösenord i identifieringsfönstret. Jag fick en lista över kodningsprotokoll i prioritetsordning:

Steg 5. Dekryptera användarlösenord

I det här skedet kan vi använda hashcat-verktyget:

~ # hashcat -m 0 -a 0 /root/wireshark-hash.lf /root/rockyou.txt

Vid utgången fick vi ett dekrypterat lösenord: simplepassword

Med hjälp av Wireshark kan vi alltså inte bara lösa problem i driften av applikationer och tjänster, utan också prova oss själva som en hackare och fånga upp lösenord som användare anger i webbformulär. Du kan också ta reda på lösenord till användarpostlådor med enkla filter för att visa:

  • POP-protokollet och filtret ser ut så här: pop.request.command == "USER" || pop.request.command == "PASS"
  • IMAP och filter kommer att vara: imap.request innehåller "inloggning"
  • SMTP-protokoll och du måste ange följande filter: smtp.req.command == "AUTH"

och mer seriösa verktyg för att dekryptera kodningsprotokollet.

Steg 6. Vad händer om trafiken är krypterad och använder HTTPS?

Det finns flera alternativ för att svara på denna fråga.

Alternativ 1. Anslut för att koppla från anslutningen mellan användaren och servern och fånga trafik i det ögonblick som anslutningen upprättas (SSL Handshake). När anslutningen är upprättad kan du avlyssna sessionsnyckeln.

Alternativ 2. Du kan dekryptera HTTPS-trafik med hjälp av sessionsnyckelloggfilen som registrerats av Firefox eller Chrome. För att göra detta måste webbläsaren vara konfigurerad att skriva dessa krypteringsnycklar till en loggfil (FireFox-baserat exempel) och du bör få denna loggfil. I huvudsak måste du stjäla sessionsnyckelfilen från en annan användares hårddisk (vilket är olagligt). Tja, fånga sedan trafiken och använd den resulterande nyckeln för att dekryptera den.

Klargörande. Vi pratar om webbläsaren för en person som försöker stjäla ett lösenord. Om vi ​​menar att dekryptera vår egen HTTPS-trafik och vill öva, så kommer den här strategin att fungera. Om du försöker dekryptera andra användares HTTPS-trafik utan att komma åt deras datorer kommer det inte att fungera – det är både kryptering och integritet.

Efter att ha mottagit nycklarna för alternativ 1 eller 2 måste du registrera dem i WireShark:

  1. Gå till menyn Redigera - Inställningar - Protokoll - SSL.
  2. Ställ in flaggan "Sätt ihop SSL-poster som spänner över flera TCP-segment".
  3. "RSA-nycklarlista" och klicka på Redigera.
  4. Vi matar in data i alla fält och skriver sökvägen i filen med nyckeln

WireShark kan dekryptera paket som är krypterade med RSA-algoritmen. Om DHE / ECDHE, FS, ECC algoritmer används är sniffern inte vår hjälpare.

Alternativ 3. Få tillgång till webbservern som används av användaren och få nyckeln. Men det här är ännu mer utmanande. I företagsnätverk, i syfte att felsöka applikationer eller innehållsfiltrering, implementeras detta alternativ på laglig grund, men inte i syfte att fånga upp användarlösenord.

BONUS

VIDEO: Wireshark Packet Sniffing Användarnamn, Lösenord och webbsidor


Den här lektionen beskriver nätverkshackningstekniker baserade på att fånga nätverkspaket. Hackare använder sådan teknik för att avlyssna nätverkstrafik för att stjäla värdefull information, för att organisera avlyssning av data i syfte att en man-in-the-middle-attack, för att avlyssna TCP-anslutningar som tillåter, till exempel, att förfalska data och utföra andra lika intressanta handlingar. Tyvärr implementeras de flesta av dessa attacker i praktiken endast för Unix-nätverk, för vilka hackare kan använda både specialverktyg och Unix-systemverktyg. Windows-nätverk, uppenbarligen, kringgås av hackare, och vi tvingas begränsa oss till att beskriva verktyg för dataavlyssning med snifferprogram som är utformade för att trivialt lyssna efter nätverkspaket. Ändå bör man inte försumma åtminstone en teoretisk beskrivning av sådana attacker, särskilt av anti-hackers, eftersom kunskap om de tillämpade hackningsteknikerna hjälper till att förhindra många problem.

Nätverkssnuffning

För att sniffa Ethernet-nätverk används vanligtvis nätverkskort som sätts i lyssningsläge. Avlyssning på ett Ethernet-nätverk kräver att en dator som kör ett snifferprogram kopplas till ett nätverkssegment, varefter all nätverkstrafik som skickas och tas emot av datorer på detta nätverkssegment blir tillgänglig för hackaren. Det är ännu lättare att avlyssna trafiken av radionätverk med hjälp av trådlösa nätverksförmedlare - i det här fallet behöver du inte ens leta efter en plats att ansluta till kabeln. Alternativt kan en angripare ansluta till en telefonlinje som ansluter en dator till en internetserver och hitta en lämplig plats för detta (telefonlinjer läggs vanligtvis i källare och andra lite besökta platser utan något skydd).

För att demonstrera tekniken för sniffning kommer vi att använda ett mycket populärt snifferprogram SpyNet som finns på många webbplatser. Programmets officiella hemsida SpyNet ligger vid http://members.xoom.com/layrentiu2/, där du kan ladda ner demoversionen av programmet.

Program SpyNet består av två komponenter - CaptureNet och PipeNet... Program CaptureNet låter dig avlyssna paket som överförs över ett Ethernet-nätverk på nätverksnivå, d.v.s. i form av Ethernet-ramar. Program PipeNet Låter dig sätta ihop Ethernet-ramar till applikationslagerpaket och återställa till exempel e-postmeddelanden, HTTP-meddelanden (webserverkommunikation) och andra funktioner.

Tyvärr i demoversion SpyNet möjligheter PipeNetär begränsade till demoversionen av HTTP-paketet, så vi kan inte visa hur det fungerar SpyNet till fullo. Däremot kommer vi att demonstrera funktionerna för nätverkssniffning. SpyNet på exemplet med vårt experimentella nätverk, överföra en textfil från värden Svärd-2000 per värd Alex-Z med vanlig Windows Explorer. Samtidigt på datorn A1ex-1 vi kommer att lansera programmet CaptureNet, som kommer att fånga upp de överförda paketen och låta dig läsa innehållet i den överförda filen i Ethernet-ramar. I fig. 1 visar texten för det hemliga meddelandet i filen hemlig.txt; vi kommer att försöka hitta denna text i de fångade Ethernet-ramarna.

Ris. 1. Texten i det hemliga meddelandet i fönstret Anteckningar

Följ dessa steg för att fånga Ethernet-ramar.

På datorn Alex-Z kör programmet CaptureNet... I det visade arbetsfönstret för programmet, välj menykommandot Fånga * Starta(Capture * Start) och starta processen att fånga nätverksramar.

Använd Windows Explorer och kopiera filen security.txt från din dator Svärd-2000A1ex-3.

När du har överfört filen secret.txt väljer du menykommandot Fånga * Stopp(Capture * Stop) och stoppa avlyssningsprocessen.

De fångade Ethernet-ramarna kommer att visas i den högra delen av programmets arbetsfönster. CaptureNet(Fig. 2), där varje rad i den övre listan representerar en Ethernet-ram, och under listan visas innehållet i den valda ramen.

Ris. 2. Ethernet-ramen innehåller texten i det hemliga meddelandet

Efter att ha tittat igenom listan över avlyssnade ramar kan vi enkelt hitta den som innehåller texten Detta är en mycket stor hemlighet som vi har överfört (Detta är en mycket stor hemlighet).

Låt oss betona att detta är det enklaste exemplet, när all avlyssnad nätverkstrafik registrerades. Program CaptureNet låter dig fånga upp paket som skickas via specifika protokoll och till specifika värdportar, välja meddelanden med specifikt innehåll och samla uppfångad data i en fil. Tekniken för att utföra sådana åtgärder är enkel, och du kan bemästra den med hjälp av programmets hjälpsystem. SpyNet.

Förutom primitiv avlyssning har hackare mer sofistikerade verktyg för dataavlyssning tillgängliga. Nedan följer en kort översikt över sådana metoder, om än i en teoretisk aspekt. Anledningen är att för Windows-nätverk är den praktiska implementeringen av dataavlyssningsattacker extremt begränsad, och uppsättningen av tillförlitliga verktyg för avlyssningsattacker är ganska knappa.

Metoder för att avlyssna nätverkstrafik

Sniffera nätverket med nätverkssniffer som den ovan CaptureNet, är det första, enklaste sättet att fånga upp data. Förutom SpyNet För nätverkssniffning används många verktyg, ursprungligen utvecklade i syfte att analysera nätverksaktivitet, diagnostisera nätverk, välja trafik enligt specificerade kriterier och andra nätverksadministrativa uppgifter. Ett exempel på ett sådant program är tcpdump (http://www.tcpdump.org), som låter dig registrera nätverkstrafik i en speciell logg för senare analys.

För att skydda mot nätverksavlyssning används speciella program, t.ex. AntiSniff (http://www.securitysoftwaretech.com/antisniff), som kan identifiera datorer i nätverket som är upptagna med att lyssna på nätverkstrafik. Antisniferprogram för att lösa sina problem använder ett speciellt tecken på närvaron av lyssningsenheter i nätverket - nätverkskortet på snifferdatorn måste vara i ett speciellt lyssningsläge. I lyssningsläge reagerar nätverksdatorer på ett speciellt sätt på IP-datagram som skickas till adressen till värden som testas. Till exempel hanterar lyssnande värdar vanligtvis all inkommande trafik, inte begränsat till datagram som skickas till värdadressen. Det finns andra tecken på misstänkt värdbeteende som programmet kan känna igen. AntiSniff.

Utan tvekan är avlyssning mycket användbart ur en inkräktares synvinkel, eftersom det låter dig få mycket användbar information - lösenord som överförs över nätverket, adresser till nätverksdatorer, konfidentiella data, brev och så vidare. Enkel avlyssning förhindrar dock en hackare från att störa nätverkskommunikationen mellan två värdar för att modifiera och manipulera data. För att lösa ett sådant problem krävs en mer sofistikerad teknik.

Spoof ARP-förfrågningar

För att fånga upp och stänga processen för nätverkskommunikation mellan två värdar A och B, kan en angripare förfalska IP-adresserna för de interagerande värdarna med sin egen IP-adress genom att skicka falska ARP-meddelanden (Address Resolution Protocol) till värdarna A och B. Du kan lära dig mer om ARP i Appendix D, som beskriver hur man löser (översätter) en värd-IP-adress till en maskinadress (MAC-adress) som är ansluten till värdens nätverkskort. Låt oss se hur en hackare kan använda ARP för att fånga upp nätverkskommunikation mellan värdarna A och B.

För att avlyssna nätverkstrafik mellan värdarna A och B lägger hackaren in sin IP-adress på dessa värdar så att A och B använder denna falska IP-adress när de utbyter meddelanden. En hacker utför följande operationer för att fånga upp sin IP-adress.

En angripare bestämmer MAC-adresserna för värdarna A och B, till exempel med hjälp av kommandot nbtstat från paketet W2RK.

Angriparen skickar meddelanden till de identifierade MAC-adresserna för värdarna A och B, som är falska ARP-svar på förfrågningar om att lösa IP-adresser för värdar till MAC-adresser för datorer. Värd A informeras om att IP-adressen för värd B motsvarar MAC-adressen för angriparens dator; värd B får veta att värd A:s IP-adress också matchar angriparens MAC-adress.

Värdarna A och B anger de mottagna MAC-adresserna i sina ARP-cache och använder dem sedan för att skicka meddelanden till varandra. Eftersom IP-adresserna för A och B motsvarar MAC-adressen för angriparens dator, kommunicerar värdarna A och B, utan att misstänka något, genom en mellanhand som kan göra vad de vill med sina meddelanden.

För att försvara sig mot sådana attacker måste nätverksadministratörer upprätthålla en databas med en mappningstabell över MAC-adresser och IP-adresser för sina nätverksdatorer. Vidare, med hjälp av speciell programvara, till exempel ett verktyg arpwatch (ftp://ftp.ee.lbl.gov/arpwatch-2.lab.tar.gz), kan du regelbundet undersöka nätverket och identifiera inkonsekvenser.

På UNIX-nätverk kan denna typ av falska ARP-attack implementeras med hjälp av systemverktyg för att övervaka och kontrollera nätverkstrafik, som t.ex. arpredirect... Tyvärr är sådana tillförlitliga verktyg uppenbarligen inte implementerade i Windows 2000 / XP-nätverk. Till exempel på NTsecurity-webbplatsen ( http://www.ntsecurity.nu) kan du ladda ner verktyget GrabitAII, presenterat som ett sätt att omdirigera trafik mellan nätverksvärdar. Dock en elementär kontroll av verktygets funktionalitet GrabitAII visar att det fortfarande är långt ifrån fullständig framgång i genomförandet av sina funktioner.

Falsk routing

För att fånga upp nätverkstrafik kan en angripare förfalska den verkliga IP-adressen för en nätverksrouter med sin egen IP-adress, till exempel genom att använda förfalskade ICMP Redirect-meddelanden. Värd A måste, enligt RFC-1122, tolka det mottagna omdirigeringsmeddelandet som ett svar på ett datagram som skickats till en annan värd, till exempel B. Värd A bestämmer sina åtgärder på omdirigeringsmeddelandet baserat på innehållet i det mottagna omdirigeringsmeddelandet, och om Datagram-omdirigering är inställd i Redirect från A till B på en ny rutt, är detta vad värd A kommer att göra.

För att utföra falsk routing måste angriparen känna till vissa detaljer om organisationen av det lokala nätverk där värd A är belägen, i synnerhet IP-adressen till routern genom vilken trafik skickas från värd A till B. Angriparen känner till detta. kommer att generera ett IP-datagram där IP - avsändarens adress definieras som IP-adressen för routern, och destinationen är värd A. Datagrammet innehåller också ett ICMP Redirect-meddelande med den nya routerns adressfält inställt som IP-adress för angriparens dator. Vid mottagande av ett sådant meddelande kommer värd A att skicka alla meddelanden till IP-adressen för angriparens dator.

För att skydda mot en sådan attack, inaktivera (till exempel genom att använda en brandvägg) på värd A behandlingen av ICMP Redirect-meddelanden och kommandot tracert(på Unix är detta tracerout-kommandot). Dessa verktyg kan hitta en ytterligare rutt som dök upp på det lokala nätverket som inte tillhandahölls under installationen, om, naturligtvis, nätverksadministratören är vaksam.

Ovanstående exempel på avlyssningar (med vilka angriparnas möjligheter är långt ifrån begränsade) övertygar behovet av att skydda data som överförs över nätverket om data innehåller konfidentiell information. Den enda metoden för skydd mot avlyssning av nätverkstrafik är användningen av program som implementerar kryptografiska algoritmer och krypteringsprotokoll och för att förhindra avslöjande och ersättning av sekretessbelagd information. För att lösa sådana problem tillhandahåller kryptografi medel för att kryptera, signera och verifiera äktheten av meddelanden som överförs över säkra protokoll.

Virtual Private Networks (VPN) tillhandahåller praktiska implementeringar för alla kryptografiska metoder för att säkra kommunikation som beskrivs i kapitel 4. En kort översikt över principerna och metoderna för kryptografiskt skydd finns i bilaga E och i den detaljerade beskrivningen av de kryptografiska skydden som applikationen tillhandahåller. PGP Desktop Security (http://www.pgp.com).

Kapar en TCP-anslutning

Den mest sofistikerade attacken för avlyssning av nätverkstrafik är TCP-kapning, när en hackare avbryter den pågående kommunikationssessionen med värden genom att generera och skicka TCP-paket till den attackerade värden. Vidare, genom att använda funktionerna hos TCP-protokollet för att återställa den avbrutna TCP-anslutningen, avlyssnar hackaren den avbrutna kommunikationssessionen och fortsätter den istället för den frånkopplade klienten.

Flera effektiva verktyg har utvecklats för att utföra TCP-anslutningskapningsattacker, men de är alla implementerade för Unix-plattformen, och dessa verktyg presenteras endast i källkod på webbplatserna. Därför, för oss, som övertygade utövare i den ädla orsaken till hacking, är attacker genom att avlyssna en TCP-anslutning till liten nytta. (De som gillar att förstå någon annans programkod kan hänvisa till sajten http://www.cri.cz/~kra/index.html där du kan ladda ner källkoden för det välkända TCP-anslutningsavlyssningsverktyget Jaga från Pavel Krauz).

Trots bristen på praktiska verktyg kan vi inte ignorera ett så intressant ämne som avlyssning av TCP-anslutningar och uppehålla oss vid vissa aspekter av sådana attacker. Viss information om strukturen för ett TCP-paket och i vilken ordning TCP-anslutningar upprättas finns i bilaga D i denna bok, men här kommer vi att fokusera på denna fråga - vad exakt tillåter hackare att utföra attacker genom att avlyssna TCP-anslutningar? Låt oss överväga detta ämne mer i detalj, huvudsakligen förlita oss på diskussionen i och.

TCP (Transmission Control Protocol) är ett av de grundläggande protokollen i OSI-transportskiktet som gör att logiska anslutningar kan upprättas över en virtuell kommunikationskanal. Paket sänds och tas emot via denna kanal med registrering av deras sekvens, paketflödet kontrolleras, återsändningen av korrupta paket organiseras och i slutet av sessionen bryts kommunikationskanalen. TCP är det enda grundläggande protokollet i TCP/IP-familjen som har ett avancerat meddelande- och anslutningsidentifieringssystem.

För att identifiera ett TCP-paket finns det två 32-bitars identifierare i TCP-huvudet, som också fungerar som en paketräknare, kallad sekvensnummer och bekräftelsenummer. Vi kommer också att vara intresserade av ett annat fält av TCP-paketet, som kallas kontrollbitar. Detta 6-bitars fält innehåller följande kontrollbitar (i ordning från vänster till höger):

URG - brådskande flagga;

ACK - bekräftelseflagga;

PSH - bärflagga;

RST - flagga för återupprättande av anslutning;

SYN - synkroniseringsflagga;

FIN - flagga för anslutningsavslutning.

Låt oss titta på hur man skapar en TCP-anslutning.

1. Om värd A behöver upprätta en TCP-anslutning med värd B, skickar värd A värd B följande meddelande:

A -> B: SYN, ISSa

Detta betyder att meddelandet som skickas av värd A har SYN-flaggan (Synchronize sequence number) inställd och sekvensnummerfältet är satt till 32-bitars initiala sekvensnummer (ISSa).

2. Som svar på begäran mottagen från värd A, svarar värd B med ett meddelande i vilket SYN-biten är satt och ACK-biten är inställd. I fältet för sekvensnumret ställer värd B in sitt initiala räknarvärde - ISSb; fältet för bekräftelsenummer kommer att innehålla ISSa-värdet mottaget i det första paketet från värd A, ökat med ett. Således svarar värd B med följande meddelande:

B -> A: SYN, ACK, ISSb, ACK (ISSa + 1)

3. Slutligen skickar värd A ett meddelande till värd B där: bit är satt FRÅGA; ordningsfältet innehåller värdet ISSa + 1; bekräftelsenummerfältet innehåller värdet ISSb + 1... Efter det TCP-anslutning mellan värdar A och V anses etablerad:

A -> B: ACK, ISSa + 1, ACK (ISSb + 1)

4. Nu värden A kan skicka datapaket till värden Vöver den nyskapade virtuella TCP-kanalen:

A -> B: ACK, ISSa + 1, ACK (ISSb + 1); DATA

Här DATA betecknar data.

Från ovanstående algoritm för att skapa en TCP-anslutning kan det ses att de enda identifierarna för TCP-abonnenter och TCP-anslutningar är två 32-bitars parametrar av sekvensnumret och bekräftelsenumret - ISSa och ISSb... Därför, om en hacker lyckas ta reda på de aktuella värdena för fälten ISSa och ISSb, då kommer ingenting att hindra honom från att bilda ett falskt TCP-paket. Det betyder att det räcker för en hacker att hitta de aktuella värdena för parametrarna. ISSa och ISSb ett TCP-paket för en given TCP-anslutning, skicka ett paket från vilken värd som helst på Internet på uppdrag av en klient för en given TCP-anslutning, och detta paket kommer att accepteras som giltigt!

Faran med sådan förfalskning av TCP-paket är också viktig eftersom FTP- och TELNET-protokollen på hög nivå implementeras på basis av TCP-protokollet, och identifieringen av FTP-klienter och TELNET-paket är helt baserad på TCP-protokollet.

Dessutom, eftersom FTP- och TELNET-protokollen inte kontrollerar IP-adresserna för avsändare av meddelanden, efter att ha tagit emot ett falskt paket, kommer FTP- eller TELNET-servrarna att skicka ett svarsmeddelande till IP-adressen för hackervärden som anges i det falska paketet . Efter det kommer hackervärden att börja arbeta med FTP- eller TELNET-servern från sin IP-adress, men med rättigheterna för den lagligt anslutna användaren, som i sin tur kommer att förlora anslutningen till servern på grund av en oöverensstämmelse i räknarna.

För att utföra attacken som beskrivs ovan är ett nödvändigt och tillräckligt villkor kunskapen om de två aktuella 32-bitarsparametrarna ISSa och ISSb identifiera TCP-anslutningen. Låt oss överväga de möjliga sätten att få dem. I fallet när hackervärden är ansluten till det attackerade nätverkssegmentet, uppgiften att erhålla värden ISSa och ISSbär trivialt och löses genom att analysera nätverkstrafik. Därför bör det tydligt förstås att TCP-protokollet i princip tillåter att skydda anslutningen endast om det är omöjligt för angriparen att fånga upp meddelanden som sänds över denna anslutning, det vill säga endast om hackervärden är ansluten till ett nätverkssegment som skiljer sig från abonnentens TCP-anslutningssegment.

Av störst intresse för en hackare är därför intersegment-attacker, när angriparen och hans mål befinner sig i olika nätverkssegment. I detta fall uppgiften att skaffa värden ISSa och ISSbär inte trivialt. För att lösa detta problem har nu bara två sätt uppfunnits.

Matematisk förutsägelse av initialvärdet för TCP-anslutningsparametrarna genom att extrapolera de tidigare värdena ISSa och ISSb.

Använda sårbarheter för att identifiera abonnenter av en TCP-anslutning på Unix rsh-servrar.

Det första problemet löses genom djupgående studier av implementeringen av TCP-protokollet i olika operativsystem och har nu ett rent teoretiskt värde. Det andra problemet löses genom att utnyttja sårbarheterna i Unix-systemet för att identifiera betrodda värdar. (Betrodd med avseende på den givna värden A anropade nätverksvärden V vars användare kan ansluta till värden A ingen autentisering med värd r-service A). Genom att manipulera parametrarna för TCP-paket kan en hackare försöka utge sig för att vara en betrodd värd och fånga upp TCP-anslutningen med den attackerade värden.

Allt detta är mycket intressant, men de praktiska resultaten av denna typ av forskning är ännu inte synliga. Därför rekommenderar vi alla som vill fördjupa sig i detta ämne att hänvisa till boken, varifrån ovanstående information i allmänhet hämtades.

Slutsats

Avlyssning av nätverksdata är den mest effektiva metoden för nätverkshackning, vilket gör att en hackare kan få tag i praktiskt taget all information som cirkulerar på nätverket. Den största praktiska utvecklingen fick man med hjälp av sniffning, d.v.s. lyssna på nätverk; det är dock omöjligt att ignorera metoderna för att fånga upp nätverksdata, utförda genom att störa nätverkets normala funktion för att omdirigera trafik till en hackervärd, särskilt metoder för att avlyssna TCP-anslutningar. Men i praktiken har de sistnämnda metoderna ännu inte fått tillräcklig utveckling och behöver förbättras.

En anti-hacker bör veta att den enda räddningen från dataavlyssning är kryptering, d.v.s. kryptografiska skyddsmetoder. När man skickar ett meddelande över nätverket bör man i förväg anta att nätverkets kabelsystem är absolut sårbart, och alla hackare som ansluter till nätverket kommer att kunna hämta alla överförda hemliga meddelanden från det. Det finns två tekniker för att lösa detta problem - skapa ett VPN-nätverk och kryptera själva meddelandena. Alla dessa uppgifter är mycket enkla att lösa med hjälp av mjukvarupaketet. PGP Desktop Security(dess beskrivning finns till exempel i).

Original: Network sniffing
Författare: Paul Cobbaut
Publiceringsdatum: 12 mars 2015
Översättning: A. Panin
Datum för överföring: 1 april 2015

Kapitel 23. Fånga nätverkstrafik

Nätverksadministratören bör kunna använda en sniffer som wireshark eller tcpdump för att diagnostisera nätverksproblem.

Eleven kommer också ofta att behöva använda en sniffer för att förstå principerna för nätverkens funktion. Det här kapitlet beskriver lämpliga tekniker för att fånga nätverkstrafik.

23.1. Wireshark app

23.1.1. Installerar wireshark

Det här exemplet tillhandahåller ett kommando för att installera wireshark på distributioner som använder programvarupaket med tillägget .deb (inklusive Debian, Mint, Xubuntu och andra distributioner).

[e-postskyddad]: ~ # Läser paketlistor Klar Byggberoendeträd Lässtatusinformation Klar ... (utdata förkortas)

På distributioner som använder .rpm-programvarupaket som CentOS, RHEL och Fedora, kan yum användas för att installera wireshark.

# yum install wireshark Laddade plugins: fastestmirror Laddar spegelhastigheter från cachad värdfil ... (utgång trunkerad)

23.1.2. Välja ett nätverksgränssnitt

När du startar wireshark för första gången måste du välja ett nätverksgränssnitt. Du kommer att se en dialogruta som liknar den som visas i illustrationen nedan.

Det är troligt att det inte kommer att finnas några tillgängliga nätverksgränssnitt, för i vissa distributioner kan nätverkstrafiken fångas upp uteslutande av rotanvändaren. I det här fallet måste du starta wireshark som root med kommandot sudo wireshark.

Alternativt kan du följa de allmänna riktlinjerna och använda verktyget tcpdump eller något annat verktyg för att fånga upp trafik och skriva data till en fil. Alla uppfångade data kan analyseras senare med wireshark.

23.1.3. Minimera trafiken

I processen att avlyssna nätverkstrafik kan tusentals paket genereras på mycket korta tidsperioder. Uppenbarligen kommer denna mängd data att göra det svårt att analysera trafik. Försök att ta dig ur den här situationen genom att isolera din sniffer inom nätverket. Det föredragna alternativet är att avlyssna trafik som passerar genom nätverksgränssnittet i ett isolerat virtuellt nätverk under din fullständiga kontroll.

Om du lär dig verktyg för att fånga nätverkstrafik hemma är det en bra idé att stänga av alla nätverksprogram som körs på din dator och koppla bort din dator från andra datorer och från enheter som smartphones och surfplattor för att minimera trafiken.

Ändå är de viktigare verktygen för att minimera trafik filter, som kommer att diskuteras i nästa avsnitt.

23.1.4. Fångar upp trafik som genereras av pingverktyget

Jag körde en sniffer och fångade alla paket som överfördes över nätverket som ett resultat av att jag körde tre pingkommandon (det är inte meningsfullt att köra dessa kommandon som root):

[e-postskyddad]:~# ping -c2 ns1.paul.local PING ns1.paul.local (10.104.33.30) 56 (84) byte data. 64 byte från 10.104.33.30: icmp_req = 1 ttl = 64 tid = 0,010 ms 64 byte från 10.104.33.30: icmp_req = 2 ttl = 64 tid = 0,023 ms --- ns2 sänd statistik --- lokal paket. , 2 mottagna, 0 % paketförlust, tid 1001ms rtt min / avg / max / mdev = 0,010 / 0,016 / 0,023 / 0,007 ms [e-postskyddad]:~# ping -c3 linux-training.be PING linux-training.be (188.93.155.87) 56 (84) byte data. 64 byte från antares.ginsys.net (188.93.155.87): icmp_req = 1 ttl = 56 tid = 15,6 ms 64 byte från antares.ginsys.net (188.93.155.87): icmp_req = 56 x 4,6 ms = 56 ms från antares.ginsys.net (188.93.155.87): icmp_req = 3 ttl = 56 tid = 14,7 ms --- linux-training.be pingstatistik --- 3 paket överförda, 3 mottagna, 0% paketförlust, tid 2003ms rtt min / medel / max / mdev = 14,756 / 16,110 / 17,881 / 1,309 ms [e-postskyddad]:~# ping -c1 centos7.paul.local PING centos7.paul.local (10.104.33.31) 56 (84) byte data. 64 byte från 10.104.33.31: icmp_req = 1 ttl = 64 tid = 0,590 ms --- centos7.paul.local pingstatistik --- 1 paket överfört, 1 mottaget, 0 % paketförlust, tid 0 ms rtt min / medel / max / mdev = 0,590 / 0,590 / 0,590 / 0,000 ms

Totalt fångades över 200 paket från nätverket. Allt blir mycket mer uppenbart om du anger raden icmp i filterfältet och klickar på knappen "Apply".

23.1.5. Avlyssning av trafik som genereras av pingverktyg och dns-klient

Låt oss använda ett bra filter när vi arbetar med samma datafångstsession. Vi vill övervaka trafik relaterad till både dns-protokollet och icmp-protokollet, så vi måste ange namnen på de två nämnda protokollen i filterfältet.

För att fånga data relaterade till de två aktuella protokollen måste strängen "dns eller icmp" anges i filterfältet. Om du anger raden "dns och icmp" kommer ingen information om några paket att visas, eftersom det inte finns några paket relaterade till båda nämnda protokoll.

Om du tittar på illustrationen ovan kan du se att paket 25 och 26 har käll- och destinations-IP-adresser 10.104.33.30. Detta beror på att DNS-klienten körs på samma dator som DNS-servern.

En liknande situation observeras i fallet med paket 31 och 32, eftersom med hjälp av pingverktyget skickas paket till det arbetssystem som detta verktyg körs på.

23.1.6. Specifik IP-adress

I det här fallet filtrering av paket relaterade till DNS-protokollet och som innehåller en specifik IP-adress. Strängen "ip.addr == 10.104.33.30 och dns" används som ett filter. Direktivet och säger till applikationen att visa information om varje paket som uppfyller två villkor.

Paket 93 innehåller en DNS-fråga för att hämta typ A-posten för domänen linux-training.be. Paket 98 innehåller svaret från DNS-servern. Vad tror du hände efter att paket 93 skickades och innan paket 98 togs emot? Försök att svara på den här frågan innan du läser nästa avsnitt (när du arbetar med olika system är det alltid användbart att försöka förutsäga vad som kommer att hända och kontrollera att dina förutsägelser är korrekta).

23.1.7. Rambaserad filtrering

Den korrekta termen för ett uppfångat paket är frame (beroende på det faktum att vi fångar paket på lager 2 av OSI-nätverksmodellen). För att visa information om paket med specifika nummer, använd därför direktivet frame.number i filterfältet.

23.1.8. Granska innehållet i förpackningarna

Den mellersta rutan i snifferfönstret kan utökas. När du väljer en rad i den här panelen kan du se motsvarande bytevärden i fältet på den nedre panelen.

Illustrationen nedan visar mittrutan i snifferfönstret med den valda adressen till min bärbara dator.

Observera att ovanstående teknik fungerar utmärkt för att fånga trafik på ett enda nätverksgränssnitt. Om du avlyssnar trafik, till exempel genom att använda kommandot tcpdump -i any, kommer du att stöta på "Linux cooked capture"-paketinsamlingsmetoden.

23.1.9. Fler filterexempel

Du kan kombinera de två protokollbeskrivningarna genom att använda det logiska eller ("OR") direktivet mellan dem. Illustrationen nedan visar hur man endast fångar ARP- och BOOTP- (eller DHCP)-paket.

Och följande illustration visar en metod för att fånga DNS-specifika paket som innehåller en specifik IP-adress.

23.2. Tcpdump verktyg

När du arbetar med systemets kommandoradsgränssnitt kan paketfångning utföras med hjälp av verktyget tcpdump. Nedan finns några exempel på dess användning.

Genom att använda kommandot tcpdump host $ ip visas information om all trafik som är associerad med en specifik värd (i detta fall med IP-adressen 192.168.1.38).

[e-postskyddad]: ~ # tcpdump värd 192.168.1.38 tcpdump: utförlig utdata undertryckt, använd -v eller -vv för full protokollavkodningslyssning på eth0, länktyp EN10MB (Ethernet), fångststorlek 96 byte

Trafik som uteslutande är relaterad till ssh-protokollet (TCP-protokoll, port 22) kan avlyssnas med kommandot tcpdump tcp port $ port. Utdatarader har trunkerats till 76 tecken för bättre läsbarhet.

[e-postskyddad]: ~ # tcpdump tcp-port 22 tcpdump: utförlig utgång undertryckt, använd -v eller -vv för fullständig protokollavkodningslyssning på eth1, länktyp EN10MB (Ethernet), inspelningsstorlek 96 byte 14: 22: 20.716313 IP deb503.local. > rhel53.local.ssh: P 666050963: 66605 14: 22: 20.719936 IP rhel53.local.ssh> deb503.local.37973: P 1:49 (48) ack 48 14: 52.02.7 IP 48 14: 02.72 IP deb503.local.37973: P 49: 113 (64) ack 14: 22: 20.721321 IP rhel53.local.ssh> deb503.local.37973: P 113: 161 (48) ack 14: 302 IPal 37973> rhel53.local.ssh:. ack 161 vinst 200 14: 22: 20.722492 IP rhel53.local.ssh> deb503.local.37973: P 161: 225 (64) ack 14: 22: 20.760602 IP 337.local ack 225 win 200 14: 22: 23.108106 IP deb503.local.54424> ubuntu910.local.ssh: P 467252637: 46 14: 22: 23.116804 IP ubuntu910.501sh.8: P40local.501sh.8 ) ack 14: 22: 23.116844 IP deb503.local.54424> ubuntu910.local.ssh:. ack 81 win 2 ^ C 10 paket fångade 10 paket mottagna av filter 0 paket släpps av kärnan

Samma operation, men med att skriva infångad data till en fil, kan utföras med kommandot tcpdump -w $ filnamn.

[e-postskyddad]: ~ # tcpdump -w sshdump.tcpdump tcp port 22 tcpdump: lyssnar på eth0, länktyp EN10MB (Ethernet), infångningsstorlek 96 byte ^ C 17 paket fångade 17 paket mottagna av filter 0 paket släpps av kärnan

Kommandot tcpdump -r $ filnamn kan visa innehållet i filen som skapades i föregående exempel.

[e-postskyddad]: ~ # tcpdump -r sshdump.tcpdump

Många andra exempel på att använda det här verktyget finns på tcpdump-mansidan.

23.3. Praktisk aktivitet: Avlyssning av nätverkstrafik

23.4. Korrekt praxis: Avlyssning av nätverkstrafik

1. Installera wireshark på ditt system (körs inte i en virtuell maskin).

På Debain / Ubuntu-distributioner: aptitude installera wireshark

På Red Hat / Mandriva / Fedora distributioner: mums installera wireshark

2. Använd pingverktyget för att generera trafik mellan din och någon annan dator.

Pinga $ ip_address

3. Börja fånga nätverkstrafik.

(sudo) wireshark

Välj ditt nätverksgränssnitt (förmodligen eth0)

4. Använd filtret för att endast visa information om de paket som innehåller svar på förfrågningar från pingverktyget.

Skriv "icmp" (utan citattecken) i filterfältet och klicka på knappen "Apply".

5. Skicka nu domännamnet (som www.linux-training.be) för att pinga och försök fånga DNS-förfrågan och svarspaket. Vilken DNS-server användes? Användes TCP- eller UDP-protokollet för att överföra begäran och svaret?

Starta sniffern först.

Ange "dns" i filterfältet och klicka på knappen "Apply".

[e-postskyddad]: ~ # ping www.linux-training.be PING www.linux-training.be (88.151.243.8) 56 (84) databyte. 64 byte från fosfor.openminds.be (88.151.243.8): icmp_seq = 1 ttl = 58 tid = 14,9 ms 64 byte från fosfor.openminds.be (88.151.243.8): icmp_seq = 2 ttl = 58 ms = 58 ms --- www.linux-training.be ping statistik --- 2 paket överförda, 2 mottagna, 0% paketförlust, tid 1002ms rtt min / avg / max / mdev = 14.984 / 15.539 / 16.095 / 0.569 ms

Wireshark-fönstret ska se likadant ut.

Baserat på informationen från wireshark-applikationsfönstret kan vi dra slutsatsen att DNS-begäran överfördes med ett UDP-paket, varefter det är lätt att svara på frågorna.

6. Hitta en stängd webbplats som har ett formulär för begäran om lösenord. Försök att logga in med användarnamnet "paul" och lösenordet "hunter2" medan sniffern är igång. Försök nu att hitta det angivna användarnamnet och lösenordet i data som fångas av sniffern.

Dela detta