Izbjegavanje i zavaravanje vatrozida i IDS-a

Mnogo pionira interneta zu zamislili globalnu otvorenu mrežu univerzalnog adresnog prostora u kojoj je dozvoljeno spajanje bilo koja dva čvora. To bi omogućilo hostovima da šalju i primaju informacije jedan od drugog. Ljudi bi mogli pristupiti svim svojim sustavima s posla i mijenjati postavke grijanja i hlađenja, pa čak i otključavati vrata gostima koji su uranili.Ta verzija univerzalne povezanosti je ugušena nedovoljnim adresnim prostorom i ponajviše iz sigurnosnih razloga. U ranim 90-tima, firme su počele uvoditi vatrozide s primarnom namjenom da smanje mogućnosti povezivanja koje su postojale. Ogromne mreže su ofgrađene od nefiltriranog interneta korištenjem aplikacijskih proxy-a, NAT uređajai paket filtera. Otvoreno kolanje informacija predalo je tron kontroliranim komunikacijskim kanalima i sadržajem koji je njima prolazio.

Mrežne barijere poput vatrozida mogu otežati mapiranje mreže, a vremenom neće biti ništa lakše, jer ugušiti lagodno istraživanje mreže je primarni cilj većine uređaja. No ipak, Nmap nudi mnogo mogućnosti kako bi nam pomogao u razumijevanju tih kompleksnih mreža i kako bi provjerio da li filteri uistinu rade onako kako smo zamislili. Čak podržava mehanizme za obilaženje loše implementiranih mjera zaštite. Jedna od najboljeh metoda pomoću koje ćete razumjeti postavke svoje mrežne sigurnosti je pokušaj da je obiđete. Pokušajte se postaviti u mentalni sklop napadača i iskoristite tehnike iz ovog poglavlja protiv svojih mreža. Pokrenite FTP bounce sken, idle sken, napad fragmentacijom ili pokušajte tunelirati kroz svoj proxy server.

Uz to što brane mrežnu aktivnost, firme sve više nadgledaju promet sa sustavima za otkrivanje upada (engl. intrusion detection system) IDS. Većina poznatijih IDS sustava dolaze s podešenim pravilima koja mogu prepoznati Nmap skenove, jer ponekad je sken u stvari prethodnik napada. Većina tih sustava je nedavno prerasla u sustave za zaštitu od upada (engl. intrusion prevention system) IPS koji aktivno blokiraju promet koji ocjene kao zloćudan. Na štetu mrežnih administratora i proizvođača IDS sustava, pouzdano ustanoviti što je zloćudno, a što nije samo analizom paketa je teško. Napadači koji imaju strpljenja i sposobnosti obično mogu uz pomoć nekin Nmap-ovih opcija proći nezapaženo od IDS sustava. U međuvremenu admnistratori se moraju boriti s velikom količinom lažnih uzbuna, gdje je normalna mrežna aktivnost pogrešno dijagnosticirana i možda čak blokirana od IPS sustava.

Ponekad ljudi predlažu da Nmap ne bi trebao nuditi mogućnosti za obilaženjem vatrozida i provlašenja pored IDS-a. Tvrde da će te mogućnosti biti korištene od strane napadača isto kao i od strane administratora. Problem u ovoj logici je taj što će metode tako i tako biti dostupne napadačima koji će koristiti neki fdrugi alat ili sami doprogramirati funkcionalnost u Nmap, dok bi administratori imali puno teži posao u sprješavanju upada na svoje sustave. Postavljanje samo modernih, zakrpanih FTP servera je mnogo učinkovitija obrana od sprječavanja distribucije alata koji mogu napraviti FTP bounce napad.

Ne postoji čarobni metak (ili Nmap opcija) za otkrivanje i potkopavanje vatrozida i IDS sustava. Za to je potrebna vještina i iskustvo. Tutorial je nešto što ne spada u ovaj dokument, koji samo navodi opcije i opisuje što one mogu.

-f (fragmentiraj pakete); --mtu (koristi navedeni MTU)

