Kako presresti saobraćaj. Najbolji alati za testiranje olovke: njuškalo i manipulacija paketima

Javne Wi-Fi mreže su također postale veoma popularne u današnje vrijeme. Ima ih u restoranima, teretanama, tržnim centrima, podzemnim željeznicama, hotelima, privatnim bolnicama i klinikama, stanovima i kondominijumima - mogu se naći gotovo svugdje gdje se okuplja dosta ljudi.

Ove mreže imaju posebnost - često su otvorene Wi-Fi mreže na koje nije potrebna lozinka za povezivanje. Postoje li dodatna sigurnosna pravila za rad sa takvim mrežama?

Da, kada koristite otvorenu Wi-Fi mrežu, morate dobro razumjeti da:

  • svi podaci se prenose radio talasima, odnosno za razliku od žice kojoj ne može svako pristupiti, radio talase može presresti svako ko je u dometu
  • u otvorenim mrežama podaci nisu šifrirani

Sa prvom tačkom, mislim da je sve jasno: ako je neko sa računarom i Wi-Fi karticom dovoljno blizu, onda može uhvatiti i sačuvati sav promet koji se prenosi između bežične pristupne tačke i svih njenih klijenata.

Što se tiče druge točke, potrebno je razjasniti šifriranje prenesenih podataka. Na primjer, ako otvorite bilo koju web lokaciju koja koristi HTTPS protokol (tj. siguran protokol), kao što je web-mjesto, tada su podaci koji se prenose na i sa ove stranice na vas šifrirani. Ako otvorite web stranicu koristeći HTTP protokol, tada se svi preneseni podaci: koje stranice ste posjetili, koje komentare ste ostavili, koje kolačiće je vaš web pretraživač primio - ovi podaci se prenose u nešifriranom obliku. Dakle, ako ste povezani na Wi-Fi pristupnu tačku za koju je potrebna lozinka, onda se preneseni promet ponovo šifrira. Odnosno, čak i ako otvorite web stranicu na HTTPS protokolu, preneseni promet se šifrira dva puta (prvi put pri prijenosu s web preglednika na web server i u suprotnom smjeru, drugi put pri prijenosu sa vašeg uređaja na web server Pristupna tačka, kao i obrnuti smjer). A ako otvorite web stranicu na HTTP protokolu, tada se preneseni promet šifrira samo jednom (samo tokom prijenosa sa vašeg uređaja na pristupnu tačku i obrnuto).

Ali otvorene pristupne tačke ne šifriraju promet. Iz ovoga proizilazi: ako koristite otvorenu pristupnu tačku i otvorite web stranicu koja radi na HTTP protokolu, tada se vaši podaci prenose u čistom tekstu i svako u vašoj blizini može ih snimiti i sačuvati. Ako otvorite stranicu na HTTPS protokolu, onda su ti podaci šifrirani, međutim, i dalje je vidljivo koje ste stranice otvorili (iako se ne vidi koje stranice i šta ste unijeli, na primjer, koje komentare ste ostavili).

Dakle: morate imati na umu da su otvorene bežične mreže sklone prisluškivanju.

Presretanje saobraćaja u otvorenim Wi-Fi mrežama

Za uspješan napad potreban vam je Linux računar (na primjer, sa Kali Linuxom ili BlackArch), kao i Wi-Fi kartica.

Počnimo gledajući nazive bežičnih sučelja:

Kao što vidite, imam nekoliko bežičnih interfejsa, koje ću koristiti wlp0s20f0u2.

Bežično sučelje prenosimo u nadzorni način rada:

Sudo ip link set INTERFACE down sudo iw INTERFACE set monitor kontrola sudo ip link set INTERFACE up

U prethodnim naredbama, umjesto INTERFACE potrebno je da unesete naziv koji bežični interfejs ima u vašem sistemu. Na primjer, za wlp0s20f0u2 naredbe izgledaju ovako:

Sudo ip link set wlp0s20f0u2 down sudo iw wlp0s20f0u2 set monitor kontrola sudo ip link set wlp0s20f0u2 gore

Otvorite snimljenu datoteku podataka u Wiresharku.

Da bismo istakli različite podatke, potrebni su nam Wireshark filteri. Ovdje ću pokazati primjer korištenja samo nekih filtera, preporučuje se da istražite veliku kolekciju korisnih Wireshark filtera.

Da biste procijenili kvalitetu snimanja, možete početi s filterima koji prikazuju rezultate analize TCP protokola.

Na primjer:

Tcp.analysis.duplicate_ack_num == 1

Ovaj filter daje informacije o okvirima sa ACK zastavicom koji su duplikati. Veliki broj ovakvih okvira može ukazivati ​​na probleme u komunikaciji između Klijenta i pristupne tačke.

Filter za prikaz okvira za koje prethodni segment nije snimljen:

Tcp.analysis.ack_lost_segment

To je normalno na početku prikupljanja podataka – pošto se informacije ne presreću od samog početka. Ali ako se ova greška često javlja u budućnosti, onda ste predaleko od pristupne tačke ili klijenata i ne hvatate dio podataka koje oni prenose.

Za prikaz okvira koji se ponovo šalju (ponovno šalju):

Tcp.analysis.retransmission

Veliki broj ovakvih okvira može ukazivati ​​na to da je veza između Klijenta i AP-a loša i često moraju više puta slati iste podatke.

Korištenje filtera

Možete vidjeti ARP promet - uz njegovu pomoć zgodno je analizirati koliko je uređaja trenutno spojeno na lokalnu mrežu, koje IP adrese imaju i koje MAC adrese. ...

Korištenje filtera

možete vidjeti sve poslane DNS zahtjeve.

Zahvaljujući ovim zahtjevima možete saznati koje stranice su korisnici posjetili (čak i ako te stranice koriste HTTPS!), kao i na koje online servise su zahtjevi upućeni.

Na primjer, na snimku ekrana možete vidjeti adrese online kina Netflix, Facebook, razne Google usluge.

Za filtriranje HTTP prometa, filter:

Ovdje možete pronaći mnogo zanimljivih informacija. Na primjer, možete vidjeti zahtjeve za usluge i prenesene podatke, uključujući API ključeve, identifikatore uređaja itd.

Možete vidjeti posjećene URL-ove sa svim proslijeđenim parametrima:

Fajlovi preuzeti i otvoreni na Internetu su vidljivi:

Možete sačuvati bilo koju prenesenu datoteku. Da biste to učinili, odaberite mišem paket koji ga sadrži (1), zatim u srednjem oknu, koji sadrži detaljne informacije, skrolujte do samog dna da biste pronašli polje podataka i kliknite desnim tasterom miša na njega da biste otvorili kontekstni meni (2), u kontekstualnom meniju izaberite Izvezi odabrane bajtove paketa(3) - Izvezite bajtove odabranog paketa:

Unesite naziv datoteke, odaberite lokaciju i spremite je.

Neko ažurira Windows:

Kolačići postavljeni korisniku ili kolačići koji su mu prenijeti također su vidljivi:

Korištenje filtera

Http.cookie

možete vidjeti HTTP zahtjeve u kojima su kolačići proslijeđeni.

I sa filterom

Http.set_cookie

možete vidjeti zahtjeve u kojima je server postavio kolačiće u pretraživač korisnika.

Susjedi preuzimaju čudne torente:

Podaci preneseni POST metodom su također vidljivi:

Za traženje bilo koje otpremljene slike:

Http.content_type sadrži "image"

Za traženje određenih vrsta slika:

Http.content_type sadrži "gif" http.content_type sadrži "jpeg" http.content_type sadrži "png"

Za traženje datoteka određene vrste:

Http.content_type sadrži "text" http.content_type sadrži "xml" http.content_type sadrži "html" http.content_type sadrži "json" http.content_type sadrži "javascript" http.content_type sadrži "x-www-form-urlencode" http. content_type sadrži "komprimiran" http.content_type sadrži "application"

