IP snifferji. Sniffer analizatorja omrežnega prometa

Za Win2000 - Windows 10 (2019) (strežnik, x86, x64). Najnovejša različica: 4.4.17 build 424. 24. april 2019.

Kaj je sniffer serijskih vrat je program, ki nadzoruje prenos podatkov s strani drugega programa in se tako rekoč »zagozdi« med serijskim vmesnikom in programom, ki ga proučujemo. Prestreznik podatkov serijskih vrat vam omogoča preučevanje funkcij delovanja vašega ali drugega programa, ki se izvaja v sistemu Windows. Če ste program, ki ga preučujete, razvili vi, se prestreznik podatkov serijskih vrat spremeni v razhroščevalnik vmesnika RS232, ki vam bo omogočil sledenje napakam, ki se pojavijo med izmenjavo podatkov. Način spremljanja podatkov serijskih vrat v našem programu se imenuje »Opazovalec« in se prikliče iz menija »Način« v glavnem oknu programa.

Preklopiti je treba na način vohanja podatkov serijskih vrat PREJ zaženite preučevani program. Če tega ne storite, potem sniffer serijskih vrat ne bo mogel več dostopati do serijskih vrat in posledično ne bo mogel opravljati svojih funkcij.

V načinu prestreznika podatkov serijskih vrat program spremlja ves promet, tako oddani kot prejeti. Poslane podatke lahko označite na zaslonu programa. To funkcijo je mogoče omogočiti v možnostih na zavihku "Drugo / vrsta podatkov".

Naš prestreznik podatkov serijskih vrat vam omogoča spremljanje prenosa podatkov na zaslonu v poljubni obliki (šestnajstiški, decimalni ali kakršni koli drugi). To vam omogoča iskanje ponavljajočih se zaporedij podatkovnih blokov in prepoznavanje vzorcev pri prehodu podatkov, ne da bi zapustili prestreznik podatkov serijskih vrat.

Druga pomembna značilnost našega prestreznika podatkov serijskih vrat je možnost shranjevanja poslanih in prejetih podatkov v datoteko za poznejšo analizo. Način generiranja datotek prestreznika podatkov serijskih vrat je prilagodljivo konfiguriran, kar prihrani čas pri analizi velike količine podatkov, ki jih zabeleži program.

Naš program je zelo enostavno spremeniti v zmogljiv in zelo prilagodljiv opazovalec podatkov. Če želite to narediti, preprosto prenesite in namestite program. Nato zaženite program. V glavnem meniju »Način« izberite način »Opazovalec«. Nato s seznama izberite serijska vrata in kliknite gumb "Odpri". Ne pozabite, da je to treba storiti pred zagonom preučevanega programa. In vse je v vaših rokah - univerzalno orodje za reševanje najrazličnejših težav.

V primerjavi z drugimi vohalniki serijskih vrat ima Advanced Serial Port Monitor več edinstvenih funkcij:

  • Prestreznik podatkov serijskih vrat omogoča delovanje v celotni družini operacijskih sistemov Windows, od Windows 2000 do Windows 10 x64;
  • Prestreznik podatkov serijskih vrat vam omogoča spremljanje prenosa podatkov na vseh serijskih vratih, nameščenih v sistemu. Številka serijskih vrat je lahko od 1 do 255;
  • Sniffer za serijska vrata vam omogoča spremljanje prometa, ki se prenaša med klicno povezavo.

Vse zmožnosti prestreznika podatkov serijskih vrat so implementirane v našem programu Advanced Serial Port Monitor. Prenesite preskusno različico zdaj - hitro in brezplačno je!

Vohljači- to so programi, ki prestrežejo
ves omrežni promet. Snifferji so uporabni za diagnostiko omrežja (za skrbnike) in
za prestrezanje gesel (jasno za koga :)). Na primer, če ste pridobili dostop do
en omrežni stroj in tam namestil vohalnik,
potem kmalu vsa gesla iz
njihova podomrežja bodo vaša. Set vohalk
omrežna kartica pri poslušanju
načinu (PROMISC).To pomeni, da prejmejo vse pakete. Lokalno lahko prestrežeš
vsi poslani paketi z vseh strojev (če niste ločeni z vozlišči),
torej
Kako se tam izvaja oddajanje?
Vohalci lahko prestrežejo vse
paketi (kar je zelo neprijetno, dnevniška datoteka se strašno hitro polni,
vendar je za podrobnejšo analizo omrežja popoln)
ali samo prve bajte iz vseh vrst
ftp, telnet, pop3 itd. (to je zabaven del, običajno v približno prvih 100 bajtih
vsebuje uporabniško ime in geslo :)). Vohljači zdaj
ločena... Veliko je vohljačev
tako pod Unixom kot pod Windows (tudi pod DOS-om obstaja :)).
Vohalci lahko
podpira samo določeno os (na primer linux_sniffer.c, ki
podpira Linux :)), ali več (na primer Sniffit,
deluje z BSD, Linux, Solaris). Vohljači so tako obogateli, ker
da se gesla prenašajo po omrežju v čistem besedilu.
Takšne storitve
veliko. To so telnet, ftp, pop3, www itd. Te storitve
uporablja veliko
ljudje :). Po razmahu vohljačev razno
algoritmi
šifriranje teh protokolov. Pojavil se je SSH (alternativa
podpira telnet
šifriranje), SSL (Secure Socket Layer – razvoj Netscape, ki lahko šifrira
www seja). Vse vrste Kerberous, VPN (Virtual Private
omrežje). Uporabljeni so bili nekateri AntiSniffs, ifstatus itd. Ampak to v bistvu ni
spremenila situacijo. Storitve, ki uporabljajo
pošiljanje navadnega besedilnega gesla
se uporabljajo na polno :). Bodo pa zato še dolgo čohali :).