-f opcija prisiljava pokrenuti sken (uključujući i ping sken) da koristi male fragmente IP paketa. Ideja se sastoji od toga da zaglavlje TCP paketa prelomi na više paketa kako bi paket filterima, IDS-ovima i drugim dosadnjakovićima bilo teže otkriti što radite. Budite pažljivi s tim! Neki programi imaju problema u radu s takvim malim paketima. Jedan stari sniffer imenom Sniffit, je automatski pukao kad bi primio prvi fragment. Nakon što navedete ovu opciju jednom, Nmap podijeli pakete u 8 bytova ili manje. Tako će 20 bytno TCP zaglavlje biti podijeljeno u 3 paketa, dva po 8 bytova i jedan od 4. Imajte na umu da svaki od tih paketa koje smo prelomili dobiva novo zaglavlje, koje nema nikakve veze s originalnim. Navedite -f još jednom i Nmap će koristiti 16 bytova po fragmentu (smanjujući broj fragmenata). Isto tako možete definirati bilo koju željenu veličinu korištenjem --mtu opcije. Ukoliko koristite --mtu opciju nemojte koristiti i -f opciju. Fragment mora biti višekratnik broja 8. Iako fragmenti neće proći pored paet filtera i vatrozida koji skupljaju se fragmente kako bi vidjeli što je u originalnom paketu, popout opcije CONFIG_IP_ALWAYS_DEFRAG u linux jezgri operativnog sustava, činjenica je da si neke mreže ne mogu dozvoliti udar na performanse koji ta opcija ima, pa je stoga na njima isključena. Drugi pak sustavi ne mogu imati upaljnu tu opciju, jer fragmenti mogu doći u njihovu mrežu drugom rutom. Neki sustavi defragmentiraju izlazne pakete u samoj jezgri, poput linuxa koji ima iptables s upaljenim modulom praćenja konekcije. Pokrenite sken dok je upaljen snifer poput ethereal-a kako bi se osigurali da su odlazni paketi fragmentirani. Ukoliko vaš OS radi probleme (kao što smo naveli malo prije kod linuxa i iptables-a), pokušajte slati sirove eternet frame-ove opcijom --send-eth.

-D <decoy1 [,decoy2][,ME],...> (sakrij sken pomoću mamaca)

Ovaj način skeniranja učini to da na hostu koji skenirate izgleda kao da ga skeniraju i sustavi koje ste stavili u mamce. Tako će IDS navesti 5- port skenova s jedne IP adrese i tako za sve mamce koje ste naveli i za vas. Samim tim neće znati tko je stvarno skenirao mrežu, a tko je bio nevina žrtva (mamac). Ovo može biti eliminirano traženjem ruterskog puta (engl. router path tracing), odbacivanja odgovora (engl. response-dropping) i nekim drugim aktivnim mehanizmima, ali je ipak efikasna tehnika za sakrivanj IP adrese.

