Analizatori mrežnih paketa. Njuškalo analizatora mrežnog prometa. Što je njuškalo: opis Kako njuškalo radi

Njuškala Snifferi su programi koji mogu presresti i naknadno analizirati mrežni promet. Snifferi su korisni u slučajevima kada trebate presresti lozinke ili provesti mrežnu dijagnostiku. Program se može instalirati na jedan uređaj kojemu imate pristup iu kratkom vremenu primati sve prenesene podatke iz podmreže.

Kako rade njuškala

Možete presresti promet putem njuškala na sljedeće načine:

  • Osluškujući u normalnom načinu rada mrežnog sučelja, ova metoda je učinkovita samo kada se u određenom polju koriste čvorišta, a ne preklopnici.
  • Ako spojite sniffer na mjesto gdje se kanal prekida, možete presresti promet.
  • Adapter ili program mijenja putanju prometa i šalje kopiju njuškalu.
  • Zalutalo elektromagnetsko zračenje se analizira i promet se uspostavlja za slušanje.
  • Napada se poveznica i mrežni sloj, koji preusmjerava promet na sniffer za dobivanje podataka, nakon čega se promet preusmjerava prethodnom rutom.

Promet presretnut od strane njuškala se analizira, što nam omogućuje da identificiramo:

Konvencionalni njuškali analiziraju promet vrlo jednostavno, koristeći najdostupnije automatizirane alate i sposobni su analizirati samo vrlo male količine.

Primjeri najpoznatijih njuškala:

  • WinSniffer 1.3 je najbolji njuškalo, ima mnogo različitih prilagodljivih modova i sposoban je uhvatiti lozinke za razne usluge;
  • CommViev 5.0 hvata i analizira internetski promet, kao i lokalnu mrežu. Prikuplja informacijske podatke povezane s modemom i mrežnom karticom te ih dekodira. Time je moguće vidjeti potpuni popis veza na mreži i statističke podatke o IP-u. Presretnute informacije spremaju se u zasebnu datoteku za naknadnu analizu, a prikladan sustav filtriranja omogućuje vam da zanemarite nepotrebne pakete i ostavlja samo one koje napadač treba;
  • ZxSniffer 4.3 je mali sniffer s volumenom od 333 kb, stane na bilo koji moderni medij za pohranu i mogu ga koristiti;
  • SpyNet je prilično poznato i popularno njuškalo. Glavna funkcionalnost uključuje presretanje prometa i dekodiranje paketa podataka;
  • IRIS ima opsežne mogućnosti filtriranja. Sposobnost hvatanja paketa s određenim ograničenjima.

Klasifikacija njuškala

Njuškala se prema načinu korištenja dijele na legalne i ilegalne. Pritom se sam koncept sniffera primjenjuje upravo u odnosu na ilegalnu uporabu, dok se legalni nazivaju “Traffic Analyzer”.

Kako bi dobili potpunu informaciju o stanju mreže i razumjeli što zaposlenici rade na svojim radnim mjestima, koriste se legalnim snifferima (analizatorima prometa). Ne može se precijeniti pomoć njuškala kada je potrebno "osluškivati" programske portove preko kojih mogu slati povjerljive informacije svojim vlasnicima. Za programere, oni pomažu u otklanjanju pogrešaka i interakciji programa. Pomoću analizatora prometa možete odmah otkriti neovlašteni pristup podacima ili DoS napad.

Nezakonito korištenje uključuje špijuniranje korisnika mreže; napadač će moći dobiti informacije o tome koje stranice korisnik koristi, šalje podatke i saznaje o programima koji se koriste za komunikaciju. Glavna svrha "slušanja" prometa je dobivanje prijava i lozinki koje se prenose u nešifriranom obliku.

Analizatori prometa razlikuju se po sljedećim mogućnostima:

  • Podrška za protokole sloja veze kao i fizička sučelja.
  • Kvaliteta dekodiranja protokola.
  • Korisničko sučelje.
  • Omogućuju pristup statistici, pregled prometa u stvarnom vremenu itd.

Izvor prijetnje