Pretražuje Wireshark za zahtjeve za preuzimanje datoteka određenog tipa. Na primjer, za traženje prenesenih ZIP arhiva:

Http.request.uri sadrži "zip"

Umjesto http.request.uri filteri se mogu koristiti za veću preciznost http.request.uri.path ili http.request.uri.query, na primjer, za traženje zahtjeva za preuzimanje JPG datoteka (linkovi do slika):

Http.request.uri.path sadrži "jpg"

Filter koji prikazuje samo podatke dostavljene POST metodom:

Http.request.method == "POST"

Filter koji prikazuje samo podatke poslane metodom GET:

Http.request.method == "GET"

Tražite zahtjeve prema određenoj web lokaciji (host):

Http.host == " "

Tražite zahtjeve za određenu web lokaciju prema dijelu imena:

Http.host sadrži "here.partial.name"

Zaključak

Sada se broj aplikacija i web lokacija koje ne koriste enkripciju ubrzano smanjuje. Stoga se opasnost od takvog presretanja svake godine smanjuje. Ipak, postoji.

Čak i web lokacije koje koriste HTTPS mogu spontano otkriti podatke. Na primjer:

Vidi se da se podaci na booking.com prenose od korisnika u nešifriranom obliku, pa se ovaj link može presresti.

iPhone aplikacija neprestano preuzima neke (audio?) datoteke bez korištenja sigurne veze:

Popularni (u nekim regijama) qq.com ili ne koristi enkripciju, ili koristi vlastiti algoritam:

Zajamčena zaštita od takvog presretanja je korištenje pouzdane VPN usluge. Pouzdan VPN servis može se smatrati onom koji ste sami postavili, ili VPN vaše korporativne mreže.

Metode presretanja mrežnog saobraćaja

Slušanje mreže pomoću programa mrežnog analizatora je prvi, najlakši način presretanja podataka.

Za zaštitu od prisluškivanja mreže koriste se posebni programi, na primjer, AntiSniff, koji mogu otkriti računare na mreži koji su zauzeti prisluškivanjem mrežnog prometa.

Antisnifer programi za rješavanje svojih problema koriste poseban znak prisutnosti prislušnih uređaja u mreži - mrežna kartica sniffer računara mora biti u posebnom režimu slušanja. Dok su u režimu slušanja, mrežni računari na poseban način reaguju na IP datagrame poslate na adresu hosta koji se testira. Na primjer, hostovi koji slušaju obično upravljaju svim dolaznim prometom, ne ograničavajući se na datagrame poslane na adresu hosta. Postoje i drugi znakovi sumnjivog ponašanja domaćina koje AntiSniff može prepoznati.

Bez sumnje, prisluškivanje je vrlo korisno sa stanovišta napadača, jer vam omogućava da dobijete mnogo korisnih informacija - lozinke koje se prenose preko mreže, adrese mrežnih računara, povjerljive podatke, pisma i tako dalje. Međutim, jednostavno prisluškivanje sprječava hakera da ometa mrežnu komunikaciju između dva hosta kako bi modificirao i mijenjao podatke. Za rješavanje takvog problema potrebna je sofisticiranija tehnologija.

Da bi presreo i zatvorio proces mrežne komunikacije između dva hosta A i B, napadač može prevariti IP adrese hostova u interakciji sa svojom vlastitom IP adresom slanjem lažnih ARP (Address Resolution Protocol) poruka hostovima A i B.

Rice. 1 Lažni ARP zahtjevi

Pogledajmo kako haker može koristiti ARP za presretanje mrežne komunikacije između hostova A i B.

Da bi presreo mrežni saobraćaj između hostova A i B, haker nameće svoju IP adresu ovim hostovima tako da A i B koriste ovu lažnu IP adresu prilikom razmjene poruka. Da bi nametnuo svoju IP adresu, haker izvodi sljedeće operacije.

  • Napadač određuje MAC adrese hostova A i B, na primjer, koristeći naredbu nbtstat iz W2RK paketa.
  • Napadač šalje poruke na identificirane MAC adrese hostova A i B, koje su lažni ARP odgovori na zahtjeve za razrješenje IP adresa hostova u MAC adrese računara. Host A je obavešten da IP adresa hosta B odgovara MAC adresi računara napadača; hostu B se kaže da IP adresa hosta A takođe odgovara MAC adresi napadača.
  • Domaćini A i B unose primljene MAC adrese u svoje ARP keš memorije i zatim ih koriste za slanje poruka jedni drugima. Pošto IP adrese A i B odgovaraju MAC adresi računara napadača, domaćini A i B, ne sumnjajući ništa, komuniciraju preko posrednika koji je sposoban da radi šta god želi sa njihovim porukama.

Da bi se branili od takvih napada, administratori mreže moraju održavati bazu podataka sa tabelom mapiranja MAC adresa i IP adresa svojih mrežnih računara.

Na UNIX mrežama, ovaj tip lažnog ARP napada može se postići korišćenjem sistemskih uslužnih programa za praćenje i kontrolu mrežnog saobraćaja, kao što je arpredirect. Nažalost, čini se da na Windows mrežama takvi robusni uslužni programi nisu implementirani. Na primjer, uslužni program GrabitAII dostupan je od NTsecurity kao alat za preusmjeravanje prometa između mrežnih hostova. Međutim, elementarni test funkcionalnosti uslužnog programa GrabitAII pokazuje da je još uvijek daleko od potpunog uspjeha u implementaciji svojih funkcija.

Da bi presreo mrežni promet, napadač može prevariti stvarnu IP adresu mrežnog rutera svojom vlastitom IP adresom, na primjer, koristeći lažne ICMP Redirect poruke. Host A mora, prema RFC-1122, protumačiti primljenu Redirect poruku kao odgovor na datagram poslat drugom hostu, na primjer, B. Host A određuje svoje akcije na poruci Preusmjeravanja na osnovu sadržaja primljene Redirect poruke, i ako je preusmjeravanje datagrama postavljeno u Preusmjeravanje od A do B na novoj ruti, to će učiniti host A.

Rice. 2 Lažno usmjeravanje

Da bi izvršio lažno rutiranje, napadač mora znati neke detalje o organizaciji lokalne mreže u kojoj se nalazi host A, posebno IP adresu rutera preko kojeg se promet šalje od hosta A do B. Znajući to, napadač će generisati IP datagram u kojem je IP - adresa pošiljaoca definisana kao IP adresa rutera, a odredište je host A. Takođe, datagram uključuje ICMP Redirect poruku sa novim adresnim poljem rutera postavljenim kao IP adresa kompjuter napadača. Po prijemu takve poruke, Host A će poslati sve poruke na IP adresu računara napadača.

Da biste se zaštitili od takvog napada, onemogućite (na primjer, korištenjem vatrozida) obradu ICMP poruka za preusmjeravanje na hostu A. Ovi uslužni programi mogu pronaći dodatnu rutu koja se pojavila na lokalnoj mreži koja nije bila predviđena tokom instalacije, ako je, naravno, mrežni administrator na oprezu.

Gore navedeni primjeri presretanja (kojima su mogućnosti napadača daleko od ograničenih) uvjeravaju u potrebu zaštite podataka koji se prenose preko mreže ako podaci sadrže povjerljive informacije. Jedini način zaštite od presretanja mrežnog saobraćaja je korištenje programa koji implementiraju kriptografske algoritme i protokole šifriranja, te sprječavaju otkrivanje i zamjenu povjerljivih informacija. Da bi se riješili takvi problemi, kriptografija pruža sredstvo za šifriranje, potpisivanje i provjeru autentičnosti poruka koje se prenose preko sigurnih protokola.