Izvedbe vohalca Windows

linsniffer
To je preprosto vohanje za prestrezanje
prijave/gesla. Standardno prevajanje (gcc -o linsniffer
linsniffer.c).
Dnevniki se pišejo v tcp.log.

linux_sniffer
Linux_sniffer
potrebno, ko želite
podrobno preučite omrežje. Standardno
kompilacija. Izdaja vse vrste dodatnih bedarij,
kot so isn, ack, syn, echo_request (ping) itd.

Sniffit
Sniffit - napredni model
sniffer, ki ga je napisal Brecht Claerhout. Namestite (potrebno
libcap):
#./configure
#naredi
Zdaj pa zaženimo
vohljanje:
#./sniffit
uporaba: ./sniffit [-xdabvnN] [-P proto] [-A char] [-p
vrata] [(-r|-R) zapisna datoteka]
[-l sniflen] [-L logparam] [-F snifdevice]
[-M vtičnik]
[-D tty] (-t | -s ) |
(-i|-I) | -c ]
Razpoložljivi vtičniki:
0 -- Dummy
Vključiti
1 -- Vtičnik DNS

Kot lahko vidite, sniffit podpira mnoge
opcije. Sniffak lahko uporabljate interaktivno.
Povohajte vendarle
zelo uporaben program, vendar ga ne uporabljam.
Zakaj? Ker Sniffit
velike težave z zaščito. Za Sniffit sta bila že izdana oddaljeni root in dos
Linux in Debian! Vsak vohljalec si tega ne dovoli :).

LOV
to
moj najljubši smrček. Je zelo enostaven za uporabo,
podpira veliko kul
čipov in trenutno nima varnostnih težav.
Plus ne veliko
zahtevne knjižnice (kot sta linsniffer in
Linux_sniffer). On
lahko prestreže trenutne povezave v realnem času in
čisti dump z oddaljenega terminala. IN
na splošno Hijack
pravilozzz:). priporočam
vsem za izboljšano uporabo :).
Namesti:
#naredi
Teči:
#lov -i

READSMB
Sniffer READSMB je izrezan iz LophtCrack in prenesen v
Unix (nenavadno :)). Readsmb prestreže SMB
paketi.

TCPDUMP
tcpdump je dokaj znan analizator paketov.
Napisano
še bolj znana oseba - Van Jacobson, ki je izumil kompresijo VJ za
PPP in napisal program traceroute (in kdo ve kaj še?).
Zahteva knjižnico
Libpcap.
Namesti:
#./configure
#naredi
Zdaj pa zaženimo
ona:
#tcpdump
tcpdump: poslušanje na ppp0
Vse vaše povezave so prikazane na
terminal. Tukaj je primer izpisa ping

ftp.technotronic.com:
02:03:08.918959
195.170.212.151.1039 > 195.170.212.77.domena: 60946+ A?
ftp.technotronic.com.
(38)
02:03:09.456780 195.170.212.77.domena > 195.170.212.151.1039: 60946*
1/3/3 (165)
02:03:09.459421 195.170.212.151 > 209.100.46.7: icmp: odmev
prošnja
02:03:09.996780 209.100.46.7 > 195.170.212.151: icmp: odmev
odgovor
02:03:10.456864 195.170.212.151 > 209.100.46.7: icmp: odmev
prošnja
02:03:10.906779 209.100.46.7 > 195.170.212.151: icmp: odmev
odgovor
02:03:11.456846 195.170.212.151 > 209.100.46.7: icmp: odmev
prošnja
02:03:11.966786 209.100.46.7 > 195.170.212.151: icmp: odmev
odgovor

Na splošno je sniff uporaben za odpravljanje napak v omrežjih,
odpravljanje težav in
itd.

Dvohaj
Dsniff zahteva libpcap, ibnet,
libnids in OpenSSH. Beleži samo vnesene ukaze, kar je zelo priročno.
Tukaj je primer dnevnika povezav
na unix-shells.com:

02/18/01
03:58:04 tcp my.ip.1501 ->
handi4-145-253-158-170.arcor-ip.net.23
(telnet)
stalsen
asdqwe123
ls
pwd
WHO
zadnji
izhod

Tukaj
dsniff je prestregel prijavo in geslo (stalsen/asdqwe123).
Namesti:
#./configure
#naredi
#naredi
namestite

Zaščita pred vohalci

Najzanesljivejši način zaščite pred
vohljači -
uporabite ŠIFRIRANJE (SSH, Kerberous, VPN, S/Key, S/MIME,
SHTTP, SSL itd.). No
in če se ne želite odpovedati storitvam navadnega besedila in namestiti dodatnih
paketi :)? Potem je čas, da uporabite pakete proti vohanju ...

AntiSniff za Windows
Ta izdelek je izdala znana skupina
Podstrešje. To je bil prvi izdelek te vrste.
AntiSniff, kot je navedeno v
Opis:
"AntiSniff je orodje, ki temelji na grafičnem uporabniškem vmesniku (GUI) za
odkrivanje promiskuitetnih omrežnih vmesniških kartic (NIC) v vašem lokalnem omrežju
segment". Na splošno lovi karte v promisc načinu.
Podpira ogromno
število testov (DNS test, ARP test, Ping test, ICMP Time Delta
Test, Echo Test, PingDrop test). Lahko se skenira kot en avto,
in mrežo. Tukaj je
podpora dnevnika. AntiSniff deluje na win95/98/NT/2000,
čeprav priporočljivo
NT platforma. Toda njegova vladavina je bila kratka in bo kmalu
čas se je pojavil vohalnik z imenom AntiAntiSniffer :),
napisal Mike
Perry (Mike Perry) (najdete ga na www.void.ru/news/9908/snoof.txt).
ki temelji na LinSnifferju (o katerem razpravljamo spodaj).