Njuškali mogu raditi na:

  • Router – može se analizirati sav promet koji prolazi kroz uređaj.
  • Na krajnjem čvoru mreže svi podaci koji se prenose mrežom dostupni su svim mrežnim karticama, ali u standardnom načinu rada mrežne kartice kojima podaci nisu namijenjeni to jednostavno ne primijete. U isto vrijeme, ako mrežnu karticu prebacite u promiskuitetni način rada, moći ćete primati sve podatke koji se prenose mrežom. I naravno, njuškala vam omogućuju prebacivanje na ovaj način rada.

Analiza rizika

Svaka organizacija može biti u opasnosti od njuškanja. U isto vrijeme, postoji nekoliko opcija kako zaštititi organizaciju od curenja podataka. Prvo morate koristiti enkripciju. Drugo, možete koristiti antisniffere.

Antisniffer je softverski ili hardverski alat koji radi na mreži i omogućuje vam pronalaženje njuškala.

Koristeći samo enkripciju pri prijenosu podataka, neće biti moguće sakriti činjenicu prijenosa. Stoga možete koristiti enkripciju u kombinaciji s antisnifferom.

Program Wireshark bit će izvrstan pomoćnik onim korisnicima koji trebaju izvršiti detaljnu analizu mrežnih paketa - prometa računalne mreže. Njuškalo lako komunicira s uobičajenim protokolima kao što su netbios, fddi, nntp, icq, x25, dns, irc, nfs, http, tcp, ipv6 i mnogi drugi. Tijekom analize omogućuje vam razdvajanje mrežnog paketa na odgovarajuće komponente, prema određenom protokolu, te prikaz čitljivih informacija u numeričkom obliku na ekranu.
podržava veliki broj različitih formata odaslanih i primljenih informacija i može otvoriti datoteke koje koriste drugi uslužni programi. Princip rada je da mrežna kartica prelazi u način emitiranja i počinje presretati mrežne pakete koji su unutar njezinog dometa vidljivosti. Može raditi kao program za presretanje wifi paketa.

Kako koristiti Wireshark

Program proučava sadržaj paketa informacija koji prolaze kroz mrežu. Za pokretanje i korištenje rezultata njuškala ne trebate nikakvo posebno znanje, samo ga trebate otvoriti u izborniku “Start” ili kliknuti na ikonu na radnoj površini (pokretanje se ne razlikuje od bilo kojeg drugog Windows programa) . Posebna funkcija uslužnog programa omogućuje mu snimanje paketa informacija, pažljivo dešifriranje njihovog sadržaja i vraćanje korisniku na analizu.

Nakon pokretanja wiresharka, na ekranu ćete vidjeti glavni izbornik programa koji se nalazi na vrhu prozora. Koristi se za kontrolu korisnosti. Ako trebate učitati datoteke koje pohranjuju podatke o paketima uhvaćenim u prethodnim sesijama, kao i spremiti podatke o drugim paketima uhvaćenim u novoj sesiji, tada će vam za to trebati kartica "Datoteka".

Kako bi pokrenuo funkciju snimanja mrežnih paketa, korisnik mora kliknuti na ikonu "Capture", zatim pronaći poseban odjeljak izbornika pod nazivom "Sučelja", s kojim možete otvoriti zasebni prozor "Sučelja za snimanje Wiresharka", gdje bi trebala biti dostupna sva dostupna mrežna sučelja. biti prikazan, kroz koji će uhvatiti potrebne pakete podataka. U slučaju kada program (njuškalo) može detektirati samo jedno odgovarajuće sučelje, prikazat će sve važne informacije o njemu na ekranu.

Rezultati rada komunalnog servisa izravan su dokaz da, čak i ako korisnici nisu samostalno (u određenom trenutku) uključeni u prijenos bilo kakvih podataka, razmjena informacija na mreži ne prestaje. Uostalom, princip rada lokalne mreže je da, kako bi se održala u radnom načinu rada, svaki njen element (računalo, preklopnik i drugi uređaji) neprekidno međusobno razmjenjuje servisne informacije, stoga su takvi mrežni alati dizajnirani za presretanje takve pakete.

Postoji i verzija za Linux sustave.

Treba napomenuti da Njuškalo je iznimno korisno za mrežne administratore i računalne sigurnosne usluge, jer vam uslužni program omogućuje prepoznavanje potencijalno nezaštićenih mrežnih čvorova - vjerojatnih područja koja hakeri mogu napasti.