Praktičnu implementaciju svih kriptografskih metoda zaštite razmjene informacija obezbjeđuju VPN (Virtual Private Network) mreže.

Otimanje TCP veze

Najsofisticiraniji napad presretanja mrežnog saobraćaja je TCP otmica, kada haker prekida trenutnu komunikacijsku sesiju sa hostom generisanjem i slanjem TCP paketa napadnutom hostu. Nadalje, koristeći mogućnosti TCP protokola za vraćanje prekinute TCP veze, haker presreće prekinutu komunikacijsku sesiju i nastavlja je umjesto prekinutog klijenta.

Razvijeno je nekoliko efikasnih uslužnih programa za izvođenje napada otmice TCP veze, ali svi su implementirani za Unix platformu, a ovi uslužni programi su predstavljeni samo u izvornom kodu na web stranicama. Stoga su napadi presretanja TCP veze od male koristi.

TCP (Transmission Control Protocol) je jedan od osnovnih protokola OSI transportnog sloja koji omogućava uspostavljanje logičkih veza preko virtuelnog komunikacijskog kanala. Preko ovog kanala se prenose i primaju paketi uz registraciju njihovog niza, kontroliše se tok paketa, organizuje ponovni prenos oštećenih paketa, a na kraju sesije komunikacioni kanal se prekida. TCP je jedini osnovni protokol u TCP/IP porodici koji ima napredni sistem identifikacije poruka i veze.

Pregled softverskih paketnih sniffera

Svi softverski njuškači mogu se grubo podijeliti u dvije kategorije: njuškači koji podržavaju pokretanje iz komandne linije i njuškači koji imaju grafičko sučelje. Istovremeno, napominjemo da postoje njuškari koji kombinuju obje ove mogućnosti. Osim toga, snifferi se međusobno razlikuju po protokolima koje podržavaju, po dubini analize presretnutih paketa, po mogućnosti konfigurisanja filtera, kao i po mogućnosti kompatibilnosti sa drugim programima.

Obično se prozor bilo kojeg sniffera sa grafičkim sučeljem sastoji od tri područja. Prvi prikazuje sažetak uhvaćenih paketa. Tipično, ovo područje prikazuje minimum polja, i to: vrijeme hvatanja paketa; IP adrese pošiljaoca i primaoca paketa; Izvorne i odredišne ​​MAC adrese paketa, adrese izvornog i odredišnog porta; tip protokola (mrežni, transportni ili aplikacijski sloj); neke sažete informacije o presretnutim podacima. Drugo područje prikazuje statističke informacije o pojedinačnom odabranom paketu, a na kraju, u trećem dijelu, paket je predstavljen u heksadecimalnom ili ASCII obliku znakova.

Gotovo svi njuškari paketa omogućavaju vam analizu dekodiranih paketa (zbog čega se njuškači paketa nazivaju i analizatori paketa ili analizatori protokola). Sniffer distribuira uhvaćene pakete po sloju i protokolu. Neki njuškari paketa mogu prepoznati protokol i prikazati presretnute informacije. Ova vrsta informacija se obično prikazuje u drugom dijelu prozora za njuškanje. Na primjer, bilo koji sniffer je sposoban prepoznati TCP protokol, a napredni njuškari mogu odrediti koja aplikacija generiše ovaj promet. Većina analizatora protokola prepoznaje preko 500 različitih protokola i može ih opisati i dekodirati imenom. Što više informacija njuškalo može da dekodira i prikaže na ekranu, to će manje morati da dekodira ručno.

Jedan od problema sa kojima se mogu suočiti analizatori paketa je nemogućnost da se ispravno identifikuje protokol koristeći port koji nije podrazumevani port. Na primjer, radi poboljšanja sigurnosti, neke dobro poznate aplikacije mogu biti konfigurirane da koriste portove koji nisu zadani. Dakle, umjesto tradicionalnog porta 80, rezerviranog za web server, ovaj server se može prisilno rekonfigurirati na port 8088 ili na bilo koji drugi. Neki analizatori paketa u takvoj situaciji nisu u mogućnosti da ispravno odrede protokol i prikažu samo informacije o protokolu nižeg sloja (TCP ili UDP).

Postoje softverski snifferi koji dolaze sa softverskim analitičkim modulima kao dodaci ili ugrađeni moduli koji vam omogućavaju da kreirate izvještaje s korisnim analitičkim informacijama o presretnutom prometu.

Još jedna karakteristika većine softvera za njuškanje paketa je mogućnost konfigurisanja filtera prije i nakon hvatanja prometa. Filteri odabiru određene pakete iz općeg prometa prema datom kriteriju, što vam omogućava da se riješite nepotrebnih informacija prilikom analize prometa.

Mnogi korisnici čak i ne shvaćaju da se ovi podaci mogu lako presresti popunjavanjem login i lozinke prilikom registracije ili autorizacije na zatvorenom Internet resursu i pritiskom na ENTER. Vrlo često se prenose preko mreže u nezaštićenom obliku. Stoga, ako stranica na koju se pokušavate prijaviti koristi HTTP protokol, tada je vrlo lako uhvatiti ovaj promet, analizirati ga pomoću Wiresharka i zatim koristiti posebne filtere i programe za pronalaženje i dešifriranje lozinke.

Najbolje mjesto za presretanje lozinki je u jezgru mreže, gdje promet svih korisnika odlazi na zatvorene resurse (na primjer, poštu) ili ispred rutera za pristup Internetu, prilikom registracije na eksternim resursima. Postavili smo ogledalo i spremni smo da se osjećamo kao haker.

Korak 1. Instalirajte i pokrenite Wireshark da biste uhvatili promet

Ponekad je dovoljno odabrati samo sučelje preko kojeg planiramo hvatati promet i kliknuti na dugme Start. U našem slučaju, mi radimo snimanje preko bežične mreže.

Započelo je snimanje saobraćaja.

Korak 2. Filtriranje uhvaćenog POST prometa

Otvaramo pretraživač i pokušavamo se prijaviti na bilo koji resurs koristeći korisničko ime i lozinku. Po završetku procesa autorizacije i otvaranja stranice, prestajemo hvatati promet u Wiresharku. Zatim otvorite analizator protokola i vidite veliki broj paketa. U ovoj fazi većina IT profesionalaca odustaje jer ne znaju šta dalje. Ali znamo i zanimaju nas specifični paketi koji sadrže POST podatke koji se generišu na našem lokalnom računaru prilikom popunjavanja obrasca na ekranu i šalju se na udaljeni server kada kliknete na dugme "Prijava" ili "Ovlašćenje" u Pretraživač.

Uvedite poseban filter u prozor za prikaz uhvaćenih paketa: http.zahtjev.metoda == “POŠTA "

I umjesto hiljadu paketa, vidimo samo jedan sa podacima koje tražimo.

Korak 3. Pronađite korisničko ime i lozinku

Brz desni klik miša i odabir stavke iz menija Pratite TCP Steam


Nakon toga, u novom prozoru će se pojaviti tekst koji u kodu vraća sadržaj stranice. Pronađimo polja "password" i "user", koja odgovaraju lozinki i korisničkom imenu. U nekim slučajevima, oba polja će biti laka za čitanje i čak neće biti šifrirana, ali ako pokušavamo uhvatiti promet kada pristupamo vrlo poznatim resursima kao što su Mail.ru, Facebook, Vkontakte, itd., tada će lozinka biti kodirana :

HTTP / 1.1 302 pronađeno

Server: Apache / 2.2.15 (CentOS)

X-Powered-By: PHP / 5.3.3

P3P: CP = "NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

Set-Cookie: lozinka = ; ističe = Thu, 07-Nov-2024 23:52:21 GMT; put = /

Lokacija: loggedin.php

Dužina sadržaja: 0

Veza: zatvorena

Content-Type: text / html; skup znakova = UTF-8

Dakle, u našem slučaju:

