Packet Sniffing – Predstavljanje, uvod u tehnologiju i primer snifovanja

Packet analyzing tehnologija koja se često popularno naziva i Packet sniffing, jednostavno rečeno omogućuje presretanje i uvid u saobraćaj koji se odvija među računarima na mrežnom segmentu.
Tehnologija se može koristiti za najrazličitije svrhe, od dijagnostike sigurnosnih problema na mreži sve do kreiranja istih, a mrežni administratori je najčešće koriste upravo za monitoring i proveru sigurnosnih postavki.

Namenskog softvera koji bi se koristio za ovu aktivnost, u ovom trenutku ima sasvim dovoljno, ali i pored toga Packet sniffing je aktivnost kojom se skoro isključivo bave profesionalci. Razlog je pre svega, u velikom broju prepreka sa kojima se entuzijasti-početnici susreću kada krenu u avanturu ove vrste. Na raspolaganju je puno dokumentacije i literature koju treba filtrirati i izdvojiti ono što je primenljivo na konkretnu/specifičnu situaciju, a zatim treba napraviti i izbor između različitih kombinacija softvera koje se mogu koristiti.

Pre nego što se pozabavimo kombinacijom softvera i samom procedurom, bilo bi dobro da nešto jasnije definišemo, šta je to zapravo, Packet sniffing i kako funkcioniše.

SNIFFING

U svakodnevnim radu i funkcionisanju, svaki put kada računar ili neki drugi uređaj spojimo na lokalnu Ehternet mrežu, on vrši slanje i prijem TCP/UDP paketa (datagrama) i komunicira sa lokalnim ruterom. Ruter pakete prosleđuje dalje, ka njihovoj krajnjoj destinaciji, prema drugim mrežnim jedinicama, serverima na internetu i gde god je to potrebno.

Sniffing je proces presretanja, logovanja i analize ovih paketa.

Ukoliko na lokalnoj mreži nisu upotrebljeni isključivo HUB-ovi, tj. uređaji koji predstavljaju prevaziđene preteče svičeva (stoga verovatno i nisu), između napadača i “žrtve“ sniffing-a će se pojaviti prepreke. Prepreke se pojavljuju u vidu svičeva koji su zaduženi da prave segmentaciju na fizičkom, odnosno prvom i drugom nivou OSI modela. Za razliku od primene HUB-ova, kada svi paketi stižu svima (broadcast), kod mreže sa svičevima paketi namenjeni uređaju X stižu isključivo do uređaja X (unicast i multicast).

shp

Sa pozicije uređaja koji želi da vrši Sniff-ovanje, presretne pakete i loguje ih, ova činjenica predstavlja problem. Naime, potrebno je da paketi stignu i do uređaja-presretača, a ne samo do svoje regularne destinacije. Ovaj problem se, naravno može prevazići i to na više načina:

  • Monitoring port na sviču
  • Sniffing na samom ruteru
  • ARP spoofing

Monitoring port je poseban port koji postoji na naprednijim svičevima i čija je svrha replikacija svih paketa koji sobraćaju kroz svič. Mogućnost sniffovanja na samom ruteru zavisi od rutera do rutera, a informacije radi, navešćemo da na Mikrotik uredjajima postoji ova mogućnost.
Pošto je u oba slučaja (monitoring port na sviču i sniffing na ruteru) u pitanju namenska oprema koja nije uvek dostupna, mi ćemo se u ovom tekstu detaljnij baviti samo ARP spoofing tehnikom.

ARP SPOOFING

Veoma bitan element koji je potreban za ovaj setup jeste mrežna karta koja funkcioniše u promiscuous modu. Promiscuous mod, kratko rečeno znači da će mrežni adapter prihvatiti sve pakete uključujući i one koji nisu direktno njemu namenjeni. Mogućnosti za ovo podešavanje u velikoj meri zavise od modela mrežne karte i operativnog sistema, najčešće se promiscuous mod mora podesiti naknadno i ne spada u podrazumevana podešavanja.