Vohanje Unix zazna:
Sniffer
najdete z ukazom:

#ifconfig -a
lo Link encap: Lokalno
Povratna zanka
inet naslov:127.0.0.1 Maska:255.0.0.0
U.P.
VOŽNJA Z ZANKO MTU:3924 Metrika:1
Paketi RX:2373 napak:0
padlo:0 prekoračitev:0 okvir:0
Paketi TX: 2373 napak: 0 padli: 0
prekoračitve:0 nosilec:0
trki:0 txqueuelen:0

ppp0 Povezava
encap: protokol od točke do točke
inet naslov:195.170.y.x
P-t-P:195.170.y.x Maska:255.255.255.255
UP POINTOPINT PROMISC
IZVAJANJE NOARP MULTICAST MTU:1500 Metrika:1
RX paketi: 3281
napake:74 padlo:0 prekoračitve:0 okvir:74
Paketi TX:3398 napak:0
padlo:0 prekoračitev:0 nosilec:0
trki:0 txqueuelen:10

kako
vidite, da je vmesnik ppp0 v načinu PROMISC. Bodisi operater
naložen voh za
omrežne preglede, ali pa so te že imeli ... Vendar ne pozabite,
da je ifconfig mogoče narediti varno
prevara, zato za odkrivanje uporabite tripwire
spremembe in vse vrste programov
da preverim vohanje.

AntiSniff za Unix.
Deluje za
BSD, Solaris in
Linux. Podpira časovni test ping/icmp, arp test, echo test, dns
test, etherping test, na splošno analog AntiSniff za Win, samo za
Unix :).
Namesti:
#make linux-all

Sentinel
Tudi uporaben program za
lovljenje vohljačev. Podpira številne teste.
Enostavno
uporaba.
Namestite: #make
#./sentinel
./stražar [-t
]
Metode:
[ -a ARP test ]
[ -d DNS test
]
[ -i Test zakasnitve pinga ICMP ]
[ -e ICMP Etherping test
]
Opcije:
[ -f ]
[ -v Pokaži različico in
izhod]
[ -n ]
[ -JAZ
]

Možnosti so tako preproste, da št
komentarji.

VEČ

Tukaj je še nekaj
pripomočki za preverjanje omrežja (npr
Unix):
packetstorm.securify.com/UNIX/IDS/scanpromisc.c -oddaljeno
Detektor načina PROMISC za ethernet kartice (za red hat 5.x).
http://packetstorm.securify.com/UNIX/IDS/neped.c
- Network Promiscuous Ethernet Detector (zahteva libcap & Glibc).
http://packetstorm.securify.com/Exploit_Code_Archive/promisc.c
- pregleduje sistemske naprave, da zazna vohanje.
http://packetstorm.securify.com/UNIX/IDS/ifstatus2.2.tar.gz
- ifstatus testira omrežne vmesnike v načinu PROMISC.

Analizatorji omrežnih paketov ali snifferji so bili prvotno razviti kot sredstvo za reševanje omrežnih težav. Lahko prestrežejo, interpretirajo in shranijo pakete, poslane po omrežju, za poznejšo analizo. Po eni strani to omogoča sistemskim skrbnikom in inženirjem tehnične podpore, da opazujejo, kako se podatki prenašajo po omrežju, diagnosticirajo in odpravijo nastale težave. V tem smislu so paketni snifferji močno orodje za diagnosticiranje omrežnih težav. Po drugi strani pa so se, tako kot mnoga druga zmogljiva orodja, ki so bila prvotno namenjena administraciji, sčasoma tudi vohalnik začeli uporabljati za povsem druge namene. Vohalo v rokah napadalca je namreč precej nevarno orodje in se lahko uporablja za pridobivanje gesel in drugih zaupnih informacij. Vendar ne smete misliti, da so snifferji nekakšno čarobno orodje, s katerim lahko kateri koli heker zlahka vidi zaupne informacije, ki se prenašajo po omrežju. In preden dokažemo, da nevarnost vohljalcev ni tako velika, kot se pogosto predstavlja, razmislimo podrobneje o načelih njihovega delovanja.

Načela delovanja vohalcev paketov

V nadaljevanju tega članka bomo obravnavali samo programske vohače, zasnovane za omrežja Ethernet. Sniffer je program, ki deluje na ravni omrežne kartice NIC (Network Interface Card) (povezavni sloj) in na skrivaj prestreže ves promet. Ker snifferji delujejo na ravni podatkovne povezave modela OSI, jim ni treba igrati po pravilih protokolov višje plasti. Vohalniki obidejo mehanizme filtriranja (naslove, vrata itd.), ki jih gonilniki Ethernet in sklad TCP/IP uporabljajo za interpretacijo podatkov. Paketni vohljači zajamejo iz žice vse, kar pride skozenj. Snifferji lahko shranijo okvirje v binarni obliki in jih pozneje dešifrirajo, da razkrijejo informacije višje ravni, ki so skrite v notranjosti (slika 1).

Da vohalnik zajame vse pakete, ki gredo skozi omrežno kartico, mora gonilnik omrežne kartice podpirati promiskuitetni način. V tem načinu delovanja omrežne kartice lahko vohalo prestreže vse pakete. Ta način delovanja omrežne kartice se samodejno aktivira, ko se vohalo zažene ali pa se nastavi ročno z ustreznimi nastavitvami vohala.