Korisničko ime: networkguru

Lozinka:

Korak 4. Određivanje tipa kodiranja za dešifrovanje lozinke

Idemo, na primjer, na stranicu http://www.onlinehashcrack.com/hash-identification.php#res i unesemo svoju lozinku u prozor za identifikaciju. Dobio sam listu protokola kodiranja po prioritetu:

Korak 5. Dešifriranje korisničke lozinke

U ovoj fazi možemo koristiti uslužni program hashcat:

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

Na izlazu smo dobili dešifrovanu lozinku: simplepassword

Dakle, koristeći Wireshark, možemo ne samo riješiti probleme u radu aplikacija i servisa, već se i okušati kao haker, presrećući lozinke koje korisnici unose u web forme. Također možete saznati lozinke za korisničke poštanske sandučiće koristeći jednostavne filtere za prikaz:

  • POP protokol i filter izgledaju ovako: pop.request.command == "USER" || pop.request.command == "PROLAZI"
  • IMAP i filter će biti: imap.request sadrži "login"
  • SMTP protokol i morat ćete unijeti sljedeći filter: smtp.req.command == "AUTH"

i ozbiljniji uslužni programi za dešifriranje protokola za kodiranje.

Korak 6. Šta ako je promet šifriran i koristi HTTPS?

Postoji nekoliko opcija za odgovor na ovo pitanje.

Opcija 1. Povežite se da biste prekinuli vezu između korisnika i servera i uhvatili promet u trenutku uspostavljanja veze (SSL rukovanje). Kada se veza uspostavi, možete presresti ključ sesije.

Opcija 2. Možete dešifrirati HTTPS promet koristeći log datoteku ključa sesije koju je snimio Firefox ili Chrome. Da biste to uradili, pretraživač mora biti konfigurisan da upiše ove ključeve za šifrovanje u datoteku evidencije (primer zasnovan na FireFox-u) i trebalo bi da dobijete ovu datoteku evidencije. U suštini, morate ukrasti datoteku ključa sesije sa tvrdog diska drugog korisnika (što je nezakonito). Pa, onda uhvatite promet i upotrijebite rezultirajući ključ da ga dešifrujete.

Pojašnjenje. Govorimo o web pretraživaču osobe koja pokušava ukrasti lozinku. Ako mislimo na dešifriranje vlastitog HTTPS prometa i želimo vježbati, onda će ova strategija funkcionirati. Ako pokušavate dešifrirati HTTPS promet drugih korisnika bez pristupa njihovim računarima, to neće uspjeti – to je i enkripcija i privatnost.

Nakon što dobijete ključeve za opciju 1 ili 2, potrebno ih je registrovati u WireSharku:

  1. Idite na Edit - Preferences - Protocols - SSL meni.
  2. Postavite zastavicu "Ponovo sastavite SSL zapise koji obuhvataju više TCP segmenata".
  3. "RSA lista ključeva" i kliknite na Uredi.
  4. U sva polja unosimo podatke i ključem upisujemo putanju u datoteku

WireShark može dešifrirati pakete koji su šifrirani pomoću RSA algoritma. Ako se koriste DHE/ECDHE, FS, ECC algoritmi, njuškalo nije naš pomoćnik.

Opcija 3. Dobijte pristup web serveru koji koristi korisnik i preuzmite ključ. Ali ovo je još veći izazov. U korporativnim mrežama, u svrhu otklanjanja grešaka u aplikacijama ili filtriranja sadržaja, ova opcija je implementirana na zakonskoj osnovi, ali ne u svrhu presretanja korisničkih lozinki.

BONUS

VIDEO: Wireshark njuškanje paketa korisničkih imena, lozinki i web stranica


Ova lekcija opisuje tehnologije hakovanja mreže zasnovane na hvatanju mrežnih paketa. Hakeri koriste takve tehnologije da prisluškuju mrežni promet kako bi ukrali vrijedne informacije, organizirali presretanje podataka u svrhu napada čovjeka u sredini, presretali TCP veze koje omogućavaju, recimo, lažiranje podataka i obavljanje drugih podjednako interesantne akcije. Nažalost, većina ovih napada u praksi se implementira samo na Unix mreže, za koje hakeri mogu koristiti i posebne uslužne programe i Unix sistemske alate. Windows mreže, očigledno, zaobilaze hakeri, a mi smo primorani da se ograničimo na opisivanje alata za presretanje podataka pomoću programa njuškanja dizajniranih da trivijalno slušaju mrežne pakete. Ipak, ne treba zanemariti barem teorijski opis ovakvih napada, posebno antihakerskih, jer će poznavanje primijenjenih hakerskih tehnologija pomoći u sprječavanju mnogih nevolja.

Mrežno njuškanje

Za njuškanje Ethernet mreža obično se koriste mrežne kartice koje se stavljaju u režim slušanja. Za slušanje Ethernet mreže potrebno je da se računar koji radi s njuškajućim programom poveže na mrežni segment, nakon čega sav mrežni promet koji šalju i primaju računari u ovom segmentu mreže postaje dostupan hakeru. Još je lakše presresti promet radio mreža pomoću posrednika bežične mreže - u ovom slučaju ne morate čak ni tražiti mjesto za spajanje na kabel. Alternativno, napadač može da se poveže na telefonsku liniju koja povezuje računar sa internet serverom, pronalazeći pogodno mesto za to (telefonske linije se obično polažu u podrumima i drugim malo posećenim mestima bez ikakve zaštite).

Da bismo demonstrirali tehnologiju njuškanja, koristit ćemo vrlo popularan program njuškanja SpyNet koji se može naći na mnogim web stranicama. Službena web stranica programa SpyNet nalazi se na http://members.xoom.com/layrentiu2/, gdje možete preuzeti demo verziju programa.

Program SpyNet sastoji se od dve komponente - CaptureNet i PipeNet... Program CaptureNet omogućava presretanje paketa koji se prenose preko Ethernet mreže na nivou mreže, tj. u obliku Ethernet okvira. Program PipeNet Omogućava vam da sastavite Ethernet okvire u pakete sloja aplikacije, oporavljajući, na primjer, poruke e-pošte, HTTP (komunikacija s web serverom) poruke i druge funkcije.

Nažalost, u demo verziji SpyNet mogućnosti PipeNet ograničeni su na demo verziju HTTP paketa, tako da ne možemo pokazati kako funkcionira SpyNet u cijelosti. Međutim, mi ćemo pokazati mogućnosti njuškanja mreže. SpyNet na primjeru naše eksperimentalne mreže, prijenos tekstualne datoteke sa hosta Mač-2000 po domaćinu Alex-Z koristeći običan Windows Explorer. Istovremeno na računaru A1ex-1 pokrenućemo program CaptureNet, koji će presresti prenesene pakete i omogućiti vam da pročitate sadržaj prenesene datoteke u Ethernet okvirima. Na sl. 1 prikazuje tekst tajne poruke u datoteci secret.txt; pokušat ćemo pronaći ovaj tekst u snimljenim Ethernet okvirima.

Rice. 1. Tekst tajne poruke u prozoru Notepad

Slijedite ove korake za snimanje Ethernet okvira.

Na kompjuteru Alex-Z pokrenite program CaptureNet... U prikazanom radnom prozoru programa izaberite komandu menija Capture * Start(Capture * Start) i započnite proces snimanja mrežnih okvira.

Koristeći Windows Explorer, kopirajte datoteku security.txt sa svog računara Mač-2000 na A1ex-3.

Nakon prijenosa datoteke secret.txt, izaberite komandu menija Snimanje * Stop(Capture * Stop) i zaustavi proces presretanja.

Uhvaćeni Ethernet okviri će biti prikazani u desnom dijelu radnog prozora programa. CaptureNet(Sl. 2), pri čemu svaki red u gornjoj listi predstavlja Ethernet okvir, a ispod liste je prikazan sadržaj odabranog okvira.