ARP Spoofing, odnosno ARP poisoning tehnika koristi slabost u samom ARP protokolu, odnosno činjenicu da ARP protocol ne podržava nikakav oblik autentikacije. Naime, kada se uređaj priključi na mrežu, on asocira druge uredjaje i njihove odgovarajuće MAC adrese, ali u suštini, ne postoji mehanizam kojim bi se potvrdilo da uredjaj X na adresi AB-CD-EF-12-34-56 zaista jeste uredjaj X, a ne neki drugi uredjaj. Ovaj nedostatak otvara mogućnost za vršenje ARP spoofing-a.

ARP VERUJE SVIMA

Pretpostavimo da se uredjaj X priključio na LAN mrežu.
Uredjaj X bi sada trebalo da komunicira sa uredjajem Y na IP adresi 192.168.1.16, pa će na adresu FF-FF-FF-FF-FF-FF (broadcast) poslati upit:

“Ko zna na kojoj se MAC adresi nalazi uređaj koji ima IP adresu 192.168.1.16?”

Sada se javlja uredjaj sa IP adresom 192.168.1.16 i sa svoje MAC adrese, recimo AB-CD-EF-12-34-56 šalje odgovor:

“Ja imam adresu 192.168.1.16, a nalazim se na MAC adresi AB-CD-EF-12-34-56”.

Postoji i reverzni upit pri čemu se potrazuje MAC adresa na osnovu IP adrese.
Ovde je kratko opisan process koji funkcioniše bez dodatnih provera, pri čemu uređaji prihvataju saobraćaj i sa adresa za koje nisu slali upit.

pak-pregl

Pored procedure koju smo opisali postoji još jedna koja je za našu temu i bitnija, a zove se Gratuitous ARP. Gratuitous ARP je regularan ARP odgovor, sa razlikom da mu nije prethodio upit niti jedne mrežne jedinice. Može da ga objavi svaki uređaj na lokalnoj mreži, a svi uređaji će bez ikakve provere prihvatiti informaciju iz ove objave kao istinitu. Gratuitous ARP je regulisan u okviru ARP protokola i koristi se u raznim slučajevima, na primer kada se promeni IP adresa na mrežnoj karti uređaja, koji ovim putem tu izmenu javno objavljuje. Ovakvo definisana procedura pruža prostor i za razne vrste zloupotreba.

ANATOMIJA NAPADA

Pretpostavimo da napadač želi da presretne sav saobraćaj koji se odvija između ciljanog uređaja koji ima IP adresu 192.168.1.16 (zvaćemo ga “žrtva” u nastavku teksta) i rutera, čija je IP adresa 192.168.1.1 Ovakvim presretanjem napadač dobija mogućnost da sniff-uje, praktično sav saobraćaj žrtve ka internetu.
Kao prvi korak, napadač će se priključiti na lokalnu mrežu i početi da preplavljuje ruter Gratuitous ARP objavama (odgovori bez prethodnog upita) kojima asocira svoju MAC adresu na IP adresu žrtve:

“Ja imam IP adresu 192.168.1.16 (žrtvina IP adresa), a nalazim se na MAC adresi FF-FF-FF-BB-BB-BB (napadačeva MAC adresa)”.

Usled nedostatka mehanizma provere u okviru ARP protokola, ruter ovu objavu mora da prihvati i u svom ARP kešu će asocirati napadačevu MAC adresu sa žrtvinom IP adresom.
Sledeći korak je plavljenje žrtve sa Gratuitous ARP objavama, ali sada objave izgledaju ovako:

“Ja imam IP adresu 192.168.1.1 (IP adresa rutera), a nalazim se na MAC adresi FF-FF-FF-BB-BB-BB (napadačeva MAC adresa)”.

Ponovo, zbog prirode ARP protokola i žrtva će ovu informaciju prihvatiti. Sada imamo situaciju u kojoj se napadač žrtvi predstavio kao ruter, a ruteru kao žrtva, pri čemu i ruter i žrtva pouzdano računaju sa ovim informacijama.