Ves prestreženi promet se posreduje dekodirniku paketov, ki identificira in razdeli pakete na ustrezne hierarhične ravni. Odvisno od zmožnosti posameznega snifferja je mogoče podane informacije o paketu naknadno dodatno analizirati in filtrirati.

Omejitve uporabe snifferjev

Vohljači so predstavljali največjo nevarnost v tistih časih, ko so se informacije po omrežju prenašale v čistem besedilu (brez šifriranja), lokalna omrežja pa so bila zgrajena na osnovi koncentratorjev (hub). Vendar so ti časi za vedno minili in dandanes uporaba vohljačev za dostop do zaupnih informacij nikakor ni lahka naloga.

Dejstvo je, da pri gradnji lokalnih omrežij, ki temeljijo na vozliščih, obstaja določen skupni medij za prenos podatkov (omrežni kabel) in vsa omrežna vozlišča izmenjujejo pakete, ki tekmujejo za dostop do tega medija (slika 2), in paket, ki ga pošlje eno omrežje vozlišče se prenaša na vsa vrata zvezdišča in ta paket poslušajo vsa ostala vozlišča v omrežju, vendar ga sprejme samo vozlišče, na katerega je naslovljen. Še več, če je paketni sniffer nameščen na enem od omrežnih vozlišč, lahko prestreže vse omrežne pakete, povezane z danim omrežnim segmentom (omrežje, ki ga tvori zvezdišče).

Stikala so bolj inteligentne naprave kot oddajna vozlišča in izolirajo omrežni promet. Stikalo pozna naslove naprav, priključenih na posamezna vrata, in prenaša pakete samo med potrebnimi vrati. To vam omogoča, da razbremenite druga vrata, ne da bi jim morali posredovati vsak paket, kot to počne zvezdišče. Tako se paket, ki ga pošlje določeno omrežno vozlišče, prenese samo na vrata stikala, na katera je povezan prejemnik paketa, vsa ostala omrežna vozlišča pa tega paketa ne morejo zaznati (slika 3).

Če je torej omrežje zgrajeno na osnovi stikala, potem lahko vohalo, nameščeno na enem od omrežnih računalnikov, prestreže samo tiste pakete, ki se izmenjujejo med tem računalnikom in drugimi omrežnimi vozlišči. Zato je za prestrezanje paketov, ki jih računalnik ali strežnik, ki zanima napadalca, izmenjuje z drugimi omrežnimi vozlišči, treba na ta računalnik (strežnik) namestiti snifferja, kar pravzaprav ni tako preprosto. Vendar ne pozabite, da se nekatera vohala za pakete zaženejo iz ukazne vrstice in morda nimajo grafičnega vmesnika. Takšne vohače je načeloma mogoče namestiti in zagnati na daljavo in uporabnik neopazno.

Poleg tega morate upoštevati tudi, da medtem ko stikala izolirajo omrežni promet, imajo vsa upravljana stikala funkcijo posredovanja vrat ali zrcaljenja vrat. To pomeni, da je vrata stikala mogoče konfigurirati tako, da se na njih podvojijo vsi paketi, ki prispejo na druga vrata stikala. Če je v tem primeru na taka vrata priključen računalnik z vohačem paketov, potem lahko ta prestreže vse pakete, izmenjane med računalniki v danem segmentu omrežja. Vendar pa je praviloma možnost konfiguriranja stikala na voljo samo skrbniku omrežja. To seveda ne pomeni, da ne more biti napadalec, a skrbnik omrežja ima še veliko drugih načinov za nadzor nad vsemi uporabniki lokalnega omrežja in malo verjetno je, da vas bo nadziral na tako prefinjen način.

Drugi razlog, zakaj vohljači niso več tako nevarni, kot so bili nekoč, je, da se večina občutljivih podatkov zdaj prenaša šifrirano. Odprte, nešifrirane storitve hitro izginjajo iz interneta. Na primer, pri obisku spletnih strani se vedno pogosteje uporablja protokol SSL (Secure Sockets Layer); SFTP (Secure FTP) se uporablja namesto odprtega FTP, navidezna zasebna omrežja (VPN) pa se vse bolj uporabljajo za druge storitve, ki privzeto ne uporabljajo šifriranja.