Rice. 2. Ethernet okvir sadrži tekst tajne poruke

Pregledajući listu presretnutih okvira, lako možemo pronaći onaj koji sadrži tekst Ovo je jako velika tajna koju smo prenijeli (Ovo je jako velika tajna).

Naglasimo da je ovo najjednostavniji primjer, kada je sav presretnuti mrežni promet zabilježen. Program CaptureNet omogućava vam da presretnete pakete koji se šalju putem određenih protokola i na određene host portove, odaberete poruke sa određenim sadržajem i akumulirate presretnute podatke u datoteci. Tehnika izvođenja takvih radnji je jednostavna, a možete je savladati koristeći sistem pomoći programa. SpyNet.

Pored primitivnog prisluškivanja, hakeri imaju na raspolaganju sofisticiranije alate za presretanje podataka. U nastavku je dat kratak pregled takvih metoda, iako u teoretskom aspektu. Razlog je taj što je za Windows mreže praktična implementacija napada prisluškivanja podataka izuzetno ograničena, a skup pouzdanih alata za prisluškivanje napada prilično oskudan.

Metode presretanja mrežnog saobraćaja

Njuškanje mreže pomoću mrežnih njuškala poput onog iznad CaptureNet, je prvi, najlakši način za presretanje podataka. Osim toga SpyNet Za njuškanje mreže koriste se mnogi alati, prvobitno razvijeni za analizu mrežne aktivnosti, dijagnosticiranje mreža, odabir saobraćaja prema određenim kriterijima i druge zadatke administracije mreže. Primjer takvog programa je tcpdump (http://www.tcpdump.org), što vam omogućava da zabilježite mrežni promet u poseban dnevnik za kasniju analizu.

Za zaštitu od prisluškivanja mreže koriste se posebni programi, npr. AntiSniff (http://www.securitysoftwaretech.com/antisniff), koji su u stanju da identifikuju računare na mreži koji su zauzeti osluškivanjem mrežnog saobraćaja. Antisnifer programi za rješavanje svojih problema koriste poseban znak prisutnosti prislušnih uređaja u mreži - mrežna kartica sniffer računara mora biti u posebnom režimu slušanja. Dok su u režimu slušanja, mrežni računari na poseban način reaguju na IP datagrame poslate na adresu hosta koji se testira. Na primjer, hostovi koji slušaju obično upravljaju svim dolaznim prometom, ne ograničavajući se na datagrame poslane na adresu hosta. Postoje i drugi znakovi sumnjivog ponašanja domaćina koje program može prepoznati. AntiSniff.

Bez sumnje, prisluškivanje je vrlo korisno sa stanovišta napadača, jer vam omogućava da dobijete mnogo korisnih informacija - lozinke koje se prenose preko mreže, adrese mrežnih računara, povjerljive podatke, pisma i tako dalje. Međutim, jednostavno prisluškivanje sprječava hakera da ometa mrežnu komunikaciju između dva hosta kako bi modificirao i mijenjao podatke. Za rješavanje takvog problema potrebna je sofisticiranija tehnologija.

Lažni ARP zahtjevi

Da bi presreo i zatvorio proces mrežne komunikacije između dva hosta A i B, napadač može prevariti IP adrese hostova u interakciji sa svojom vlastitom IP adresom slanjem lažnih ARP (Address Resolution Protocol) poruka hostovima A i B. Možete saznati više o ARP-u u Dodatku D, koji opisuje kako da razriješite (prevedete) IP adresu domaćina u adresu mašine (MAC adresu) ugrađenu u NIC hosta. Pogledajmo kako haker može koristiti ARP za presretanje mrežne komunikacije između hostova A i B.

Da bi presreo mrežni saobraćaj između hostova A i B, haker nameće svoju IP adresu ovim hostovima tako da A i B koriste ovu lažnu IP adresu prilikom razmjene poruka. Da bi nametnuo svoju IP adresu, haker izvodi sljedeće operacije.

Napadač određuje MAC adrese hostova A i B, na primjer, koristeći naredbu nbtstat iz paketa W2RK.

Napadač šalje poruke na identificirane MAC adrese hostova A i B, koje su lažni ARP odgovori na zahtjeve za razrješenje IP adresa hostova u MAC adrese računara. Host A je obavešten da IP adresa hosta B odgovara MAC adresi računara napadača; hostu B se kaže da IP adresa hosta A takođe odgovara MAC adresi napadača.

Domaćini A i B unose primljene MAC adrese u svoje ARP keš memorije i zatim ih koriste za slanje poruka jedni drugima. Pošto IP adrese A i B odgovaraju MAC adresi računara napadača, domaćini A i B, ne sumnjajući ništa, komuniciraju preko posrednika koji je sposoban da radi šta god želi sa njihovim porukama.

Da bi se branili od takvih napada, administratori mreže moraju održavati bazu podataka sa tabelom mapiranja MAC adresa i IP adresa svojih mrežnih računara. Nadalje, korištenjem posebnog softvera, na primjer, uslužnog programa arpwatch (ftp://ftp.ee.lbl.gov/arpwatch-2.lab.tar.gz), možete periodično pregledavati mrežu i identificirati nedosljednosti.

Na UNIX mrežama, ova vrsta lažnog ARP napada može se implementirati korištenjem sistemskih uslužnih programa za praćenje i kontrolu mrežnog prometa, kao što je arpredirect... Nažalost, takvi pouzdani uslužni programi očigledno nisu implementirani u Windows 2000 / XP mrežama. Na primjer, na web stranici NTsecurity ( http://www.ntsecurity.nu) možete preuzeti uslužni program GrabitAII, predstavljen kao sredstvo za preusmjeravanje prometa između mrežnih hostova. Međutim, elementarna provjera funkcionalnosti uslužnog programa GrabitAII pokazuje da je još daleko od potpunog uspjeha u realizaciji svojih funkcija.

Lažno usmjeravanje

Da bi presreo mrežni promet, napadač može prevariti stvarnu IP adresu mrežnog rutera svojom vlastitom IP adresom, na primjer, koristeći lažne ICMP Redirect poruke. Host A mora, prema RFC-1122, protumačiti primljenu Redirect poruku kao odgovor na datagram poslat drugom hostu, na primjer, B. Host A određuje svoje akcije na poruci Preusmjeravanja na osnovu sadržaja primljene Redirect poruke, i ako je preusmjeravanje datagrama postavljeno u Preusmjeravanje od A do B na novoj ruti, to će učiniti host A.

Da bi izvršio lažno rutiranje, napadač mora znati neke detalje o organizaciji lokalne mreže u kojoj se nalazi host A, posebno IP adresu rutera preko kojeg se promet šalje od hosta A do B. Znajući to, napadač će generisati IP datagram u kojem je IP - adresa pošiljaoca definisana kao IP adresa rutera, a odredište je host A. Takođe, datagram uključuje ICMP Redirect poruku sa novim adresnim poljem rutera postavljenim kao IP adresa kompjuter napadača. Po prijemu takve poruke, Host A će poslati sve poruke na IP adresu računara napadača.

Da biste se zaštitili od takvog napada, onemogućite (na primjer, korištenjem vatrozida) na hostu A obradu ICMP Redirect poruka i naredbu tracert(na Unixu ovo je naredba tracerout). Ovi uslužni programi mogu pronaći dodatnu rutu koja se pojavila na lokalnoj mreži koja nije bila predviđena tokom instalacije, ako je, naravno, mrežni administrator na oprezu.

Gore navedeni primjeri presretanja (kojima su mogućnosti napadača daleko od ograničenih) uvjeravaju u potrebu zaštite podataka koji se prenose preko mreže ako podaci sadrže povjerljive informacije. Jedini način zaštite od presretanja mrežnog saobraćaja je korištenje programa koji implementiraju kriptografske algoritme i protokole šifriranja, te sprječavaju otkrivanje i zamjenu povjerljivih informacija. Da bi se riješili takvi problemi, kriptografija pruža sredstva za šifriranje, potpisivanje i provjeru autentičnosti poruka koje se prenose preko sigurnih protokola.

Virtuelne privatne mreže (VPN) pružaju praktične implementacije za sve kriptografske metode zaštite komunikacija opisane u poglavlju 4. Kratak pregled principa i metoda kriptografske zaštite može se naći u Dodatku E, te u detaljnom opisu kriptografske zaštite koju pruža aplikacija. PGP Desktop Security (http://www.pgp.com).

Otimanje TCP veze

Najsofisticiraniji napad presretanja mrežnog saobraćaja je TCP otmica, kada haker prekida trenutnu komunikacijsku sesiju sa hostom generisanjem i slanjem TCP paketa napadnutom hostu. Nadalje, koristeći mogućnosti TCP protokola za vraćanje prekinute TCP veze, haker presreće prekinutu komunikacijsku sesiju i nastavlja je umjesto prekinutog klijenta.

Razvijeno je nekoliko efikasnih uslužnih programa za izvođenje napada otmice TCP veze, ali svi su implementirani za Unix platformu, a ovi uslužni programi su predstavljeni samo u izvornom kodu na web stranicama. Stoga, za nas, kao uvjerene praktičare u plemenitom cilju hakovanja, napadi presretanja TCP veze su od male koristi. (Oni koji vole razumjeti tuđi programski kod mogu se obratiti na stranicu http://www.cri.cz/~kra/index.html gdje možete preuzeti izvorni kod dobro poznatog uslužnog programa za presretanje TCP veze Hunt od Pavla Krauza).

Unatoč nedostatku praktičnih alata, ne možemo zanemariti tako zanimljivu temu kao što je presretanje TCP veza i zadržati se na nekim aspektima takvih napada. Neke informacije o strukturi TCP paketa i redosledu uspostavljanja TCP veza date su u Dodatku D ove knjige, ali ovde ćemo se fokusirati na ovo pitanje – šta tačno dozvoljava hakerima da izvode napade presretanja TCP veza? Razmotrimo ovu temu detaljnije, oslanjajući se uglavnom na raspravu u i.

TCP (Transmission Control Protocol) je jedan od osnovnih protokola OSI transportnog sloja koji omogućava uspostavljanje logičkih veza preko virtuelnog komunikacijskog kanala. Preko ovog kanala se prenose i primaju paketi uz registraciju njihovog niza, kontroliše se tok paketa, organizuje ponovni prenos oštećenih paketa, a na kraju sesije komunikacioni kanal se prekida. TCP je jedini osnovni protokol u TCP/IP porodici koji ima napredni sistem identifikacije poruka i veze.

Za identifikaciju TCP paketa, postoje dva 32-bitna identifikatora u TCP zaglavlju, koji također djeluju kao brojač paketa, koji se nazivaju redni broj i broj potvrde. Također će nas zanimati još jedno polje TCP paketa, koje se zove kontrolni bitovi. Ovo 6-bitno polje sadrži sljedeće kontrolne bitove (redom slijeva na desno):

URG - oznaka hitnosti;

ACK - potvrdna zastavica;

PSH - noseća zastava;

RST - zastavica ponovnog uspostavljanja veze;

SYN - oznaka za sinhronizaciju;

FIN - oznaka za prekid veze.

Pogledajmo kako kreirati TCP vezu.

1. Ako host A treba da uspostavi TCP vezu sa hostom B, host A šalje hostu B sledeću poruku:

A -> B: SYN, ISSa

To znači da poruka koju šalje Host A ima postavljenu oznaku SYN (Sinhroniziraj sekvencijski broj), a polje za broj sekvence je postavljeno na 32-bitni početni broj sekvence (ISSa).

2. Kao odgovor na zahtjev primljen od hosta A, host B odgovara porukom u kojoj je postavljen SYN bit i ACK bit. U polju rednog broja, host B postavlja svoju početnu vrijednost brojača - ISSb; polje broja potvrde će sadržavati ISSa vrijednost primljenu u prvom paketu od hosta A, uvećanu za jedan. Dakle, domaćin B odgovara sljedećom porukom:

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

3. Konačno, domaćin A šalje poruku hostu B u kojoj je postavljen: bit ASK; redno polje sadrži vrijednost ISSa + 1; polje za broj potvrde sadrži vrijednost ISSb + 1... Nakon toga TCP veza između hostova A i V smatra se ustanovljenim:

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

4. Sada domaćin A može slati pakete podataka hostu V preko novokreiranog virtuelnog TCP kanala:

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

Evo PODACI označava podatke.

Iz gornjeg algoritma za kreiranje TCP veze može se vidjeti da su jedini identifikatori TCP pretplatnika i TCP veza dva 32-bitna parametra rednog broja i broja potvrde - ISSa i ISSb... Stoga, ako haker uspije saznati trenutne vrijednosti polja ISSa i ISSb, tada ga ništa neće spriječiti da formira lažni TCP paket. To znači da je hakeru dovoljno da pronađe trenutne vrijednosti parametara. ISSa i ISSb TCP paket za datu TCP vezu, pošaljite paket sa bilo kog hosta na Internetu u ime klijenta za datu TCP vezu i ovaj paket će biti prihvaćen kao važeći!

Opasnost od ovakvog lažiranja TCP paketa je takođe važna jer se FTP i TELNET protokoli visokog nivoa implementiraju na osnovu TCP protokola, a identifikacija FTP klijenata i TELNET paketa se u potpunosti zasniva na TCP protokolu.

Osim toga, pošto FTP i TELNET protokoli ne provjeravaju IP adrese pošiljatelja poruka, nakon prijema lažnog paketa, FTP ili TELNET serveri će poslati poruku odgovora na IP adresu hakerskog hosta navedenu u lažnom paketu. Nakon toga, hakerski host će početi da radi sa FTP ili TELNET serverom sa svoje IP adrese, ali sa pravima legalno povezanog korisnika, koji će zauzvrat izgubiti vezu sa serverom zbog neusklađenosti brojača.

Dakle, za izvođenje gore opisanog napada, neophodan i dovoljan uslov je poznavanje dva trenutna 32-bitna parametra ISSa i ISSb identificiranje TCP veze. Razmotrimo moguće načine da ih dobijemo. U slučaju kada je hakerski host povezan sa napadnutim segmentom mreže, zadatak dobijanja vrednosti ISSa i ISSb je trivijalan i rješava se analizom mrežnog prometa. Stoga treba jasno shvatiti da TCP protokol u principu omogućava zaštitu veze samo ako napadač ne može presresti poruke koje se prenose preko ove veze, odnosno samo ako je hakerski host povezan na mrežni segment koji se razlikuje od segment TCP veze pretplatnika.

Stoga su za hakera od najvećeg interesa intersegmentni napadi, kada se napadač i njegova meta nalaze u različitim segmentima mreže. U ovom slučaju, zadatak je dobivanje vrijednosti ISSa i ISSb nije trivijalan. Za rješavanje ovog problema izmišljena su samo dva načina.

Matematičko predviđanje početne vrijednosti parametara TCP veze ekstrapolacijom prethodnih vrijednosti ISSa i ISSb.

Korištenje ranjivosti za identifikaciju pretplatnika TCP veze na Unix rsh serverima.

Prvi problem je riješen dubinskim proučavanjem implementacije TCP protokola u različitim operativnim sistemima i sada ima čisto teorijsku vrijednost. Drugi problem se rješava iskorištavanjem ranjivosti Unix sistema za identifikaciju pouzdanih hostova. (Pouzdano u odnosu na datog domaćina A zove mrežni host Včiji se korisnik može povezati na host A nema autentifikacije sa hostom r-service A). Manipulišući parametrima TCP paketa, haker može pokušati da se lažno predstavlja kao pouzdani host i presreće TCP vezu sa napadnutim hostom.

Sve je to vrlo zanimljivo, ali praktični rezultati ovakvog istraživanja još nisu vidljivi. Stoga savjetujemo svima koji žele da se pozabave ovom temom da se obrate knjizi, odakle su, općenito, preuzete gore navedene informacije.

Zaključak

Presretanje mrežnih podataka je najefikasniji metod mrežnog hakovanja, omogućavajući hakeru da dobije gotovo sve informacije koje kruže mrežom. Najpraktičniji razvoj je dobio pomoću njuškanja, tj. slušanje mreža; međutim, nemoguće je zanemariti metode presretanja mrežnih podataka, koje se obavljaju ometanjem normalnog funkcionisanja mreže u cilju preusmjeravanja saobraćaja na hakerski host, posebno metode presretanja TCP veza. Međutim, u praksi, posljednje navedene metode još uvijek nisu dovoljno razvijene i potrebno ih je poboljšati.

Antihaker treba da zna da je jedini spas od presretanja podataka enkripcija, tj. kriptografske metode zaštite. Prilikom slanja poruke preko mreže treba unaprijed pretpostaviti da je kablovski sistem mreže apsolutno ranjiv, te će svaki haker koji se poveže na mrežu moći da preuzme sve poslate tajne poruke iz njega. Postoje dvije tehnologije za rješavanje ovog problema - stvaranje VPN mreže i šifriranje samih poruka. Sve ove zadatke je vrlo lako riješiti uz pomoć softverskog paketa. PGP Desktop Security(njegov opis se može naći, na primjer, u).

Original: Network sniffing
Autor: Paul Cobbaut
Datum objave: 12. mart 2015
Prijevod: A. Panin
Datum prenosa: 01.04.2015

Poglavlje 23. Hvatanje mrežnog prometa

Mrežni administrator bi trebao biti u mogućnosti da koristi njuškalo kao što je wireshark ili tcpdump za dijagnosticiranje mrežnih problema.

Učenik će također često morati pribjeći korištenju njuškala kako bi razumio principe funkcionisanja mreža. Ovo poglavlje opisuje odgovarajuće tehnike za hvatanje mrežnog prometa.

23.1. Aplikacija Wireshark

23.1.1. Instaliranje wiresharka

Ovaj primjer pruža naredbu za instaliranje wiresharka na distribucije koje koriste softverske pakete s ekstenzijom .deb (uključujući Debian, Mint, Xubuntu i druge distribucije).

[email protected]: ~ # Čitanje liste paketa Gotovo Izgradnja stabla zavisnosti Čitanje informacija o statusu Gotovo ... (izlaz je skraćen)

Na distribucijama koje koriste .rpm softverske pakete kao što su CentOS, RHEL i Fedora, yum se može koristiti za instaliranje wiresharka.

# yum install wireshark Učitani dodaci: fastestmirror Brzine učitavanja ogledala iz keširane host fajla ... (izlaz skraćen)

23.1.2. Odabir mrežnog interfejsa

Kada prvi put pokrenete wireshark, morat ćete odabrati mrežni interfejs. Vidjet ćete dijalog koji izgleda slično onom na ilustraciji ispod.

Vjerovatno je da neće biti dostupnih mrežnih interfejsa, jer u nekim distribucijama mrežni promet može presresti isključivo root korisnik. U ovom slučaju, morat ćete pokrenuti wireshark kao root koristeći naredbu sudo wireshark.

Alternativno, možete slijediti opće smjernice i koristiti uslužni program tcpdump ili neki drugi alat za presretanje prometa i pisanje podataka u datoteku. Svi presretnuti podaci mogu se kasnije analizirati koristeći wireshark.

23.1.3. Minimiziranje saobraćaja

U procesu presretanja mrežnog saobraćaja, hiljade paketa se mogu generisati u vrlo kratkim vremenskim periodima. Očigledno, ova količina podataka će otežati analizu prometa. Pokušajte izaći iz ove situacije izolacijom svog njuškala unutar mreže. Preferirana opcija je presretanje prometa koji prolazi kroz mrežni interfejs izolirane virtuelne mreže pod vašom potpunom kontrolom.

Ako učite alate za hvatanje mrežnog prometa kod kuće, isključivanje svih mrežnih aplikacija koje rade na vašem računalu i odvajanje vašeg računala od drugih računala i uređaja kao što su pametni telefoni i tableti je dobra ideja za minimiziranje prometa.

Ipak, važniji alati za minimiziranje prometa su filteri, o kojima će biti riječi u sljedećem odjeljku.

23.1.4. Presretanje saobraćaja koji generiše uslužni program za ping

Pokrenuo sam njuškalo i uhvatio sve pakete prenete preko mreže kao rezultat izvršavanja tri ping komande (nema smisla pokretati ove komande kao root):

[email protected]:~# ping -c2 ns1.paul.local PING ns1.paul.local (10.104.33.30) 56 (84) bajtova podataka. 64 bajta od 10.104.33.30: icmp_req = 1 ttl = 64 vrijeme = 0,010 ms 64 bajta od 10.104.33.30: icmp_req = 2 ttl = 64 vrijeme = 0,023 ms prebačena statistika paul.lons1 --- pack 2 prijenosa statistike. , 2 primljena, 0% gubitka paketa, vrijeme 1001ms rtt min / avg / max / mdev = 0,010 / 0,016 / 0,023 / 0,007 ms [email protected]:~# ping -c3 linux-training.be PING linux-training.be (188.93.155.87) 56 (84) bajtova podataka. 64 bajta sa antares.ginsys.net (188.93.155.87): icmp_req = 1 ttl = 56 vremena = 15,6 ms 64 bajta sa antares.ginsys.net (188.93.155.87): icmp_req = 1 ttl = 56 ms po 64 bajta sa antare. sa antares.ginsys.net (188.93.155.87): icmp_req = 3 ttl = 56 vrijeme = 14,7 ms --- linux-training.be ping statistika --- 3 paketa poslana, 3 primljena, 0% gubitka paketa, vrijeme 2003 ms rtt min / avg / max / mdev = 14.756 / 16.110 / 17.881 / 1.309 ms [email protected]:~# ping -c1 centos7.paul.local PING centos7.paul.local (10.104.33.31) 56 (84) bajtova podataka. 64 bajta od 10.104.33.31: icmp_req = 1 ttl = 64 vrijeme = 0,590 ms --- centos7.paul.local ping statistika --- 1 paket odaslan, 1 primljen, 0% gubitka paketa, vrijeme 0ms rtt min / avg / mdev = 0,590 / 0,590 / 0,590 / 0,000 ms

Ukupno je uhvaćeno više od 200 paketa sa mreže. Sve će postati mnogo očiglednije ako u polje filtera unesete liniju icmp i kliknete na dugme "Primeni".

23.1.5. Presretanje saobraćaja koji generiše ping uslužni program i dns klijent

Radeći s istom sesijom prikupljanja podataka, primijenimo odličan filter. Želimo da pratimo saobraćaj koji se odnosi i na dns protokol i na icmp protokol, pa ćemo morati da unesemo nazive dva pomenuta protokola u polje filtera.

Da biste uhvatili podatke koji se odnose na dva protokola u pitanju, string "dns ili icmp" mora biti unesen u polje filtera. Ako unesete red "dns i icmp", neće biti prikazane informacije ni o jednom paketu, jer ne postoje paketi vezani za oba navedena protokola.

Gledajući gornju ilustraciju, možete vidjeti da paketi 25 i 26 imaju izvornu i odredišnu IP adresu 10.104.33.30. To je zato što DNS klijent radi na istom računaru kao i DNS server.

Slična situacija je uočena u slučaju paketa 31 i 32, jer se pomoću uslužnog programa ping paketi šalju u radni sistem na kojem ovaj pomoćni program radi.

23.1.6. Specifična IP adresa

U ovom slučaju se vrši filtriranje paketa koji se odnose na DNS protokol i koji sadrže određenu IP adresu. Niz "ip.addr == 10.104.33.30 i dns" se koristi kao filter. Direktiva and govori aplikaciji da prikaže informacije o svakom paketu koji ispunjava dva uslova.

Paket 93 sadrži DNS upit za preuzimanje zapisa tipa A domene linux-training.be. Paket 98 sadrži odgovor DNS servera. Šta mislite da se dogodilo nakon što je paket 93 poslan i prije nego što je primljen paket 98? Pokušajte odgovoriti na ovo pitanje prije nego što pročitate sljedeći odjeljak (kada radite s različitim sistemima, uvijek je korisno pokušati predvidjeti šta će se dogoditi i provjeriti tačnost vaših predviđanja).

23.1.7. Filtriranje na bazi okvira

Ispravan termin za presretnuti paket je okvir (zbog činjenice da hvatamo pakete na sloju 2 OSI mrežnog modela). Stoga, da biste prikazali informacije o paketima sa određenim brojevima, koristite direktivu frame.number u polju filtera.

23.1.8. Ispitivanje sadržaja paketa

Srednji okvir prozora njuškanja može se proširiti. Kada odaberete red unutar ovog panela, možete vidjeti odgovarajuće vrijednosti bajtova u polju donjeg panela.

Ilustracija ispod prikazuje srednje okno prozora njuškanja sa odabranom adresom mog laptopa.

Imajte na umu da gornja tehnika odlično funkcionira za hvatanje prometa na jednom mrežnom sučelju. Ako presretnete promet, na primjer, koristeći naredbu tcpdump -i any, naići ćete na metodu hvatanja paketa "Linux cooked capture".

23.1.9. Više primjera filtera

Možete kombinirati dva opisa protokola koristeći logičku ili ("OR") direktivu između njih. Ilustracija ispod pokazuje kako uhvatiti samo ARP i BOOTP (ili DHCP) pakete.

I sljedeća ilustracija pokazuje metodu za hvatanje paketa specifičnih za DNS koji sadrže određenu IP adresu.

23.2. Tcpdump uslužni program

Kada radite sa interfejsom komandne linije sistema, hvatanje paketa se može izvesti pomoću uslužnog programa tcpdump. Ispod su neki primjeri njegove upotrebe.

Korištenje naredbe tcpdump host $ ip prikazat će informacije o svom prometu povezanom sa određenim hostom (u ovom slučaju, s IP adresom 192.168.1.38).

[email protected]: ~ # tcpdump host 192.168.1.38 tcpdump: opširni izlaz potisnut, koristite -v ili -vv za slušanje potpunog dekodiranja protokola na eth0, tip veze EN10MB (Ethernet), veličina snimanja 96 bajtova

Saobraćaj koji je isključivo povezan sa ssh protokolom (TCP protokol, port 22) može se presresti pomoću naredbe tcpdump tcp port $ port. Izlazne linije su skraćene na 76 znakova radi bolje čitljivosti.

[email protected]: ~ # tcpdump tcp port 22 tcpdump: opširni izlaz potisnut, koristite -v ili -vv za slušanje potpunog dekodiranja protokola na eth1, tip veze EN10MB (Ethernet), veličina snimanja 96 bajtova 14: 22: 20.71653073 IP dekal. > rhel53.local.ssh: P 666050963: 66605 14: 22: 20.719936 IP rhel53.local.ssh> deb503.local.37973: P 1:49 (48) ack 48:22:20.719936 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: 22: 20.721321 IP rhel53.local.ssh> deb503.local.37973: P 113: 161 (48) ack 14.22:12.03 de. 37973> rhel53.local.ssh:. ack 161 win 200 14: 22: 20.722492 IP rhel53.local.ssh> deb503.local.37973: P 161: 225 (64) ack 14: 22: 20.760632 IP deblocal.379. ack 225 win 200 14: 22: 23.108106 IP deb503.local.54424> ubuntu910.local.ssh: P 467252637: 46 14: 22: 23.116804 IP ubuntu.local.54424. ) ack 14: 22: 23.116844 IP deb503.local.54424> ubuntu910.local.ssh:. ack 81 win 2 ^ C 10 zarobljenih paketa 10 paketa primljenih filterom 0 paketa odbačenih od strane kernela

Ista operacija, ali sa pisanjem snimljenih podataka u datoteku, može se izvesti pomoću naredbe tcpdump -w $ filename.

[email protected]: ~ # tcpdump -w sshdump.tcpdump tcp port 22 tcpdump: slušanje na eth0, tip veze EN10MB (Ethernet), veličina hvatanja 96 bajtova ^ C 17 paketa zarobljeno 17 paketa primljenih filterom 0 paketa ispuštenih od strane kernela

Komanda tcpdump -r $ filename može prikazati sadržaj datoteke kreirane u prethodnom primjeru.

[email protected]: ~ # tcpdump -r sshdump.tcpdump

Mnogi drugi primjeri korištenja ovog uslužnog programa mogu se naći na tcpdump man stranici.

23.3. Praktična aktivnost: Presretanje mrežnog saobraćaja

23.4. Ispravna praksa: presretanje mrežnog saobraćaja

1. Instalirajte wireshark na vaš sistem (ne radi na virtuelnoj mašini).

Na Debain/Ubuntu distribucijama: aptitude instalirajte wireshark

Na Red Hat / Mandriva / Fedora distribucijama: yum install wireshark

2. Koristite ping uslužni program da generišete saobraćaj između vašeg i nekog drugog računara.

Ping $ ip_address

3. Počnite snimati mrežni promet.

(sudo) wireshark

Odaberite svoj mrežni interfejs (vjerovatno eth0)

4. Koristite filter za prikaz informacija samo o onim paketima koji sadrže odgovore na zahtjeve uslužnog programa za ping.

Unesite "icmp" (bez navodnika) u polje filtera i kliknite na dugme "Primeni".

5. Sada prosledite ime domena (kao što je www.linux-training.be) za ping i pokušajte da uhvatite DNS zahtev i pakete odgovora. Koji DNS server je korišten? Da li je za prijenos zahtjeva i odgovora korišten TCP ili UDP protokol?

Prvo pokrenite njuškalo.

Unesite "dns" u polje filtera i kliknite na dugme "Primeni".

[email protected]: ~ # ping www.linux-training.be PING www.linux-training.be (88.151.243.8) 56 (84) bajtova podataka. 64 bajta od fosfor.openminds.be (88.151.243.8): icmp_seq = 1 ttl = 58 vrijeme = 14,9 ms 64 bajta od fosfor.openminds.be (88.151.243.8): icmp_seq = 2 ttl = 1^58 vrijeme = 2 ttl = 1^5. --- www.linux-training.be ping statistika --- 2 paketa poslana, 2 primljena, 0% gubitka paketa, vrijeme 1002ms rtt min / avg / max / mdev = 14.984 / 15.539 / 16.095 / 0.569 ms

Wireshark prozor bi trebao izgledati slično.

Na osnovu informacija iz prozora aplikacije wireshark, možemo zaključiti da je DNS zahtjev prenet putem UDP paketa, nakon čega je lako odgovoriti na postavljena pitanja.

6. Pronađite zatvorenu web stranicu koja ima obrazac za traženje lozinke. Pokušajte se prijaviti koristeći korisničko ime "paul" i lozinku "hunter2" dok je njuškalo pokrenuto. Sada pokušajte pronaći uneseno korisničko ime i lozinku u podacima koje je sniffer uhvatio.

Podijelite ovo