Osim svoje izravne namjene, Wireshark se može koristiti kao alat za praćenje i daljnju analizu mrežnog prometa u svrhu organiziranja napada na nezaštićena područja mreže, jer se presretnuti promet može koristiti za postizanje raznih ciljeva.


U ovom članku ćemo pogledati stvaranje jednostavnog njuškala za Windows OS.
Svi zainteresirani, dobrodošli u cat.

Uvod

Cilj: napišite program koji će hvatati mrežni promet (Ethernet, WiFi) koji se prenosi preko IP-a.
Sadržaji: Visual Studio 2005 ili noviji.
Ovdje opisani pristup ne pripada osobno autoru i uspješno se koristi u mnogim komercijalnim, kao i potpuno besplatnim programima (pozdrav, GPL).
Ovaj rad je prvenstveno namijenjen početnicima u mrežnom programiranju, koji, međutim, imaju barem osnovna znanja iz područja soketa općenito, a posebno Windows soketa. Ovdje ću često napisati poznate stvari, jer je tema specifična, ako nešto propustim, bit će mi nered u glavi.

Nadam se da će vam biti zanimljivo.

Teorija (čitanje nije obavezno, ali se preporučuje)

Trenutno se velika većina modernih informacijskih mreža temelji na temelju TCP/IP protokola. TCP/IP protokol protokola (Transmission Control Protocol/Internet Protocol) je skupni naziv za mrežne protokole različitih razina koji se koriste u mrežama. U ovom članku će nas uglavnom zanimati IP protokol - usmjeravani mrežni protokol koji služi za nezajamčenu isporuku podataka podijeljenih u tzv. pakete (točniji termin je datagram) od jednog mrežnog čvora do drugog.
Posebno su nam zanimljivi IP paketi namijenjeni prijenosu informacija. Ovo je prilično visoka razina OSI mrežnog modela podataka, kada se možete izolirati od uređaja i medija za prijenos podataka, radeći samo s logičkim prikazom.
Sasvim je logično da su se prije ili kasnije trebali pojaviti alati za presretanje, praćenje, obračun i analizu mrežnog prometa. Takvi se alati obično nazivaju analizatori prometa, analizatori paketa ili snifferi (od engleskog to sniff - njuškanje). Ovo je analizator mrežnog prometa, program ili hardversko-softverski uređaj dizajniran za presretanje i naknadnu analizu ili samo analizu mrežnog prometa namijenjenog drugim čvorovima.

Praksa (sadržajni razgovor)

Trenutno je stvoreno dosta softvera za praćenje prometa. Najpoznatiji od njih: Wireshark. Naravno, cilj nije pobrati njegove lovorike - zanima nas zadatak presretanja prometa jednostavnim "osluškivanjem" mrežnog sučelja. Važno je razumjeti da nećemo hakirati i presretati stranac promet. Samo trebamo pregledati i analizirati promet koji prolazi kroz naš host.

Zašto bi ovo moglo biti potrebno:

  1. Pogledajte trenutni protok prometa kroz mrežnu vezu (dolazni/odlazni/ukupno).
  2. Preusmjerite promet za naknadnu analizu na drugi host.
  3. Teoretski, možete ga pokušati upotrijebiti za hakiranje WiFi mreže (nećemo to učiniti, zar ne?).
Za razliku od Wiresharka, koji se temelji na biblioteci libpcap/WinPcap, naš analizator neće koristiti ovaj upravljački program. Štoviše, uopće nećemo imati upravljački program i nećemo pisati vlastiti NDIS (o užasa!). O tome možete pročitati u ovoj temi. On će jednostavno biti pasivni promatrač, koristeći samo WinSock biblioteka. Korištenje upravljačkog programa u ovom slučaju je suvišno.

Kako to? Jako jednostavno.
Ključni korak u pretvaranju jednostavne mrežne aplikacije u mrežni analizator je prebacivanje mrežnog sučelja u promiskuitetni način rada, što će omogućiti primanje paketa upućenih drugim sučeljima na mreži. Ovaj način rada prisiljava mrežnu karticu da prihvati sve okvire, bez obzira na to kome su upućeni na mreži.