Tisti, ki jih skrbi možnost zlonamerne uporabe paketnih snifferjev, morajo upoštevati naslednje. Prvič, če želite, da predstavljajo resno grožnjo vašemu omrežju, se morajo vohalci nahajati v samem omrežju. Drugič, današnji standardi šifriranja izjemno otežujejo prestrezanje občutljivih informacij. Zato trenutno paketni snifferji postopoma izgubljajo svoj pomen kot hekersko orodje, hkrati pa ostajajo učinkovito in močno orodje za diagnosticiranje omrežij. Poleg tega se vohalniki lahko uspešno uporabljajo ne le za diagnosticiranje in lokalizacijo težav z omrežjem, ampak tudi za revizijo varnosti omrežja. Zlasti uporaba analizatorjev paketov vam omogoča odkrivanje nepooblaščenega prometa, odkrivanje in prepoznavanje nepooblaščene programske opreme, prepoznavanje neuporabljenih protokolov za njihovo odstranitev iz omrežja, ustvarjanje prometa za testiranje prodora (test prodora), da preverite varnostni sistem, delo z sistemi za zaznavanje vdorov (Intrusion Detection System (IDS).

Pregled programske opreme za vohanje paketov

Vse programske vohače lahko razdelimo v dve kategoriji: vohače, ki podpirajo zagon iz ukazne vrstice, in vohače, ki imajo grafični vmesnik. Vendar ugotavljamo, da obstajajo vohalniki, ki združujejo obe zmožnosti. Poleg tega se snifferji med seboj razlikujejo po protokolih, ki jih podpirajo, globini analize prestreženih paketov, možnosti nastavitve filtrov in možnosti združljivosti z drugimi programi.

Običajno je okno katerega koli snifferja z grafičnim vmesnikom sestavljeno iz treh področij. Prvi od njih prikazuje povzetek podatkov o prestreženih paketih. Običajno je v tem območju prikazano najmanj polj, in sicer: čas prestrezanja paketa; IP naslova pošiljatelja in prejemnika paketa; MAC naslova pošiljatelja in prejemnika paketa, izvorna in ciljna naslova vrat; vrsta protokola (omrežna, transportna ali aplikacijska plast); nekaj povzetkov informacij o prestreženih podatkih. V drugem delu so prikazani statistični podatki o posameznem izbranem paketu, v tretjem delu pa je prikazan paket v šestnajstiški ali ASCII obliki.

Skoraj vsi paketni snifferji vam omogočajo analizo dekodiranih paketov (zato se paketni snifferji imenujejo tudi analizatorji paketov ali analizatorji protokolov). Sniffer razdeli prestrežene pakete po slojih in protokolih. Nekatera vohala za pakete lahko prepoznajo protokol in prikažejo zajete informacije. Ta vrsta informacij je običajno prikazana v drugem območju okna vohljača. Vsako vohljanje lahko na primer prepozna protokol TCP, napredni vohalci pa lahko ugotovijo, katera aplikacija je ustvarila ta promet. Večina analizatorjev protokolov prepozna več kot 500 različnih protokolov in jih lahko opiše in dekodira po imenu. Več informacij kot lahko vohljalec dekodira in prikaže na zaslonu, manj jih bo treba dekodirati ročno.

Ena od težav, na katero lahko naletijo vohljači paketov, je nezmožnost pravilne identifikacije protokola z uporabo vrat, ki niso privzeta vrata. Na primer, za izboljšanje varnosti so lahko nekatere dobro znane aplikacije konfigurirane za uporabo vrat, ki niso privzeta vrata. Tako lahko namesto tradicionalnih vrat 80, rezerviranih za spletni strežnik, ta strežnik prisilno prekonfiguriramo na vrata 8088 ali katera koli druga. Nekateri analizatorji paketov v tej situaciji ne morejo pravilno določiti protokola in prikažejo le informacije o protokolu nižje ravni (TCP ali UDP).

Obstajajo programski vohalci, ki so opremljeni z analitičnimi moduli programske opreme kot vtičniki ali vgrajenimi moduli, ki vam omogočajo ustvarjanje poročil z uporabnimi analitičnimi informacijami o prestreženem prometu.

Druga značilnost večine programske opreme za analizo paketov je možnost konfiguriranja filtrov pred in po zajemu prometa. Filtri izberejo določene pakete iz splošnega prometa po danem kriteriju, kar vam omogoča, da se znebite nepotrebnih informacij pri analizi prometa.

V tem članku si bomo ogledali ustvarjanje preprostega snifferja za Windows OS.
Kogar zanima, dobrodošli v kat.

Uvod

Cilj: napišite program, ki bo zajemal omrežni promet (Ethernet, WiFi) posredovan po IP protokolu.
Objekti: Visual Studio 2005 ali novejši.
Tukaj opisan pristop ne pripada osebno avtorju in se uspešno uporablja v številnih komercialnih, pa tudi popolnoma brezplačnih programih (zdravo, GPL).
To delo je namenjeno predvsem začetnikom v omrežnem programiranju, ki pa imajo vsaj osnovno znanje s področja vtičnic na splošno in še posebej Windows vtičnic. Tukaj bom velikokrat napisal znane stvari, ker je tema specifična, če kaj spregledam, bo v glavi nered.

Upam, da vam bo zanimivo.

Teorija (branje ni obvezno, je pa priporočljivo)

Trenutno velika večina sodobnih informacijskih omrežij temelji na temelju protokolnega sklada TCP/IP. Protokolni sklad TCP/IP (Transmission Control Protocol/Internet Protocol) je skupno ime za omrežne protokole različnih ravni, ki se uporabljajo v omrežjih. V tem prispevku nas bo zanimal predvsem protokol IP - usmerjeni omrežni protokol, ki se uporablja za nezajamčeno dostavo podatkov, razdeljenih v tako imenovane pakete (bolj pravilen izraz je datagram) od enega omrežnega vozlišča do drugega.
Za nas so še posebej zanimivi paketi IP, namenjeni prenosu informacij. To je dokaj visoka raven omrežnega podatkovnega modela OSI, ko se lahko izolirate od naprave in medija za prenos podatkov ter delujete samo z logično predstavitvijo.
Povsem logično je, da so se prej ali slej pojavila orodja za prestrezanje, spremljanje, snemanje in analizo omrežnega prometa. Takšna orodja se običajno imenujejo analizatorji prometa, analizatorji paketov ali snifferji (od angleščine do sniff - vohanje). To je analizator omrežnega prometa, program ali strojno-programska naprava, namenjena prestrezanju in naknadni analizi ali samo analizi omrežnega prometa, namenjenega drugim vozliščem.

Praksa (vsebinski pogovor)

Trenutno je bilo ustvarjenih precej programov za poslušanje prometa. Najbolj znan med njimi: Wireshark. Seveda cilj ni pobrati njegove lovorike - zanima nas naloga prestrezanja prometa s preprostim "poslušanjem" omrežnega vmesnika. Pomembno je razumeti, da ne bomo vdirali in prestrezali tujec prometa. Preprosto si moramo ogledati in analizirati promet, ki poteka skozi našega gostitelja.

Zakaj je to morda potrebno:

  1. Oglejte si trenutni tok prometa prek omrežne povezave (dohodni/odhodni/skupno).
  2. Preusmeri promet za nadaljnjo analizo na drugega gostitelja.
  3. Teoretično ga lahko poskusite uporabiti za vdor v omrežje WiFi (tega ne bomo storili, kajne?).
Za razliko od Wireshark, ki temelji na knjižnici libpcap/WinPcap, naš analizator ne bo uporabljal tega gonilnika. Še več, gonilnika sploh ne bomo imeli in ne bomo napisali lastnega NDIS (oh, groza!). O tem si lahko preberete v tej temi. Bo preprosto pasivni opazovalec, ki bo uporabljal samo Knjižnica WinSock. Uporaba gonilnika v tem primeru je odveč.

Kako to? Zelo preprosto.
Ključni korak pri spreminjanju preproste omrežne aplikacije v omrežni analizator je preklop omrežnega vmesnika v promiskuitetni način, ki mu bo omogočil sprejemanje paketov, naslovljenih na druge vmesnike v omrežju. Ta način prisili omrežno kartico, da sprejme vse okvirje, ne glede na to, komu so naslovljeni v omrežju.

Začenši z Windows 2000 (NT 5.0) je postalo zelo enostavno ustvariti program za poslušanje omrežnega segmenta, ker njegov omrežni gonilnik vam omogoča, da vtičnico nastavite tako, da sprejema vse pakete.

Omogočanje promiskuitetnega načina
dolga zastavica = 1; VTIČNICA vtičnica; #define SIO_RCVALL 0x98000001 ioctlsocket(vtičnica, SIO_RCVALL, &RS_Flag);
Naš program deluje na paketih IP in uporablja knjižnico Windows Sockets različice 2.2 in neobdelane vtičnice. Če želite pridobiti neposreden dostop do paketa IP, je treba vtičnico ustvariti na naslednji način:
Ustvarjanje neobdelane vtičnice
s = vtičnica (AF_INET, SOCK_RAW, IPPROTO_IP);
Tukaj namesto konstante SOCK_STREAM(TCP protokol) oz SOCK_DGRAM(protokol UDP), uporabimo vrednost SOCK_RAW. Na splošno je delo z neobdelanimi vtičnicami zanimivo ne le z vidika zajema prometa. Pravzaprav dobimo popoln nadzor nad oblikovanjem paketa. Oziroma ga oblikujemo ročno, kar omogoča npr. pošiljanje določenega ICMP paketa...

Kar daj. Znano je, da je paket IP sestavljen iz glave, servisnih informacij in pravzaprav podatkov. Svetujem vam, da si ogledate tukaj, da osvežite svoje znanje. Opišimo glavo IP v obliki strukture (zahvaljujoč odličnemu članku na RSDN):

Opis strukture IP paketa
typedef struct _IPHeader ( unsigned char ver_len; // različica glave in dolžina unsigned char tos; // vrsta storitve unsigned short length; // dolžina celotnega paketa unsigned short id; // Id unsigned short flgs_offset; // zastavice in odmik nepredznačeni char ttl; // doživljenjski nepodpisani char protokol; // protokol nepodpisani kratki xsum; // kontrolna vsota nepodpisani dolgi src; // naslov IP pošiljatelja nepodpisani dolgi dest; // ciljni naslov IP nepodpisani kratki *params; // parametri (do 320 bits) unsigned char *podatki; // podatki (do 65535 oktetov) )IPHeader;
Glavna funkcija algoritma poslušanja bo videti takole:
Funkcija zajemanja posameznega 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); return hdr; ) else return 0; )
Tukaj je vse preprosto: prejmemo del podatkov s standardno funkcijo vtičnice prejem in jih nato kopirajte v strukturo, kot je IPHeader.
In končno začnemo neskončno zanko zajemanja paketov:
Zajemimo vse pakete, ki dosežejo naš omrežni vmesnik
while (true) ( ​​​​IPHeader* hdr = RS_Sniff(); // obdelava paketa IP if (hdr) ( // natisni glavo v konzoli) )
Malo offtopic
Tukaj in spodaj je avtor naredil predpono RS_ (iz Raw Sockets) za nekatere pomembne funkcije in spremenljivke. Projekt sem naredil pred 3-4 leti in imel sem noro idejo, da bi napisal polnopravno knjižnico za delo z neobdelanimi vtičnicami. Kot se pogosto zgodi, je po pridobitvi nekaj pomembnih (za avtorja) rezultatov navdušenje zbledelo in zadeva ni šla dlje od primera usposabljanja.

Načeloma lahko greste še dlje in opišete glave vseh naslednjih protokolov, ki se nahajajo zgoraj. Če želite to narediti, morate analizirati polje protokol v strukturi IPHeader. Poglejte primer kode (da, moralo bi biti stikalo, prekleto!), kjer je glava obarvana glede na to, kateri protokol je paket zaprl v IP:

/* * Označevanje paketa z barvo */ void ColorPacket(const IPHeader *h, const u_long haddr, const u_long whost = 0) ( if (h->xsum) SetConsoleTextColor(0x17); // če paket ni prazen else SetConsoleTextColor(0x07) ; // prazen paket if (haddr == h->src) ( SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_RED | FOREGROUND_INTENSITY); // "domači" paket za vrnitev ) else if (haddr == h->dest ) ( SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_GREEN | FOREGROUND_INTENSITY); // "domači" sprejemni 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); ) )

Vendar to bistveno presega obseg tega članka. Za naš primer usposabljanja bo dovolj, da pogledamo naslove IP gostiteljev, od katerih in do katerih prihaja promet, in izračunamo njegovo količino na časovno enoto (končan program je v arhivu na koncu članka) .

Če želite prikazati podatke glave IP, morate implementirati funkcijo za pretvorbo glave (vendar ne podatkov) datagrama v niz. Kot primer izvedbe lahko ponudimo naslednjo možnost:

Pretvorba glave IP v 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)); return r; )
Na podlagi zgoraj navedenih osnovnih informacij dobimo ta majhen program (grozljivo ime ss, okrajšava za simple sniffer), ki izvaja lokalno poslušanje IP prometa. Njegov vmesnik je prikazan na spodnji sliki.