Ovime je završen proces ARP spoofing-a i ostao je još samo jedan element kako bi napad, koji se naziva i “Man in the middle (MiTM)” napad, poprimio svoj konačan oblik. Napadač sada treba da konfiguriše svoj operativni sistem tako da obezbedi IP forwarding. To znači da će napadač pakete koji mu stižu prosleđivati prema mrežnim jedinicama kojima su i namenje. Ako žrtva pošalje paket ruteru, taj paket će realno stići prvo do napadača, a kako bi se ostvarila komunikacija, napadač paket mora da prosledi ruteru.

PRAKSA

Na početku teksta pomenuli smo značaj odgovarajuće kombinacije softvera za uspešan sniffing. Pomenimo kao primer Wireshark program, namenjen packet analyzing-u (Windows i Linux). Njegova mana u ovoj primeni jeste zavisnost od spoljnjih elemenata. Wireshark nema integrisanu ARP spoofing funkciju, pa bi smo, ukoliko želimo da izvršimo Packet sniffing, morali da se oslonimo na monitoring port, HUB ili dodatni softver koji je u stanju da obavi ARP spoofing. Procedura u kombinaciji sa dodatnim softverom izgledala bi ovako…

Potrebno je podesiti operativni sistem za funkcionalan IP forwarding, mrežnu kartu prebaciti u Promiscuous mod, zatim pokrenuti ARP spoofing program, a kada je i ova procedura završena, može se pokrenuti Wireshark i početi sa presretanjem saobraćaja.

Na Linux-u je ovu operaciju mnogo lakše izvesti nego na Windows-u, budući da postoji obilje softvera, raspoloživa je i direktna podrška operativnog sistema za IP forwarding, kao i promiscuous mode za mrežni adapter. Na Windows mašinima situacija je nešto drugačija, što naravno ne znači da operaciju nije moguće izvesti.
Potreban softver za Windows je uglavnom portovan sa Linux-a, nema ga puno, uglavnom su to projekti entuzijasta koji imaju slabu podršku, a povrh svega, iako u okviru operativnog sistema postoji podrška za IP forwarding, podrška ne postoji i za promiscuous mode (to je razlog što se uz Wireshark isporučuje WinPcap driver).

KAKO SE ZAŠTITITI?

Pošto se nedobronamerno (maliciozno) eksploatisanje ARP-a oslanja na propuste koji su inkorporirani u samoj srži protokola ne postoji puno preventivnih i zaštitnih mera koje se mogu peduzeti. Kada su u pitanju male mreže mogu se koristiti statički unosi kojima se na mrežnim uredjajima IP adrese vezuju za MAC adrese (pomalo nepraktično rešenje sa stanovišta administracije). Na Windows mašinama, MAC adresa uređaja se može videti putem ipconfig komande, a na Linux mašinama, komanda je ifconfig, a zatim se komandom arp –s mogu dodavati statički ARP unosi.

Za veće mreže, verovatno najbolje rešenje je investirati u svič koji ima port security opciju. Ova opcija za svaki fizički port na sviču dozvoljava samo po jednu MAC adresu, što bi trebalo da spreči ARP spoof napade.
Generalno za sve mreže,  preporučena odbrana bila bi implementacija nekog ARP monitoring softvera, kao što je za primer ARPwatch. Softver ovog tipa će pratiti saobraćaj na mreži i prijavljivati svaki vid komunikacije koji je u ovom smislu sumnjiv kao i sve promene MAC adresa. Dužnost koja ostaje administratorima jeste da podatke analiziraju i odluče da li su prijavljene promene maliciozne ili regularne.

Pokazna vežba

Na internetu postoji veliki broj uputstava koja detaljno opisuju kako obaviti sniffing operaciju koju smo u prethodnom delu teoretski obradili. Ova uputstva se većinom odnose na Linux platformu, a mi ćemo ovom prilikom predstaviti relativno lak način da se Packet sniffing operacija izvede na Windows operativnom sistemu pomoću programa čiji je naziv Intercepter-NG