Počevši sa sustavom Windows 2000 (NT 5.0), postalo je vrlo jednostavno stvoriti program za slušanje mrežnog segmenta, jer njegov mrežni upravljački program omogućuje vam postavljanje utičnice za primanje svih paketa.

Omogućavanje promiskuitetnog načina rada
duga zastava = 1; UTIČNICA utičnica; #define SIO_RCVALL 0x98000001 ioctlsocket(utičnica, SIO_RCVALL, &RS_Flag);
Naš program radi na IP paketima i koristi Windows Sockets biblioteku verzije 2.2 i sirove utičnice. Kako biste dobili izravan pristup IP paketu, utičnica mora biti kreirana na sljedeći način:
Stvaranje sirove utičnice
s = utičnica (AF_INET, SOCK_RAW, IPPROTO_IP);
Ovdje umjesto konstante SOCK_STREAM(TCP protokol) ili SOCK_DGRAM(UDP protokol), koristimo vrijednost SOCK_RAW. Općenito govoreći, rad s neobrađenim soketima zanimljiv je ne samo s gledišta snimanja prometa. Zapravo, dobivamo potpunu kontrolu nad formiranjem paketa. Ili bolje rečeno, formiramo ga ručno, što omogućuje, na primjer, slanje određenog ICMP paketa...

Samo naprijed. Poznato je da se IP paket sastoji od zaglavlja, servisnih informacija i zapravo podataka. Savjetujem vam da pogledate ovdje kako biste obnovili svoje znanje. Opišimo IP zaglavlje u obliku strukture (zahvaljujući izvrsnom članku na RSDN):