Odvojite svaki host mamac sa zarezimaa možete opcionalno navesti i ME (što predstavlja vašu IP adresu), kako bi bila pozicionirana baš na onom mjestu u skeniranju na kojem je želite. Ako postavite ME na 6. mjesto ili kasnije, neki uobičajeni detektori port skenova (poput alata "scanlogd" firme Solar Designer's) uopće neće pokazati Vašu IP adresu. Ukoliko ne kkoristite ME opciju, Nmap će staviti vašu IP adresu na proizvoljno mjesto.

Imajte na umu da hostovi koje navodite kao mamce moraju biti upaljeni, jer ćete inače slučajno napasti host koji skenirate Syn flood napadom. Isto tako poprilično je lako ustanoviti tko vas skenira ako samo jedan host od navedenih uistinu postoji na mreži. Možete koristiti IP adrese umjesto imena (kako vas mamci ne bi vidjeli u svojim name server logovima).

Mamci se koriste u inicijalnom ping skenu (korištenjem ICMP, SYN, ACK ili bilo kojeg drugog načina) kao i za trajanja stvarnog skena portova. Mamci se također koriste i kod udaljenog otkrivanja operativnog sustava (-O). Mamci NE rade s otkrivanjem verzije ili TCP connect() skena.

Činjenica je da će korištenje previše mamaca usporiti skeniranje i potencijalno ga učiniti manje točnim. Isto tako, neki ISP-ovi će filtrirati lažirane pakete, ali većina ih ne zabranjuje.

-S <IP_Address> (Lažiraj ishodišnu adresu)

U nekim situacijama Nmap neće moći ustanoviti vašu ishodišnu IP adresu (Nmap će vam reći ako dođe do toga). U tom slučaju koristite opciju -S s IP adresom mrežnog adaptera preko kojeg želite poslati paket.

Još jedna mogućnost korištenja ove opcije je lažirati sken kako bi ciljano računalo mislilo da ga skenira netko drugi. Zamislite firmu koju konstantno skenira konkurencija! -e opcija j eobično potrebna za ovu namjenu i -P0 je također preporučeno.

-e <interface> (koristi navedenu mrežnu karticu)

Ova opcija kaže Nmap-u koju mrežnu karticu da koristi za slanje i primanje paketa. Nmap bi to trebao otkriti automatski, a sam će vam reći ako to ne uspije.

--source-port <portnumber>; -g <portnumber> (Lažiraj broj ishodišnog porta)

Iznenađujuće česta greška je samo vjerovanje prometu koji dolazi s određenog porta. Jednostavno je shvatiti odakle to dolazi. Administrator podesi novi novcati vatrozid i najednom je obasut pritužbama korisnika kako su im aplikacije prestale raditi. Čak štoviše, možda je prestao raditi i DNS, jer UDP DNS odgovori s vanjskih servera više ne mogu ući u mrežu. FTP je još jedan dobar primjer. Kod aktivnih FTP prijenosa, FTP pokuša uspostaviti vezu nazad prema klijentu da bi poslao zatraženu datoteku.

Postoje sigurna rješenja tih problema, često u obliku proxy-a na aplikacijskom nivou ili modula na vatrozidu koji parsaju protokol. Nažalost postoje i lakša, manje sigurna rješenja. Vidjevši da DNS odgovori dolaze s porta 53 i aktivni FTP s porta 20, mnogi su administratori pali u zamku jednostavno dozvoljavajući ulazni promet s tih portova. Obično pretpostavljaju da napadači neće uočiti i iskoristiti takve rupe u vatrozidu. U nekim slučajevima administratori smatraju to rješenje kao privremenu zakrpu, dok ne implementiraju bolje rješenje, a onda zaborave na to.

U te zamke ne padaju samo preopterećeni mrežni administratori. Mnogo uređaja je isporučeno s takvim nesigurnim pravilima. Čak je i Microsoft bio kriv. IPSec filter koji dolazi s Windows 2000 i s WIndows XP OS-om ima implicitno pravilo koje dozvoljava sav TCP i UDP promet s porta 88 (Kerberos). Još jedan dobro poznati primjer je ZOne Alarm osobni vatrozid, koji je do verzije 2.1.25 dozvoljavao bilo koje dolazne UDP pakete sa ishodišnog porta 53 (DNS) i 67 (DHCP).

Nmap nudi opcije -g i --source-port (iste su) kako bi iskoristili ovakve slabosti. Jednostavno navedite broj porta i Nmap će ga koristiti kao ishodišni port gdje je to moguće. Nmap mora koristiti različite portove kako bi neki testovi otkrivanja OS-a radili ispravno,a DNS zahtjevi ignoriraju opciju --source-port, jer se kod toga Nmap oslanja na sistemske biblioteke. Većina TCP skenova uključujući i SYN sken podržava ove opcije u potpunosti isto kao i UDP sken.

--data-length <number> (Dodaj proizvoljne podatke na pakete koje šalješ)

U normalnim situacijama Nmap šalje minimalističke pakete koji se sastoje samo od zaglavlja. Tako da su Nmap-ovi TCP paketu u načelu veličine 40 bytova, a ICMP paketi 28 bytova. Ova opcija kaže Nmap-u da doda određenu količinu proizvoljnih bytova u paket koji šalje. Paketi koje koristi otkrivanje OS-a (-O) nisu zahvaćeni ovom opcijom, dok većina ping skenova i portskenova je. To usporava skeniranje, ali ga isto tako čini manje sumnjivim.

--ttl <value> (Podesi polje IP time-to-live)

Podešava polje time-to-live i IPv4 paketima na zadanu vrijednost.

--randomize-hosts (Proizvoljno poredaj hostove koje skeniraš)

Ova opcija kaže Nmap-u da pomiješa svaku grupu od 8096 hostova prije nego ih počne skenirati. To može učiniti skeniranje manje očitim za većinu sustava za nadgledanje mreže, pogotovo kad ovu opciju kombinirate sa sporim vremenima kašnjenja (engl. timing options). Ukoliko želite pomiješati veće grupe, povećajte PING_GROUP_SZ u nmap.h biblioteci i ponovno kompajlirajte Nmap. Alternativno rješenje je da kreirate listu ciljanih IP adresa s list skenom (-sL -n -oN <naziv datoteke>), pomiješate je s perl skriptom i onda dodate tu listu Nmap-u s opcijom -iL.

--spoof-mac <mac adresa, prefiks ili naziv proizvođača> (Lažiraj MAC adresu)

Ova opcija zatraži Nmap da koristi navedenu MAC adresu za sve ethernet frame-ove koje pošalje. Ova opcija podrazumijeva --send-eth opciju kako bi osigurala da Nmap uistinu šalje pakete na nivou etherneta. MAC adresa može imati nekoliko formata. Ukoliko je string 0, Nmap će sam odabrtati proizvoljnu MAC adresu za trajanje sesije. Ukoliko je zadani string sačinjen od parnog broja hex znamenaka (gdje su parovi opcionalno odvojenih dvotočkom), Nmap će korisiti tu MAC adresu. Ako je upisano manje od 12 znamenaka, Nmap će ostatak nadopuniti s proizvoljnim vrijednostima. Ako nije navedena 0 niti hex string, Nmap pregleda datoteku nmap-mac-prefixes tražeći naziv proivođača koji sadrži navedeni string (case sensitive). Ako se nešto poklopi, Nmap koristi OUI (3 bytni prefix) proizvođača, a ostatak dopuni proizvoljno. Ispravni --spoof-mac argumenti su npr. Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, and Cisco.

--badsum (Šalji pakete s lažnim TCP/UDP checksumom)

Ova opcija traži od Nmap-a da koristi neispravne TCP i UDP checksume za pakete koje šalje na ciljano računalo. Kako skoro svaki IP stack odbacuje takve pakete, svaki odgovor koji dobijete najvjerovatnie dolazi od vatrozida ili IDS sustava koji nisu provjeravali checksum. Za više detalja o ovoj tehnici, pogledajte: https://nmap.org/p60-12.txt.