INTERCEPTER-NG
Pre nego što pređemo na detalje, želim da naglasim da je ovo uputstvo kreirano u edukativne svrhe. Uputstvo predstavlja prikaz tehnologija koje se danas često nalaze u praktičnoj upotrebi i smatam da je dobro upoznati se sa njima i imati predstavu o tome kako one funkcionišu. U skladu sa time, ne mogu da prihvatim nikakvu odgovornost u slučaju bilo kakve zloupotrebe, odnosno upotrebe primera iz ovog teksta u maliciozne svrhe.

Intercepter-NG je moćan alat za sniff-ovanje, čija namena i mogućnosti u mnogome prevazilaze proceduru koju ćemo ovde prikazati. Dostupan je za Windows NT(2K\XP\2k3\Vista\7\8), Linux i Android platforme, a pun set funkcionalnosti možete pogledati na oficijelnom sajtu.
Uprošćeni i skraćeni prikaz “Man i the middle” operacije kojeg ćemo prikazati, nije tutorijal i ima edukativni karakter. Tutorijali i detaljna uputstva, wiki dokumentacija, Youtube tutorijali i drugi detaljni resursi raspoloživi su i dostupni putem web pretrage svakome ko je zainteresovan da se dublje bavi ovom tematikom.

INSTALACIJA I INTERFEJS

Za početak, potrebno je preuzeti setup fajl i instalirati aplikaciju na sistemu koji služi za napad (link za preuzimanje nalazi se na kraju teksta). U zavisnosti od browser-a i anti-virus programa, skoro je izvesno upozorenje da je fajl maliciozan. Ovo realno nije slučaj, sam fajl nije maliciozan i opasnost ove vrste ne postoji, pa poruku možete slobodno da ignorišete i raspakujete arhivu.

Nakon pokretanja Intercepter-NG.exe pojaviće se interfejs koji izgleda kao na narednoj slici i radi upoznavanja i informativnosti, bliže ćemo opisati njegove elemente.

interceptergui

  1. Izbor vrste adaptera – da li će se koristiti mrežna ili bežičnu vrsta adaptera
  2. Odabir mrežnog interfejsa koji će se koristiti za sniffing
  3. Messengers mode – omogućuje da se u toku sniffing-a posmatraju konverzacije koje se odvijaju u okviru chat aplikacija, Skype-a, Jabber i dr
  4. Ressurection mode – ovde će se pojaviti fajlovi, slike i tekstovi koji su prisutni u komunikaciji (fajlovi rekonstruisani iz mnoštva paketa u kojima se šalju)
  5. Password mode – ovde možemo videti presretnute lozinke i odgovarajuća korisničkim imenima
  6. Scan mode – u ovom odeljku se skenira lokalna mreža
  7. NAT mode – podešavanje dodatnih aspekata sniffing-a
  8. DHCP mode – podešavanje bazičnog DHCP servera
  9. Raw mode – služi za praćenje i logovanje svih paketa iz saobraćaja u sirovoj, neobrađenoj formi
  10. Start – kada su sva podešavanja kompletirana, pokreće sniffing
  11. Settings – globalna podešavanja
  12. ARP cage – putem ARP spoofing-a može se izolovati određena mrežna jedinica od ostatka lokalne mreže
  13. ARP watch – kada je aktiviran, ovaj servis prati promene asocijacije ARP i IP adresa i upozorava ukoliko neko nas spoof-uje
  14. Radna površina na kojoj se vide paketi u prolazu i sl.

PODEŠAVANJA

interceptersettings

U Settings dijalogu, izmedju ostalog, moguće je navesti dodatne portove koje je potrebno pratiti. Postoji i eXtreme Mode opcija koja nije preporučljiva jer će u ovoj opciji, nasuprot slušanju odredjenih portova, Intercepter-NG presretati sve portove, što usled enormne količine paketa može da sruši samu aplikaciju. Promisc se odnosi na promiscuous mode mrežne karte o kojem smo vise govorili u prethodnom tekstu.