Opis strukture IP paketa
typedef struct _IPHeader ( unsigned char ver_len; // verzija zaglavlja i duljina unsigned char tos; // vrsta usluge unsigned short length; // duljina cijelog paketa unsigned short id; // Id unsigned short flgs_offset; // zastavice i pomak neoznačeni char ttl; // neoznačeni protokol char; // IP adresa pošiljatelja neoznačeni kratki *params; // podaci (do 65535 okteta) )IPHeader;
Glavna funkcija algoritma slušanja izgledat će ovako:
Funkcija snimanja jednog paketa
IPHeader* RS_Sniff() ( IPHeader *hdr; int count = 0; count = recv(RS_SSocket, (char*)&RS_Buffer, sizeof(RS_Buffer), 0); if (count >= sizeof(IPHeader)) ( hdr = (LPIPHeader) )malloc(MAX_PACKET_SIZE); memcpy(hdr, RS_Buffer, MAX_PACKET_SIZE); RS_UpdateNetStat(count, hdr) inače vraća 0;
Ovdje je sve jednostavno: primamo dio podataka pomoću standardne funkcije utičnice recv, a zatim ih kopirajte u strukturu poput IPHeader.
I na kraju, pokrećemo beskrajnu petlju za hvatanje paketa:
Snimimo sve pakete koji dođu do našeg mrežnog sučelja
while (true) ( ​​​​IPHeader* hdr = RS_Sniff(); // obrada IP paketa if (hdr) ( // ispis zaglavlja u konzoli) )
Malo offtopic
Ovdje i dolje, autor je napravio RS_ (od Raw Sockets) prefiks za neke važne funkcije i varijable. Projekt sam radio prije 3-4 godine i imao sam ludu ideju da napišem potpunu biblioteku za rad s raw socketima. Kao što se često događa, nakon dobivanja nekih značajnih (za autora) rezultata, entuzijazam je izblijedio, a stvar nije otišla dalje od primjera za obuku.

U principu, možete ići dalje i opisati zaglavlja svih sljedećih protokola koji se nalaze iznad. Da biste to učinili, morate analizirati polje protokol u strukturi IPHeader. Pogledajte primjer koda (da, trebao bi postojati prekidač, dovraga!), gdje je zaglavlje obojeno ovisno o tome koji je protokol paket enkapsuliran u IP:

/* * Označavanje paketa bojom */ void ColorPacket(const IPHeader *h, const u_long haddr, const u_long whost = 0) ( if (h->xsum) SetConsoleTextColor(0x17); // ako paket nije prazan else SetConsoleTextColor(0x07) ; // prazan paket if (haddr == h->src) ( SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_RED | FOREGROUND_INTENSITY); // "nativni" paket za povratak ) else if (haddr == h->dest ) ( SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_GREEN | FOREGROUND_INTENSITY); // "nativni" prijemni paket ) if (h->protocol == PROT_ICMP || h->protocol == PROT_IGMP) ( SetConsoleTextColor (0x70) ; // ICMP paket ) else if(h->protocol == PROT_IP || h->protocol == 115) ( SetConsoleTextColor(0x4F); // IP-in-IP paket, L2TP ) else if(h - >protocol == 53 ||. h->protocol == 56) ( SetConsoleTextColor(0x4C); // TLS, IP s šifriranjem ) if(whost == h->dest || whost == h->src) ( SetConsoleTextColor (0x0A);

Međutim, to je znatno izvan dosega ovog članka. Za naš primjer treninga bit će dovoljno pogledati IP adrese hostova s ​​kojih i na koje dolazi promet te izračunati njegovu količinu po jedinici vremena (gotovi program je u arhivi na kraju članka) .

Kako biste prikazali podatke IP zaglavlja, morate implementirati funkciju za pretvaranje zaglavlja (ali ne i podataka) datagrama u niz. Kao primjer implementacije možemo ponuditi sljedeću opciju:

Pretvaranje IP zaglavlja u niz
inline char* iph2str(IPHeader *iph) ( const int BUF_SIZE = 1024; char *r = (char*)malloc(BUF_SIZE); memset((void*)r, 0, BUF_SIZE); sprintf(r, "ver=% d hlen=%d tos=%d len=%d id=%d flags=0x%X offset=%d ttl=%dms prot=%d crc=0x%X src=%s dest=%s", BYTE_H (iph->ver_len), BYTE_L(iph->ver_len)*4, iph->tos, ntohs(iph->length), ntohs(iph->id), IP_FLAGS(ntohs(iph->flgs_offset)), IP_OFFSET (ntohs(iph->flgs_offset)), iph->ttl, iph->protocol, ntohs(iph->xsum), nethost2str(iph->src), nethost2str(iph->dest));
Na temelju gore navedenih osnovnih informacija dobivamo ovaj mali program (jezivo ime ss, skraćeno od simple sniffer), koji implementira lokalno slušanje IP prometa. Njegovo sučelje prikazano je na donjoj slici.

Dajem izvorni i binarni kod kakav jest, kakav je bio prije nekoliko godina. Sada me je strah gledati u to, a opet, prilično je čitljivo (naravno, ne možete biti tako samouvjereni). Čak će i Visual Studio Express 2005 biti dovoljan za kompilaciju.

Što smo na kraju dobili:

  • Njuškalo radi u korisničkom načinu rada, ali zahtijeva administratorske ovlasti.
  • Paketi se ne filtriraju i prikazuju se onakvi kakvi jesu (možete dodati prilagođene filtre - predlažem da ovu temu detaljno pogledate u sljedećem članku ako ste zainteresirani).
  • Također se hvata WiFi promet (sve ovisi o konkretnom modelu čipa, možda vam neće raditi kao meni prije nekoliko godina), iako postoji AirPcap koji to može izvrsno, ali košta.
  • Cijeli tok datagrama zapisuje se u datoteku (pogledajte arhivu priloženu na kraju članka).
  • Program radi kao poslužitelj na portu 2000. Možete se spojiti na glavno računalo pomoću uslužnog programa telnet i pratiti tokove prometa. Broj veza je ograničen na dvadeset (kod nije moj, našao sam ga na internetu i koristio za eksperimente; nisam ga izbrisao - šteta)
Hvala vam na pažnji, čestitam stanovnicima Khabrovsk i Khabrovsk i svima, svima, sretan Božić!

SmartSniff je TCP/IP sniffer koji vam omogućuje hvatanje paketa koji prolaze kroz vaš mrežni adapter i pregled snimljenih podataka kao slijed komunikacije između klijenta i poslužitelja. Pregled sadržaja paketa moguć je u ASCII formatu (za tekstualne protokole kao što su HTTP, SMTP, POP3 i FTP) i kao HEX kod. Za korištenje SmartSniffa nije potrebna nikakva instalacija, samo raspakirajte arhivu i pokrenite program. Programer distribuira SmartSniff potpuno besplatno.

Ključne značajke i funkcije

SmartSniff nudi tri načina za hvatanje TCP/IP paketa:

1. Sirove utičnice. Omogućuje snimanje mrežnih paketa bez instaliranja upravljačkog programa za snimanje. Ali ova metoda ima niz ograničenja:

  • odlazni UDP i ICMP paketi se ne prate;
  • u sustavu Windows XP SP1 uopće se ne prate zbog Microsoftove pogreške koja je prisutna u SP1. Ova greška je ispravljena u SP2, ali se ponovno pojavila u sustavu Windows Vista;
  • u sustavu Windows Vista SP1 nadziru se samo UDP paketi.

2. Korištenje WinPsap drajvera za snimanje paketa. Omogućuje vam snimanje svih paketa pod svim Windows operativnim sustavima. Ovo je poželjna metoda i zahtijeva instaliranje upravljačkog programa WinPcap.

3. Microsoftov upravljački program za mrežni monitor (samo Windows 2000/XP/2003). Microsoft nudi besplatni upravljački program za snimanje paketa, ali on nije instaliran prema zadanim postavkama, pa ga trebate instalirati. Dva su dostupna načina za instaliranje upravljačkog programa Microsoft Network Monitor:

  • s Windows diska;
  • preuzmite Windows XP Service Pack 2 Support Tools. Jedan od alata u ovom paketu je netcap.exe. Pokrenite ga i upravljački program će se automatski instalirati.

Način prikaza.
SmartSniff ima tri načina pregledavanja paketa: Automatski, ASCII, HEX. U automatskom načinu rada SmartSniff provjerava prvi bajt snimljenih podataka - ako sadrži znak manji od 0x20, tada ispisuje podatke u HEX načinu rada, inače u ASCII načinu rada. Način prikaza sadržaja paketa lako se mijenja odabirom željenog u izborniku.

Izvoz podataka.
Gornja traka: Možete odabrati stavke na gornjoj traci, kopirati u međuspremnik i zalijepiti u Excel ili OpenOffice.org proračunsku tablicu. Također ih možete spremiti u tekstualnom/HTML/XML formatu (koristeći "Spremi sažetke paketa").
Donja ploča: Možete odabrati željeni tekst i zalijepiti ga u željeni uređivač teksta ili ga spremiti izravno u tekstualnu datoteku, HTML datoteku ili RAW datoteku pomoću opcije "Izvoz TCP/IP tokova".

Što je novo u ovoj verziji?

2.26 (20.07.2016)

  • sada program automatski preuzima novu verziju WinPCap upravljačkog programa s https://nmap.org/npcap/ ako je instaliran na sustavu;
  • SmartSniff sada pokušava učitati upravljački program mrežnog monitora 3.x DLL (NmApi.dll) prema putanji navedenoj u HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Netmon3. Ovo bi trebalo riješiti problem učitavanja upravljačkog programa Network Monitor 3.x na nekim sustavima.

SmartSniff omogućuje presretanje mrežnog prometa i prikaz njegovog sadržaja u ASCII formatu. Program hvata pakete koji prolaze kroz mrežni adapter i prikazuje sadržaj paketa u tekstualnom obliku (http, pop3, smtp, ftp protokoli) i kao heksadecimalni ispis. Za snimanje TCP/IP paketa SmartSniff koristi sljedeće tehnike: sirove utičnice - RAW utičnice, WinCap Capture Driver i Microsoft Network Monitor Driver. Program podržava ruski jezik i jednostavan je za korištenje.

Sniffer program za hvatanje paketa


SmartSniff prikazuje sljedeće informacije: naziv protokola, lokalnu i udaljenu adresu, lokalni i udaljeni port, lokalni čvor, naziv usluge, količinu podataka, ukupnu veličinu, vrijeme snimanja i vrijeme posljednjeg paketa, trajanje, lokalnu i udaljenu MAC adresu, zemlje i paket podataka sadržaj . Program ima fleksibilne postavke, implementira funkciju filtra za snimanje, raspakiranje http odgovora, pretvaranje IP adresa, uslužni program je minimiziran na traku sustava. SmartSniff generira izvješće o protoku paketa kao HTML stranicu. Program može izvesti TCP/IP tokove.