Izvorno in binarno kodo zagotavljam takšno, kot je bilo pred nekaj leti. Zdaj me je strah pogledati, pa vendar je kar berljivo (seveda ne moreš biti tako samozavesten). Tudi Visual Studio Express 2005 bo zadostoval za prevajanje.

Kaj smo na koncu dobili:

  • Sniffer deluje v uporabniškem načinu, vendar zahteva skrbniške pravice.
  • Paketi niso filtrirani in so prikazani takšni, kot so (lahko dodate filtre po meri - predlagam, da si podrobneje ogledate to temo v naslednjem članku, če vas zanima).
  • Zajame se tudi WiFi promet (vse je odvisno od konkretnega modela čipa, morda vam ne bo delovalo, kot je meni pred nekaj leti), čeprav obstaja AirPcap, ki zna to narediti čudovito, vendar stane.
  • Celoten tok datagramov se zabeleži v datoteko (glej arhiv, priložen na koncu članka).
  • Program deluje kot strežnik na vratih 2000. Z gostiteljem se lahko povežete s pripomočkom telnet in spremljate prometne tokove. Število povezav je omejeno na dvajset (koda ni moja, našel sem jo na internetu in jo uporabil za poskuse; nisem je izbrisal - škoda)
Hvala za vašo pozornost, čestitam prebivalcem Khabrovska in Khabrovke ter vsem, vesel božič!