IP Forward funkcija koja je neophodna u ovoj operaciji, u startu je isključena u korist Sthealth IP pristupa kojeg Intercepter-NG koristi kako bi mogao da vrši i SSL strip (ovo ćemo pojasniti kasnije).
Ostala podešavanja nisu previše bitna za potrebe ove demonstracije i protumačena su na Intercepter-NG wiki stranici.

TOK SNIFFING AKCIJE

Prvo je potrebno izabrati vrstu adaptera (klikom na zelenu ikonicu sa leve strane liste za odabir interfejsa) i interfejs na kojem će se presretati saobraćaj. U ovom slučaju u pitanju je bežični interfejs i odgovarajući adapter.

izboradaptera

U sledećem koraku, potrebno je odabrati Scan mode. Desnim klikom na radnu površinu otvoriće se meni iz kojeg treba odabrati “Smart scan”. Aplikacija će predstaviti listu uređaja na mreži i jednu Stealth IP adresu. Stealth IP je adresa koja nije zauzeta na mreži, a kojom će se uređaj sa kojeg se vrši sniffing predstaviti ruteru.

smartscan

Kao objekat sniffing-a u ovom slučaju biramo računar na IP adresi 192.168.1.220. Ovo se vrši desnim klikom na odgovarajući unos sa liste i odabirom “Add to NAT”, pri čemu je moguće dodati više sniffing objekata odjednom.

dodajnat

NAT (NETWORK ADDRESS TRANSLATION) MODE

U okviru Router’s IP i Stealth IP polja, već imamo defenisan ruter i stelt adresu koje smo dobili korišćenjem Smart scan-a, a u okviru NAT Clients polja je izlistana IP adresa žrtve koju smo dodali u prethodnom koraku. Naravno, ukoliko znamo potrebne podatke, sve ovo možemo podešavati i ručno i pritom potpuno zaobići skeniranje.

External i Internal interfejsi govore NAT servisu odakle će i kuda prosledjivati saobraćaj. U slučaj kada koristimo dva mrežna adaptera, ovde treba pravilno podesiti smer saobraćaja. U slučaju korišćenja jedne mrežne karte interfejs izabran u prvom koraku će biti definisan u oba polja.

Pre nego što nastavimo dalje obratite pažnju na opciju SSL Strip. Ako čekiramo ovo polje, Intercepter-NG će osim presretanja regularnog saobraćaja pokušati i da dekriptuje SSL saobraćaj. Da bi uspešno izveo ovu operaciju, program će podmetnuti svoje, lažne sertifikate što će za posledicu imati upozorenje u žrtvinom browser-u, prilikom pristupa svakom sajtu zaštićenom SSL enkripcijom.

podmetnuti_sertifikat

Ukoliko žrtva ignoriše upozorenje, SSL saobraćaj će biti presretnut zajedno sa svim lozinkama, korisničkim imenima, slikama, fajlovima i drugim podacima. Razmislite, koliko često je svako od nas u prilici da na ovakvu poruku odgovori potvrdno i odabere da nastavi?
U ovom slučaju, obeležićemo SSL Strip i SSL MiTM. Ovo drugo polje znači da ćemo presretati SSL saobraćaj kako bi do dekripcije uopšte i došlo.

Naredni korak jeste klik na “Start/Stop sniff” taster.

Naredni korak jeste klik na “Start/Stop sniff” taster.

Naredni korak jeste klik na ‘Start/Stop sniff’ taster.

Posle sniff-ovanja, sledi startovanje NAT servisa

Posle sniff-ovanja, sledi startovanje NAT servisa

Pored tastera za NAT nalazi se taster 'Start/Stop ARP Poison' pomoću kojeg se aktivira ARP spoofing.

