Vohljati et(h)er(net) in preživeti
Že od samih začetkov omrežij je "vohljač" (sniffer) nepogrešljiv del sistemskih orodij omrežnih upraviteljev. Prestrezanje omrežnega prometa in prisluškovanje temu prometu je namreč predpogoj za uspešno zaščito le-tega. Tudi današnji sistemi za odkrivanje napadov (IDS) niso nič drugega kot nekoliko izpopolnjeni in izboljšani vohljači. Čeprav najdemo "vohljače" v različnih izvedbah, tako strojnih kot programskih, komercialnih in brezplačnih, celo takih, ki vsebujejo le nekaj vrstic kode, jih druži skupna lastnost: sposobnost zajemanja omrežnih podatkovnih okvirov. Čeprav vohljače pogosto imenujemo tudi "lovilci paketov" (packet capture), ta izraz ne drži popolnoma. Orodja za opazovanje omrežja, kot je uradni naziv za vohljače, namreč operirajo na nižji, drugi (podatkovno-povezovalni) plasti referenčnega modela OSI, na tej ravni pa je podatkovna enota protokola (PDU) okvir ali "frame". Vohljači torej prestrezajo okvire in ne paketov. Seveda pa skupaj z okviri zajamejo tudi pakete iz drugih plasti modela OSI, ki so oviti ("enkapsulirani") v okvir.
Aktivno ali pasivno
Poznamo dve metodi prestrezanja omrežnega prometa: aktivno in pasivno. Po definiciji je pasivno vse, kar med svojim delovanjem ne vpliva na okolico. Vohljač preprosto preklopi omrežno kartico v t. i. promiskuitetni način (promiscuous mode) in nato prestreza vse okvire v dosegu. Tako nadziranje omrežnega prometa je učinkovito v omrežjih, ki uporabljajo razdelilnike (hub), in takih ni več prav veliko. Hub deluje na prvi (fizični) plasti in prejete signale enostavno posreduje vsem členom v omrežju.
Aktivna metoda je, po drugi strani, v rabi v omrežjih, ki so povezana s stikali (switch). Stikalo deluje na drugi (podatkovno-povezovalni) plasti in lahko, za razliko od vozlišča, usmerja promet na podlagi strojnih naslovov MAC. Z vohljačem lahko v takem omrežju prestrezamo le promet "broadcast" in "multicast", tj. promet, namenjen vsem omrežnim členom. Zajemanje prometa se v takih omrežjih izvaja v kombinaciji z zastrupljanjem ARP (Monitor 10/2006) na nekaterih stikalih Cisco pa tudi z uporabo funkcije SPAN. Večina vohljačev deluje na pasivni način, aktivni vohljači pa so nedvomno v domeni hekerjev.
Primerjava plasti omrežnega modela OSI in TCP/IP
Kako sploh delujejo omrežja?
Za boljše razumevanje delovanja vohljačev moramo najprej spoznati osnove omrežij. Poznamo dva modela izmenjave podatkov v omrežju: ISO/OSI in TCP/IP. Slednji je v praksi bolj razširjen, vendar temelji na referenčnem modelu OSI, ki je tudi standard de iure. No, TCP/IP pa je standard de facto. Nekateri viri navajajo model TCP/IP tudi kakor referenčni model DoD. Arhitekturo ISO/OSI sestavlja sedem plasti (TCP/IP ima le štiri), ki skrbijo za učinkovito in nemoteno komunikacijo. Konkretno so gornje plasti modela odgovorne za prenos podatkov k uporabniku, spodnje pa za povezovanje med omrežnimi elementi. Vsaka komunikacija se začne v programski plasti oddajnika. Ko podatek potuje navzdol po protokolarnem skladu, ga vsaka izmed plasti uokviri s krmilnimi podatki oziroma t. i. "glavo" (header), kar imenujemo tudi enkapsulacija. V končni fazi je podatek tako ovit v sedem okvirov. Na prejemnikovi strani se postopek ponovi v nasprotnem vrstnem redu. Na vsaki izmed plasti se v procesu deenkapsulacije odstrani eden izmed okvirov. Prejemnikov program na sedmi (programski) plasti tako prejme izvirne podatke oddajnika.
Vsaka podatkovna raven podatkovnemu okviru pripne še svoje zaglavje.
Fizična raven skrbi za prenos bitov po elementarnih omrežnih gradnikih (omrežna oprema, kabli ...), podatki se po omrežju pretakajo v obliki električnih signalov. Na tej ravni ima pomembno vlogo topologija omrežja. Topologija določa ureditev in obliko omrežja ter način fizičnega povezovanja omrežnih členov (topologija zvezde/vodila/zanke ...). Za lažjo predstavo - komunikacijski protokoli fizične plasti so xDSL, ISDN, Wi-Fi, ATM ...
Podatkovno-povezovalna raven določa način prenosa podatkov v omrežju, izvaja fizično naslavljanje ter skrbi za odkrivanje in odpravljanje napak med samim prenosom. Najpogosteje uporabljena arhitektura v krajevnih omrežjih (LAN) je ethernet. Standard določa, da se podatki pošiljajo v obliki t. i. okvirov (frames), ki urejajo tok bitov. Ethernetni okvir vsebuje prejemnikov in pošiljateljev unikaten strojni naslov MAC, s slednjimi pa v tej plasti poteka tudi usmerjanje podatkov. To vsekakor ni raven, na kateri bi imel kaj početi splošno znani naslov IP.
Omrežna raven izvaja usmerjevalne algoritme in skrbi za logično naslavljanje paketkov. Na tej plasti je osnovna enota protokola že paket ali datagram. Tipični protokoli te ravni so IP, ARP, RARP, ICMP, IGMP ... Nadvse pomemben omrežni element, ki operira na tej ravni, je usmerjevalnik (router).
Transportna raven izvaja prenos podatkov med dvema končnima členoma ter zagotavlja podatkovno celovitost. Osnovna enota protokola je segment, najbolj znani protokoli pa so TCP, UDP, SPX, IPX, ATP ... Sejna raven omogoča medprocesno komunikacijo na daljavo (NetBIOS, RPC ...), predstavitvena raven skrbi za združljivost med različnimi okolji (ASCII, EBCDIC, Unicode ...), aplikacijska raven pa omogoča izvajanje različnih uporabniških aplikacij (SMTP, SNMP, FTP ...).
Slovarček izrazov:
ARP - Address Resolution Protocol
ASCII - American Standard Code for Information Interchange
ATM - Asynchronous Transfer Mode
ATP - AppleTalk Transaction Protocol
DoD - Department of Defense
EBCDIC - Extended Binary Coded Decimal Interchange Code
FTP - File Transfer Protocol
ICMP - Internet Control Message Protocol
IDS - Intrusion Detection System
IGMP - Internet Group Management Protocol
IP - Internet Protocol
IPSec - IP Security
IPX - Internetwork Packet Exchange
ISDN - Integrated Services Digital Network
ISO - International Standard Organisation
LAN - Local Area Network
MAC - Media Access Control
NetBIOS - Network Basic Input/Output System
OSI - Open Systems Interconnection
PDU - Protocol Data Unit
PGP - Pretty Good Privacy
PPP - Point-to-Point Protocol
RARP - Reverse Address Resolution Protocol
RPC - Remote Procedure Call
SMTP - Simple Mail Transfer Protocol
SNMP - Simple Network Management Protocol
SPAN - Switch Port ANalyzer
SPX - Sequenced Packet Exchange
SSL - Secure Sockets Layer
TCP - Transmission Control Protocol
TLS - Transport Layer Security
UDP - User Datagram Protocol
xDSL - Digital Subscriber Line
Nedvomno sta najpomembnejša protokola TCP in IP, ki sestavljata jedro internetnega sklada protokolov (Internet protocol stack). IP deluje na omrežni plasti in izvaja logično naslavljanje, usmerjanje, razbijanje (fragmentacijo) in vnovično sestavljanje paketkov. Najpomembnejša podatka v IP zaglavju (IP header) sta prejemnikov in pošiljateljev logični naslov. V svojem bistvu IP namreč določa, kam paketek potuje in od kod prihaja. Pomembno vlogo ima tudi fragmentacijski bit (fragmentation bit). Ta nam pove, ali je paket zaradi združljivosti med heterogenimi omrežji razstavljen na več delov. Omeniti velja tudi protokola ARP ter ICMP. ARP skrbi za preslikavo (logičnih) IP naslovov v (fizične) MAC naslove, ki se uporabljajo za usmerjanje okvirov na fizični plasti. Nasprotno nalogo opravlja protokol RARP. ICMP pa se uporablja za pošiljanje nadzornih sporočil in sporočil o stanju omrežja. Tracert, pathping in ping so ukazi, ki uporabljajo protokol ICMP.
Tako je videti zaglavje paketa IP (običajne različice IPv4).
Protokol za krmiljenje prenosa (TCP) deluje na transportni plasti in zagotavlja zanesljivo povezovanje in izmenjavo podatkov. TCP skrbi, da so vsi segmenti ustrezno poravnani in potrjeni ter da sta oba člena komunikacijskega kanala pred dejansko izmenjavo podatkov ustrezno sinhronizirana. Proces sinhronizacije ali ustvarjanja povezave imenujemo tristransko rokovanje (three-way handshake). Celoten proces temelji na izmenjavi kontrolnih bitov TCP.
Tako je videti zaglavje paketa TCP.
Proces sinhronizacije ali tristransko rokovanje (3way-handshake)
TCP zaglavje kot cilj določa prejemnikova vrata (port) oziroma program, ki deluje na teh vratih. Posebna pozornost velja že omenjenim kontrolnim bitom ali zastavicam (flags) URGent (nujno), ACKnowledgement (potrditev), PuSH (potisni), ReSeT (resetiraj), SYNchronize (sinhroniziraj) in FINish (zaključi), ki dejansko krmilijo komunikacijo. Polje "Window" definira število bajtov, ki jih prejemnik lahko prejme v eni seji, sekvenčna številka pa ureja vrstni red prejetih segmentov.
UDP je nepovezovalni protokol transportne ravni. To pomeni, da odjemalec in strežnik ne vzpostavita (zanesljive) povezave. Strežnik pravzaprav ne preverja, ali je odjemalec poslane podatke dejansko tudi prejel. Zaradi možnih izgub podatkov med samim transportom se UDP najpogosteje uporablja za prenos pretočnih (streaming) vsebin.
Za razliko od večine aplikacij, ki za dostop do omrežnih storitev uporabljajo vtičnike API (API sockets), konkretno BSD socket (Unix) ali Winsock (Windows), vohljači potrebujejo t. i. "gole vtičnike" (raw sockets) ali, drugače, vtičnike, ki omogočajo dostop do zaglavij paketov. To funkcionalnost jim omogočajo posebne knjižnice, ki so vmesnik med omrežno kartico in samim programom ter dejansko izvajajo zajemanje in filtriranje okvirov. Nedvomno sta najbolj znani in uporabljeni libpcap (Unix) in WinPcap (Windows). Obe sta brezplačni, pogosto sta celo priloženi sami aplikaciji.
WinPcap, libpcap
Kaj: Knjižnici za prestrezanje omrežnega prometa.
Cena: Brezplačno.
Naslov: www.winpcap.org, www.tcpdump.org.
Okolje: Windows in Unix.
Za: Knjižnici sta jedro večine sistemov IPS/IDS ter vohljačev.
Proti: WinPcap ima težave s shranjevanjem in interpretacijo formata "raw".
Zaščita
Odkrivanje vohljačev v omrežju je razmeroma preprosto. Že uvodoma smo omenili, da vohljač preklopi delovanje omrežne kartice v promiskuitetno stanje (v brezžičnih omrežjih sta pogosteje uporabljena izraza "RFMON" ali "monitor"), torej zadostuje, da preverimo, ali v našem omrežju katera izmed kartic deluje v takem načinu. V okolju Unix to najlaže odkrijemo z ukazom ifconfig -a ali ip link, ter iwconfig (pri karticah WLAN). Okolje Windows, vsaj zaenkrat, ne premore enotnega standardnega ukaza, zato moramo poseči po namenskih programih. Microsoft je v ta namen razvil Promqry, odlično orodje pa je tudi PromiscDetect (NTSecurity). Vsekakor pa velja previdnost. Nekateri vohljači namreč poskušajo prikriti "promiscuous flag" in tako preprečiti svoje razkritje. Številni korenski kompleti (rootkits), ki omogočajo namestitev vohljačev, v ta namen uporabljajo globalne zanke API (API hooks) ali trojanske različice ukazov (npr. ifconfig, ki ne prikaže promiskuitetne zastavice). Zaradi naštetega je pri iskanju priporočljivo uporabiti več različnih programov (glej uporabne povezave na koncu članka).
Program PromiscDetect odkrije "promiskuitetno kartico" oziroma kartico, ki trenutno vohlja.
Če v omrežju odkrijemo vohljača, ki ga nismo sami pognali, je to najpogosteje znak, da je sistem kompromitiran. Nedvomno pa je najboljša zaščita pred neavtoriziranim prestrezanjem omrežnega prometa uporaba šifrirnih protokolov SSH, SSL/TLS, IPSec in orodij PGP ali GnuPG. Potencialni vsiljivec bo sicer lahko še vedno prestrezal komunikacijo, vendar bodo pridobljeni podatki šifrirani in zanj neberljivi.
TCPDump/WinDump
Nedvomno je najznamenitejši vohljač TCPdump. Program sta leta 1988 napisala Craig Leres in Van Jacobson. Slednji je, med drugim, tudi soavtor znanega orodja traceroute. Čeprav ime morda zavaja ter implicira, da TCPdump zajema le segmente TCP, program brez težav prepozna tudi druge protokole. TCPdump deluje na večini UNIXoidnih sistemov (Linux, Solaris, BSD, HP-UX, AIX ...). Okenska različica, ki je tako po funkcionalnosti kakor uporabi enaka izvirni, se imenuje WinDump. Pred prvo uporabo program zahteva namestitev ustreznih knjižnic (libpcap ali WinPcap), samo izvajanje pa zahteva skrbniške privilegije (v okolju Windows to ni pogoj). Kakor smo že omenili, je uporaba enaka v vseh okoljih, s to razliko, da WinDump vsebuje dve dodatni stikali: -D (izpiše vse omrežne kartice v krajevnem računalniku) in -B (omogoča določanje velikosti medpomnilnika WinPCap). TCPDump je orodje brez grafičnega vmesnika in deluje zgolj iz ukazne vrstice. Nekoliko naprednejše zajemanje okvirov z WinDump je videti takole:
windump -D
windump -i {adapter} -X -q -n
Oglejmo si pobliže posamezna stikala: -i {adapter} določimo omrežno kartico, na kateri želimo analizirati promet; -X izpisuje podatke v šestnajstiškem in ASCII formatu; -q omogoča krajši način izpisovanja podatkov; -n ne izpisuje domenskih imen. Uporaba slednjega stikala je zelo priporočljiva, saj se tako izognemo zamiku, ki nastane, ko program poskuša naslovu IP določiti ime, pa ga ta dejansko nima.
Windump prestreže uporabniško ime in geslo.
Nekatera druga zelo uporabna stikala so tudi: -e izpisuje naslove MAC; -c {število paketkov} prestreže določeno število paketkov in preneha z delovanjem; -w {datoteka} zapisuje "raw" podatke v datoteko; -r {datoteka} prebere "raw" podatke iz datoteke; -t ne izpisuje časovnega žiga (timestamp); -v podrobnejši izpis parametrov. Oglejmo si, kako WinDump prikazuje prestrežene podatke. Za primer vnesimo naslednji ukaz: windump -i {adapter} -n port 21. Izpiše se nekaj podobnega temu:
23:48:32.684750 IP 194.165.121.50.3642 > 217.72.64.93.21: S 3942494098:3942494098
(0) win 65535 <mss 1440,nop,nop,sackOK>
23:48:32.704779 IP 217.72.64.93.21 > 194.165.121.50.3642: S 1395009414:1395009414
(0) ack 3942494099 win 57344 <mss 1460>
23:48:32.704779 IP 194.165.121.50.3642 > 217.72.64.93.21: . ack 1 win 65535
Poskusimo analizirati prvo vrstico: "23:48:32.684750" je časovni žig; "194.165.121.50.3642" predstavlja naslov pošiljatelja ter izvorna vrata; "217.72.64.93.21" prikazuje naslov prejemnika ter ponorna vrata (kakor vidimo je to protokol FTP - port 21); "S" predstavlja TCP kontrolni bit SYN; "3942494098" je začetna sekvenčna številka; "3942494098" je tudi zaključna sekvenčna številka (to je v bistvu začetna sekvenčna številka + velikost podatkovnega segmenta v bajtih); "(0)" prikazuje velikost podatkovnega segmenta (v našem primeru je 0 bajtov, zato sta si začetna in zaključna sekvenčna številka enaki); "win" določa velikost "window" polja. Podatki med znakoma < in > so t. i. opcije TCP, ki zagotavljajo varen in učinkovit prenos, vendar so pri analizi omrežnega prometa sekundarnega pomena. Za informacijo, v zgornjih treh vrsticah je prikazano tri-stransko rokovanje v vsem svojem sijaju. Za popolno izkušnjo rokovanja TCP pa moramo uporabiti stikalo -v. Seveda TCPDump in WinDump omogočata tudi filtriranje prometa. Oglejmo si nekaj osnovnih primerov filtriranja:
windump -i {adapter} icmp (izpisuje le ICMP protokol)
windump -i {adapter} port 80 (izpisuje le HTTP promet)
windump -i {adapter} not port http (izpisuje ves promet razen vrat 80)
windump -i {adapter} host 10.0.0.1 (izpisuje le promet gostitelja 10.0.0.1)
windump -i {adapter} host 10.0.0.1 and not port ssh (izpisuje ves promet gostitelja razen vrat 22)
Oba programa dopuščata opazovanje omrežnega prometa v realnem času, vendar omogočata tudi shranjevanje zajetega prometa v datoteko za poznejšo analizo. Tudi sicer je slednji način v prometnih omrežjih edini primeren, saj je pretok podatkov dejansko prehiter za učinkovito analizo. Težava je sicer bolj znana kot "izpuščanje paketkov" (drop packets). Programa shranjujeta promet v datoteko z uporabo -w stikala, podatki pa se shranjujejo v t. i. "raw" oziroma .pcap formatu. WinDump ima precejšnje težave s shranjevanjem in interpretacijo .pcap formata iz vmesnikov PPP in Dial-up (resnični krivec je knjižnica WinPcap), zato je priporočljivo, da v primeru nevšečnosti pretok enostavno preusmerimo v besedilno datoteko z uporabo znaka ">".
TCPDump/WinDump
Kaj: Programa za prestrezanje omrežnega prometa.
Cena: Brezplačno.
Naslov: www.tcpdump.org, www.winpcap.org.
Okolje: Unix, Windows.
Knjižnica: libpcap, WinPcap.
Za: Funkcionalnost, hitrost, podpirata IPv6.
Proti: WinDump ima težave pri interpretaciji zapisa, shranjenega v formatu .pcap, ne podpirata prestrezanja brezžičnega prometa, nima grafičnega vmesnika.
Wireshark / Ethereal
Če je TCPDump najznamenitejši, potem je Wireshark zagotovo najbolj uporabljan vohljač. Program je leta 1998 razvil Gerald Combs pod imenom Ethereal, vendar se orodje od junija 2006 zaradi pravnega spora uradno imenuje Wireshark. Razvoj Ethereala je zaradi odhoda Combsa na drugo delovno mesto zamrl (zadnja različica nosi številko 0.99.0), medtem pa zgoraj imenovani in druščina še vedno aktivno razvijajo Wireshark (aktualna različica je 0.99.4). Vzrok za tako priljubljenosti Wiresharka je preprost: izjemna zmogljivost. Program namreč prepozna več kot 260 različnih protokolov; združljiv je z različnimi operacijskimi sistemi; podpira uporabo vtičnikov (plug-ins); omogoča analizo omrežnega prometa v realnem času in shranjevanje v "raw" format; ob pomoči knjižnice wiretap lahko prebere "raw" formate večine znanih vohljačev; omogoča filtriranje omrežnega prometa in rekonstrukcijo TCP toka; omogoča prestrezanje WLAN in IPv6 prometa; ima pregleden in intuitiven grafični vmesnik in je popolnoma brezplačen.
Tudi uporaba je nadvse preprosta: zaženemo program, pod jezičkom "Capture" izberemo "Interfaces..." in poleg kartice, s katero želimo izvesti zajemanje, izberemo "Options". Tu odkljukamo "Update list of packets in real time", "Automatic scrolling in live capture" ter "Hide capture info dialog", če želimo prestrezati promet v realnem času; pod "Capture Filters" vnesemo želene parametre filtriranja (npr. vpišemo FTP, če želimo prestrezati le protokol FTP) in kliknemo "Start". Vmesnik Wiresharka prikazuje podatke v tabelah: vrhnja prikazuje vse zajete paketke, sredinska vsebuje podrobne informacije o izbranem paketku. Tu lahko dejansko vidimo potovanje paketa skozi različne plasti arhitekture OSI. Zadnja tabela pa prikazuje vsebino paketkov v šestnajstiški in ASCII obliki. Zelo uporabna je tudi rekonstrukcija toka TCP (desni klik izbranega segmenta TCP in izberemo možnost "Follow TCP Stream"), ki obnovi celotno sejo. Čeprav je Wireshark namenjen uporabi prek grafičnega vmesnika, bodo prišli na svoj račun tudi ljubitelji ukazne vrstice, saj je v paketu tudi program tshark (v Ethereal se ta imenuje tetheteal), ukazni parametri pa so skoraj enaki kakor pri TCPDump. Wireshark za uporabo zahteva skrbniške privilegije in namestitev ustreznih knjižnic. Znani rek: "Najboljše stvari v življenju so brezplačne" za Wireshark nedvomno drži, saj je trenutno najzmogljivejši vohljač, strokovnjaki za računalniško varnost pa so ga izmed 100 najpomembnejših orodij uvrstili na drugo mesto (sectools.org).
Wireshark prestreže uporabniško ime in geslo.
Wireshark / Ethereal
Kaj: Programa za prestrezanje omrežnega prometa.
Cena: Brezplačno.
Naslov: www.wireshark.org, www.ethereal.org.
Okolje: Unix,Windows.
Knjižnica: libpcap / wiretap, WinPcap.
Za: Zmogljivost, hitrost, preglednost, podpirata zajemanje brezžičnega in IPv6 prometa.
Proti: Okenski tshark ima občasno težave s preklopom kartice v promiskuitetni način.
Kismet
O Kismetu smo v naši rubriki že pisali (Monitor 12/06), vendar bi bil vsak članek o vohljačih brez omembe tega vsestranskega orodja nepopoln. Kismet je sicer pasivni skener za brezžična omrežja, vendar omogoča tudi prestrezanje brezžičnega prometa, lahko pa ga uporabimo tudi kot orodje za odkrivanje vdorov (IDS). Program deluje v okolju Unix, podprte pa so vse omrežne kartice, ki omogočajo način RFMON/monitor. Sicer lahko v medmrežju najdemo tudi različico za Windows, ki se imenuje KisWin (www.renderlab.net/projects/wrt54g/kiswin.html), vendar je njena funkcionalnost zaenkrat dokaj omejena. Med drugim tudi zaradi same arhitekture okenskega okolja, ki ne podpira zajemanja brezžičnega prometa. To oviro lahko v določeni meri premostimo z uporabo komercialnih "raw sockets" knjižnic, kot je npr. AirPcap (www.cacetech.com/products/airpcap.htm), ali, če imamo omrežno kartico s čipom Atheros, z namestitvijo gonilnikov, ki podpirajo tako funkcionalnost (www.wildpackets.com/support/product_support/airopeek/hardware). Največja pomanjkljivost programa, kar se tiče prestrezanja, je nezmožnost prikazovanja prometa v realnem času, saj Kismet omogoča le shranjevanje "raw" (.pcap) formata v datoteko, ki jo moramo nato odpreti v Wiresharku.
Kismet
Kaj: Večfunkcionalno orodje za analizo brezžičnih omrežij.
Cena: Brezplačno.
Naslov: www.kismetwireless.net.
Okolje: Unix.
Knjižnica: libwiretap.
Za: Uporabnost.
Proti: Ne podpira prikazovanja prometa v realnem času.
Iris
Iris je komercialni vohljač ki ga razvija ameriška družba eEye, bolj znana po odkrivanju varnostnih pomanjkljivosti v okenskih sistemih. Družbo je ustanovil Marc Maiffret, poznavalcem svetovne hekerske scene bolj znan pod vzdevkom chameleon. V preteklosti je bil član hekerskih skupin MoD ter Rhino9 in ga je leta 1998 zaradi vdora v strežnik ameriškega obrambnega ministrstva aretiral FBI. Maiffret je bil pozneje pomiloščen, nedolgo zatem je ustanovil eEye in okrog sebe zbral priznane strokovnjake za računalniško varnost (Ryan Permeh, Derek Soeder, Barnaby Jack).
Za komercialne vohljače je značilna uporaba lastnih knjižnic za zajemanje paketkov ter shranjevanje prometa v nestandardnem formatu. Iris je, vsaj kar se tiče slednjega, izjema, saj uporablja standardni format .cap. Pravzaprav je Iris zelo zmogljiv program, ki med drugim omogoča manipulacijo paketkov, rekonstrukcijo toka TCP, izdelavo namenskih filtrov, grafični prikaz statistike prometa ter sortiranje pretoka po različnih merilih. Orodje krasi grafični vmesnik, v katerem se tudi povprečen okenski uporabnik kaj hitro znajde, pa tudi izjemen pogon, ki zmore zajeti kar 9000 paketov na sekundo.
eEye Iris je eden najboljših komercialnih vohljačev.
Iris
Kaj: Program za analizo omrežnega pretoka.
Cena: 1295 dolarjev.
Naslov: www.eeye.com.
Okolje: Windows.
Knjižnica: Iris NDIS 5.0 Protocol Driver.
Za: Preprosta raba, pregleden vmesnik, zmogljivost.
Proti: Cena.
Microsoft Network Monitor 3 (beta)
Network Monitor je bil že od nekdaj standardni del paketa Microsoft Systems Management Server (SMS), hkrati pa je bil, sicer v precej okleščeni različici, vključen tudi v nekatere (strežniške) različice operacijskih sistemov Windows. Prihajajoča tretja različica, trenutno je namreč še v fazi preizkušanja, bo prvič ponudila popolnoma funkcionalen Network Monitor tudi domačim uporabnikom okenskih sistemov. Sam program je zelo nezahteven za uporabo in ne potrebuje predhodne namestitve gonilnikov WinPcap, saj samodejno namesti Microsoft Network Monitor Driver. Čeprav je vmesnik zelo špartanski, pa je Netmon dokaj zmogljiv vohljač, katerega največja odlika je sposobnost prestrezanja prometa z več omrežnih kartic hkrati in izvajanje več simultanih prestrezanj. Zajemanje aktiviramo s klikom gumba "Create a new capture tab...", pod jezičkom "Select Networks" pa izberemo želeno kartico in pritisnemo F10.
Microsoft NetMon prestreže geslo.
Kot zanimivost omenimo, da ima Microsoft med svojimi orodji tudi vohljača, ki deluje iz ukazne vrstice. Program se imenuje NetCap (Network Capture) in je sestavni del Windows XP Support Tools (www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en). NetCap ne omogoča prikazovanja pretoka v realnem času, temveč zgolj shranjevanje v datoteko .cap, ki jo lahko nato odpremo z Wiresharkom ali Network Monitorjem. Program izpiše krajevne omrežne kartice z ukazom netcap /?, prestrezanje pa nato aktiviramo z (npr.):
netcap /N:{številka adapterja} /B:50 /C:D:\dump.
NetCap bo tako prisluškoval izbrani kartici, pretok bo shranjeval v mapo "dump" na krajevnem disku D in nehal zajemati, ko bo prestregel 50 MB podatkov oziroma ob pritisku na tipko "Space".
Microsoft Network Monitor
Kaj: Program za analizo omrežnega pretoka.
Cena: Brezplačno.
Naslov: www.microsoft.com.
Okolje: Windows.
Knjižnica: Microsoft Network Monitor Driver.
Za: Preprosta raba, omogoča prestrezanje z več kartic hkrati.
Proti: Še vedno v preizkusni fazi.
Ettercap
Vse vohljače, ki smo jih opisali doslej, lahko klasificiramo kot pasivne, Ettercap pa sodi v kategorijo aktivnih vohljačev, čeprav lahko deluje tudi pasivno. Program je značilno hekersko orodje, katerega glavni namen je prestrezanje uporabniških imen in gesel. Ali kakor nam ob pozdravnem zaslonu sporočata razvijalca ALoR in NaGA: "Prineseno s temne strani interneta. Naj bodo paketki z vami ... Varni so!! Vsaj zaenkrat ...".
Ettercap je nadvse zmogljiv. Lahko deluje kot vohljač ali prestreznik (interceptor); izvaja ARP zastrupljanje ter vstavljanje podatkov (data injection); dešifrira protokola SSH1 in SSL; podpira vtičnike ter prepoznavanje operacijskih sistemov (OS fingerprinting); omogoča filtriranje gesel večine čistopisnih protokolov, prestreza LANMAN in NTLM razpršena gesla (hash) in celo gesla iger, kot sta Quake 3 in Half-Life. Sicer je že nekaj časa na voljo različica Ettercap-ng 0.7.3, vendar je priporočljivo uporabljati nekoliko starejšo Ettercap 0.6.b, ki je celo nekoliko zmogljivejša.
Ettercap lahko uporabljamo v dveh načinih: grafičnem in ukaznem (z uporabo stikala -N). Aktivno prestrezanje gesel v omrežju, povezanem s stikali (switched network), bi izvedli z naslednjim ukazom:
ettercap -NaC {IP 1} {IP 2}.
Stikalo -a izvede ARP zastrupljanje, -C pa na zaslon izpisuje prestrežena gesla. Če želimo pasivno zajemati celoten promet, uporabimo naslednje: ettercap -Nzs. Stikalo -z onemogoči ARP zastrupljanje, -s izvaja pasivno zajemanje prometa. Le-ta se sicer na zaslon izpisuje v realnem času, vendar je oblika izpisa veliko bolj nepregledna kakor pri TCPDump.
Omenimo tudi program Cain & Abel, ki je bil sicer v naši rubriki že opisan (Monitor 10/2006), saj je tako po funkcionalnosti kakor delovanju skoraj enaka Ettercapu, s to razliko, da ima okenskim uporabnikom prijaznejši grafični vmesnik, vendar ne omogoča zajemanja pretoka v realnem času. Ettercap je med aktivnimi vohljači nedvomno razred zase.
Ettercap prestreže NTLM razpršeno geslo.
Ettercap
Kaj: Aktivni vohljač.
Cena: Brezplačno.
Naslov: ettercap.sourceforge.net.
Okolje: Windows, Unix.
Knjižnica: WinPcap, libpcap.
Za: Zmogljivost, funkcionalnost.
Proti: Nepregleden izpis okvirov pri pasivnem zajemanju.
Sniphere/SmartSniff
Vohljačev je seveda silno veliko in vsak izmed njih ima svoje prednosti in slabosti. Naš preizkus jih je zajel le majhen del, tiste najbolj (pri)znane in uporabljene. Na tem mestu bomo izpostavili še dva, ki sta po funkcionalnosti dokaj skromna, saj omogočata le prestrezanje najosnovnejših protokolov, vendar se njun glavni adut skriva drugje. Sniphere in SmartSniff sta namreč zelo majhna, samostojna programa, ki ne zahtevata namestitve. Oba za delovanje uporabljata knjižnico WinPcap (SmartSniff lahko, z nekaterimi omejitvami, deluje tudi s priloženo knjižnico Windows API "raw sockets"). Tako Sniphere kakor SmartSniff sta nezahtevna za uporabo in s tem primerna za začetnike.
Sniphere/SmartSniff
Kaj: Programa za prestrezanje omrežnega prometa.
Cena: Brezplačno.
Naslov: www.securesphere.net, www.nirsoft.net.
Okolje: Windows.
Knjižnica: WinPcap, WinPcap / Windows Raw Sockets API (omejeno).
Za: Majhnost, enostavna raba.
Proti: Omejena funkcionalnost.
Čeprav so vohljači med uporabniki na zelo slabem glasu, pa je njihova funkcionalnost v veliko pomoč upraviteljem omrežij pri odkrivanju težav v omrežju (ozka grla). Vohljač sam po sebi ni destruktiven, njegov uporabnik odloča, v kakšne namene bo uporabljen.
Uporabne povezave
Odkrivanje kartice v promiskuitetnem načinu:
(Windows)
ntsecurity.nu/toolbox/promiscdetect
support.microsoft.com/?kbid=892853
www.securityfriday.com/products/promiscan.html
www.packetstormsecurity.org/sniffers/antisniff
(Unix)
packetstormsecurity.org/UNIX/IDS/cpm