Sniffer je drugo ime za analizator prometa – je program ali druga strojna naprava, ki prestreže in nato analizira omrežni promet. Trenutno imajo ti programi povsem zakonito utemeljitev, zato se na internetu pogosto uporabljajo, vendar se lahko uporabljajo tako v dobro kot v škodo.

Zgodovina njihovega nastanka sega v 90. leta prejšnjega stoletja, ko so hekerji s takšno programsko opremo zlahka zajeli uporabnikovo prijavo in geslo, ki sta bila takrat zelo šibko šifrirana.

Beseda sniffer prihaja iz angleščine. vohati - vohati, princip delovanja je, da ta program registri in analize programi, ki so nameščeni na strojih, ki prenašajo informacijske pakete. Da bi bila operacija branja informacij učinkovita, mora biti nameščen blizu glavnega računalnika.

Programerji uporabljajo to aplikacijo za analizo prometa, hekerji v omrežju zasledujejo druge cilje, izsledijo gesla ali druge podatke, ki jih potrebujejo.

Vrste analizatorjev prometa

Snifferji se razlikujejo po vrsti, lahko so spletni programčki ali aplikacije, nameščene neposredno na računalniku, ki se delijo na strojno in programsko-strojno opremo.

Najpogosteje se uporabljajo za prestrezanje gesel, v tem primeru aplikacija pridobi dostop do kod šifriranih informacij. To lahko uporabniku povzroči ogromno nevšečnosti, saj pogosto obstajajo primeri, ko je več programov ali spletnih mest nastavljenih na enaka gesla, kar na koncu vodi do izgube dostopa do potrebnih virov.

Obstaja vrsta vohanja, ki se uporablja za prestrezanje posnetka RAM-a, saj je težko nenehno brati informacije, ne da bi porabili moč procesorja. Odkrij vohuna mogoče s spremljanjem največje obremenitve datotek v računalniku med delovanjem.

Druga vrsta programa deluje z velikim kanalom za prenos podatkov in škodljivec lahko vsak dan ustvari do 10 megabajtov protokolov.

Kako deluje

Analizatorji delujejo samo s protokoli TCP / IP, takšni programi zahtevajo žično povezavo, na primer usmerjevalnike, ki distribuirajo internet. Prenos podatkov poteka z ločenimi paketi, ki ob doseženem končnem cilju spet postanejo ena sama celota. Prav tako so sposobni prestreči pakete v kateri koli fazi prenosa in skupaj z njimi pridobiti dragocene informacije v obliki nezaščitenih gesel. Vsekakor pa je s pomočjo programov za dešifriranje mogoče pridobiti ključ tudi do zaščitenega gesla.

Najlažji način za uporabo WiFi snifferjev je v omrežjih s šibko zaščito - v kavarnah, na javnih mestih itd.

Ponudniki, ki uporabljajo te programe, lahko sledite nepooblaščenemu dostopu na naslove zunanjega sistema.

Kako se zaščititi pred vohljači

Če želite razumeti, da je nekdo prodrl v lokalno omrežje, morate najprej biti pozorni na hitrost prenosa paketa, če je bistveno nižja od navedene, vas mora to opozoriti. Delovanje računalnika lahko spremljate z upraviteljem opravil. Uporabite lahko posebne pripomočke, vendar so najpogosteje v nasprotju s požarnim zidom Windows, zato je bolje, da ga za nekaj časa onemogočite.