Pored tastera za NAT nalazi se taster ‘Start/Stop ARP Poison’ pomoću kojeg se aktivira ARP spoofing.

Ukoliko sve prodje kako treba output u donjem prozoru bi trebalo da izgleda ovako:

output-aplikacije

Na ovom prozoru postoje još dva tastera, prvi je “Configure Spoofing” za granularna podešavanja ARP spoofinga, a drugi u obliku injekcije predstavlja “Configure HTTP Injecting” funkcionalnost na koju ćemo se vratiti malo kasnije.
U okviru RAW mode pregleda, možemo da vidimo kako „napad“ funkcioniše.

rawmodepregled

Sa računara na IP adresi 192.168.1.220 pingovan je Google DNS server na adresi 8.8.8.8. Taj saobraćaj je presretnut i prosleđen sa naše Stealth IP adrese 192.168.1.221 Primljen je odgovor od Google-a, opet na Stealth IP adresu, i na kraju prosleđen žrtvi. Žrtva, naravno, svega ovoga nije svesna, njena percepcija je da je paket poslat direktno ruteru i odgovor takođe dobijen direktno od rutera.

U odeljku Resurrection možemo videti fajlove koji su rekonstruisani od presretnutih paketa. Desnim klikom na fajl otvara se meni koji omogućuje da se fajl pregleda ili da se otvori folder u kojem Intercepter-NG čuva sve presretnute fajlove.

rekonstrukcija-paketa

Desnim klikom u prazno otvara se meni za filtriranje prikazanih rezultata.

filtriranjerezultata

PASSWORD MODE

passwordmod

Poslednji unos (na gornjoj slici) je presretnuti HTTPS saobraćaj. U Username polju vidimo presretnuto korisničko ime, a u password polju lozinku. U from/to polju je navedena IP adresa napadača, iako je sajtu ustvari pristupila žrtva sa adrese 192.168.1.220.

Za kraj, vratićemo se na HTTP injecting. Ova funkcionalnost omogućuje da po šablonu kojeg sami kreiramo, neki od html elemenata, uzmimo za primer sve slike koje presretnemo, zamenimo elementom kojeg mi odaberemo.
Vratićemo se na NAT mode i odabrati Configure HTTP Injecting.

httpinjectdetalj2

Pattern je šablon po kojem se presreću fajlovi (moguće je definisati wildcard, ime, ekstenziju ili deo imena fajla umesto ekstenzije). Content Type određuje tip fajla (pdf, jpg, png), a Count odredjuje koliko puta će se primeniti ovo pravilo.

httpinjectdetalj

Klikom na Add otvoriće se standardni dijalog u kojem treba izabrati fajl koji se podmeće umesto originala. Sada imamo definisan šablon za HTTP Injecting. Naravno, moguće je u isto vreme definisati više šablona.

Setovanje se momentalno primenjuje, tako da sada u polju ispod opcija output izgledao kao na narednoj slici, kada god se presretnut saobraćaj poklopi sa kriterijumom za injecting.

httpinjecting

Ovo je rezultat – sve .png slike su presretnute i zamenjene onom koju smo izabrali:

injectionrezultat

ZAKLJUČAK

Praktični primer iz ovog teksta je grub prikaz korišćenja jedne aplikacije namenjene Packet Sniffing-u. Kroz prikaz korišćenja Intercepter-NG aplikacije, može se steći uvid u mogućnosti Packet Sniffing-a i naslutiti šta se sve ovom tehnologijom može postići, što je i bio cilj ovog teksta.

itmogul-logoTekst je preuzet sa ugašenog bloga IT modul i originalni autor ovog teksta je Siniša Marjanović. Kompjuteraš IT blog će objavljivati tekstove sa tog bloga kako riznica znanja sa te lokacije ne bi otišla u zaborav.

3 komentara na tekst Packet Sniffing – Predstavljanje, uvod u tehnologiju i primer snifovanja

Komentarišite

Email neće biti javno objavljen. Sajt je neobavezan podatak, svi ostali su obavezni.