Za sistemske skrbnike je preverjanje in iskanje analizatorjev prometa v lokalnem omrežju nujen podvig. Za odkrivanje zlonamernih aplikacij lahko uporabite znane omrežne protivirusne programe, kot sta Doctor Web ali Kaspersky Anti-Virus, ki vam omogočajo odkrivanje škodljivcev tako na oddaljenih gostiteljih kot neposredno v lokalnem omrežju.

Poleg posebnih aplikacij, ki so preprosto nameščene v vašem računalniku, lahko uporabite bolj zapletena gesla in kriptografski sistemi. Kriptografski sistemi delujejo neposredno z informacijami in jih šifrirajo z elektronskim podpisom.

Pregled in glavne funkcije aplikacije

CommView

CommView dekodira pakete prenesenih informacij in prikaže statistiko uporabljenih protokolov v obliki diagramov. Sniffer prometa vam omogoča analizo paketov IP in tistih, ki so potrebni. Sniffer za Windows deluje z znanimi protokoli: HTTP, HTTPS, DHCP, DDNH, DIAG, POP3, TCP, WAP itd. CommView deluje z Ethernet modemi, wi-fi in drugimi. Paketi so zajeti prek vzpostavljene povezave z uporabo » TrenutnoIP- povezave«, kjer lahko ustvarite vzdevke naslovov.

Zavihek " Paketi» prikaže informacije o njih in jih je mogoče kopirati v odložišče.

« LOG-datoteke» vam omogoča ogled paketov v formatu NFC.

Zavihek " Pravila" Tukaj lahko nastavite pogoje za prestrezanje paketov. Razdelki tega zavihka: naslovi IP, naslovi MAC, vrata, proces, formule in posamezni parametri.

« Opozorilo": omogoča nastavitev obvestil v lokalnem omrežju, deluje z gumbom "Dodaj". Tukaj lahko nastavite pogoje in vrste dogodkov:

  • "Paketi na sekundo" - ko je presežena raven obremenitve omrežja.
  • “Bajtov na sekundo” - ko je frekvenca prenosa podatkov presežena.
  • »Neznan naslov«, tj. zaznavanje nepooblaščenih povezav.

Zavihek " Pogled»—tu se odraža statistika prometa.

CommView je združljiv z Windows 98, 2000, XP, 2003. Za uporabo aplikacije je potreben ethernetni adapter.

Prednosti: uporabniku prijazen vmesnik v ruskem jeziku, podpira običajne vrste omrežnih adapterjev, statistika je vizualizirana. Edina pomanjkljivost je visoka cena.

Spynet

Spynet opravlja funkcije dekodiranja paketov in njihovega prestrezanja. Z njegovo pomočjo lahko ponovno ustvarite strani, ki jih je uporabnik obiskal. Sestavljen je iz 2 programov CaptureNet in PipeNet. Primeren je za uporabo v lokalnem omrežju. CaptureNet skenira pakete podatkov, drugi program spremlja postopek.

Vmesnik je precej preprost:

  • Gumb Spremeni Filter– nastavitev filtrov.
  • Gumb Plast 2,3 – namesti Flame – IP protokole; 3. sloj – TCP.
  • Gumb Vzorec Ujemanje išče pakete z navedenimi parametri.
  • Gumb IPNaslovi vam omogoča skeniranje potrebnih naslovov IP, ki prenašajo informacije, ki vas zanimajo. (Možnosti 1-2, 2-1, 2=1). V slednjem primeru ves promet.
  • Gumb Pristanišča, tj. izbira vrat.

Za prestrezanje podatkov morate zagnati program Capture Start, torej se začne proces prestrezanja podatkov. Datoteka s shranjenimi informacijami se prekopira šele po ukazu Stop, torej prekinitvi dejanj zajemanja.

Prednost Spyneta je možnost dekodiranja spletnih strani, ki jih je uporabnik obiskal. Program je mogoče tudi brezplačno prenesti, čeprav ga je precej težko najti. Slabosti vključujejo majhen nabor funkcij v sistemu Windows. Deluje v sistemih Windows XP, Vista.

BUTTSniffer

BUTTSniffer neposredno analizira omrežne pakete. Načelo delovanja je prestrezanje prenesenih podatkov, pa tudi možnost samodejnega shranjevanja na medij, kar je zelo priročno. Ta program je zagnan prek ukazne vrstice. Obstajajo tudi možnosti filtra. Program je sestavljen iz BUTTSniff.exe in BUTTSniff. dll.

Pomembne slabosti BUTTSnifferja vključujejo nestabilno delovanje, pogoste zrušitve, celo zrušitev operacijskega sistema (modri zaslon smrti).

Poleg teh vohalnih programov obstaja še veliko drugih enako znanih: WinDump, dsniff, NatasX, NetXRay, CooperSniffer, LanExplorter, Ne Analyzer.

Obstajajo tudi spletni vohljači, ki poleg pridobitve naslova IP žrtve neposredno spremenijo naslov IP napadalca. Tisti. Heker se najprej registrira pod naslovom IP in na žrtvin računalnik pošlje sliko, ki jo je treba prenesti, ali elektronsko pošto, ki jo je treba le odpreti. Po tem heker prejme vse potrebne podatke.

Velja spomniti, da je poseg v podatke tujega računalnika kaznivo dejanje.

Nadaljevanje teme:
Igre

Za tiste, ki ste šele postali začetnik ali niste strokovnjak za prostrani svet Androida in niste posebej seznanjeni s konceptom, kako rootati Android, pa tudi, zakaj je to potrebno, kaj je mogoče storiti ...