* Napisao ArhaiK sa planete Zemlje * Sve zahvale idu mojoj mami i tati * Ovo je tekst za mog andjela * Copyright (C) d e e p m o d e */ /* Jedan mali,ali zaista mali uvod */ Zadnjih nekoliko godina na internetu je sve vise sigurnosnih alata za Windows i UNIX operativne sisteme i ono sto je jos interesantnije je da su skoro svi besplatni ili su izuzetno jeftini. No najpoznatiji od ovih alata su sigurno security skeneri kojih je zaista puno i koje uglavnom koriste hakeri ili cak i administratori raznih sistema da bi uvideli da li postoje greske koje se moraju otkloniti prije nego sto ih primeti neki zlonamerni haker[cracker].No ovi skeneri jesu legalni ali ipak koliko donose i pozitivnih stvari toliko isto donose i negativnih stvari.Zasto? Pa uglavnom zato sto u danasnje vreme citav svet hackinga je baziran na tome da upises metu i jednostavno kliknes na dugme koje ce otpoceti napad.Znaci danas ne morate uopste biti nekakav poseban znalac ove struke jer je sve vise programa koji ce ovo obaviti za vas.Danasnji zahtevi za posao administratora su zaista veliki,jer se gotovo svaki dan pronadju po nekoliko novih i izuzetno opasnih rupa koje napadaci mogu iskoristiti da ugroze stanje vaseg sistema ili da cak u potpunosti ovladaju svakim delom vaseg sistema.No zato su mnoge hakerske organizacije i razne security internet firme poceli stvarati softwer koji bi posao administratora znatno olaksao.No neke od ovih inacica su hakeri poceli da koriste u svoje svrhe a najpoznatiji od tih programa su naravno tzv. sigurnosni skeneri ciji je cilj da pronadju rupe na skeniranom sistemu i dodatne informacije kao sto su otvoreni servisi,njihovi protokoli itd.Jedan od najpoznatijih i ... port skenera koji vam nudi liste otvorenih portova na datom hostu,njihove servise,OS i jos mnostvo toga je Nmap koji je i tema ovog clanka. /* Sta je to Nmap? */ Kao sto sam vec rekao Nmap je ubedljivo najbolji port skener koji je dizajniran da znatizeljnim pojedincima i system administratorima omoguci skeniranje velikih mreza da bi uvideli koji hostovi postoje i koje servise ti isti hostovi nude.Smisao ovog projekta je ustvari da mnoge tipove skeniranja spojimo u jedan program a ne u nekoliko razlicitih.Zamislite da nam jedan trenutak treba TCP connect() nacin skeniranja,zatim posle nekoliko sekundi treba nam Xmas Tree nacin itd. Zamislite samo koliko bismo prozora trebali otvarati i zatvarati svakih nekoliko minuta pa cak i svakih nekoliko sekundi.Za sve to se pobrinuo haker i programer pod imenom nadimkom Fyodor.On je ustvari stvorio ovaj predivni skener koji ima zaista mnogobrojne opcije.Dakle za ovo veliko cudo zahvalite njemu a ne meni,jer ja samo objasnjavam sta je on stvorio i kako iskoristiti ono sto je on uradio i ono sta nam taj skener nudi.Kao sto je gore vec navedeno Nmap nudi mnoge tehnike tj. tipove skeniranja kao sto su: Vanilla TCP connect() scanning, TCP SYN (half open) scanning, TCP FIN (stealth) scanning, TCP ftp proxy (bounce attack) scanning, SYN/FIN scanning using IP fragments (bypasses packet filters), UDP recvfrom() scanning, UDP raw ICMP port unreachable scanning, ICMP scanning (ping-sweep), and Reverse-ident scanning. Nmap je besplatan sigurnosni port skener koji ima i otvoren source kod.Najnoviju verziju Nmap-a mozete pronaci i skinuti sa http://www.insecure.org/nmap/. /* Instalacija Nmap-a */ Prije nego sto podjemo na upustva za instalaciju mislim da sam zaboravio da kazem da je ovaj skener napravljen iskljucivo za Linux operativne sisteme a da verziju za Windows OS mozete preuzeti sa http://www.eeye.com ako se ne varam.No mi cemo u ovom textu proucavati i opisivati verziju za Linux OS.Dakle najnoviju verziju mozete skinuti ako u vas web citac ukucate sledecu adresu: http://www.insecure.org/nmap/dist/nmap-2.54BETA7-1.i386.rpm Ovaj rpm paket ne bi trebao da se puno skida jer njegova velicina iznosi negde oko 300 kb.Posle skidanja ovog paketa trebalo bi da konacno snimimo ovaj paket kako bismo napokon poceli sa radom na ovom skeneru.Ako smo snimili fajl pod imenom nmap-2.54BETA7-1.i386.rpm u direktorijum na nasoj masini pod imenom /root/scanners onda bismo trebali da ukucamo sledece: # cd /root/scanners # rpm nmap*.i386.rpm I to bi bilo to.Veoma jednostavno zar ne?Komandom cd /root/scanners smo se prebacili u u taj dir, a komandom rpm nmap*.i386.rpm smo snimili ovaj skener.Da biste videli da li je vasa instalacija uspela ukucajte sledecu komandu: # nmap Ova komanda bi trebala da pozove skener i da vam pokaze kratko upoznavanje kako se on koristi i koje su njegove opcije.Detalje o tim opcijama mozete pronaci na help stranici Nmap-a tako sto cete ukucati komandu: # man nmap To bi trebao da bude pocetak vaseg koristenja Nmap-a a ja bi trebao konacno poceti objasnjavati opcije ovog skenera. /* Uvod u opcije Nmap port skenera */ Kao sto sam vec 100 puta rekao Nmap raspolaze sa mnostvom opcija koje ga i cine ovako elitnim kao sto to on ustvari i jeste.Eto na primer Nmap pomocu svoje opcije -O moze svojom velikom bazom TCP/IP Fingerprinta da odredi koji OS se nalazi na hostu koji trenutno skenirate.Ili na primer pomocu svoje opcije -sS Nmap ima mogucnost nevidljivog,odnosno stealth skeniranja.Rezultat Nmap port skenera uglavnom predstavlja lista interesantnih portova pored kojih se nalazi i ime servisa koji taj port nudi.Nmap pored portova takodje prikazuje i njihov protokol TCP ili UDP i njihovo stanje.Da li su otovoreni[open],zatim filtrirani[filtered] ili nisu ni jedno ni drugo nego su nesto trece[unfiltered].Unfiltered portovi se uglavnom prikazuju kada su gotovo svi portovi koje je Nmap izlistao filtrirani.Zavisno od opcija koje koristimo Nmap takodje kao rezultat skeniranja moze dati OS koji se koristi,zatim TCP sekvence,korisnicka imena koja se nalaze u programima iza portova,DNS verziju i ime,utvrdjuje da li je host smurfna adresa itd.Jos jedna izuzetna osobina Nmap-a je da se njegove opcije mogu kombinovati a ukoliko ste upisali nepostojecu opciju Nmap ce vas upozoriti i pokusace da vam ukaze prihvatljivu opciju.Pa mislim da je doslo vreme da krenemo da se bavimo opcijama i da ja prestanem filozofirati. /* Opcije Nmap port skenera */ Tipovi skeniranja: -sT Ovo je uobicajen nacin skeniranja na fazonu TCP connect() scan. Connect() system call koji je distribuiran od strane vaseg OS-a koristi se za otvaranje konekcije interesantnih portova na hostu koji skenirate.Ako port u pozadini ceka poziv konekcija ce biti uspesna sto znaci da je taj port otvoren,a u suprotnom konekcija nece biti uspesna i to bi trebalo znaciti da port nije otvoren. Ova opcija se uglavnom koristi najvise jer za nju nisu potrebne root privilegije na masini odakle pokrecemo skener.Ovaj nacin skeniranja se lako otkriva tako sto se logovi na masini koju skeniramo ispunjavaju gomilom podataka o uspesnim i neuspesnim konekcijama na odredjene portove.Logovi posle ovog tipa skeniranja bi trebali izgledati nesto nalik ovome: Apr 14 19:18:56 mozart in.telnetd[11634]: connect from 192.168.11.200 Apr 14 19:18:56 mozart imapd[11635]: connect from 192.168.11.200 Apr 14 19:18:56 mozart in.fingerd[11637]: connect from 192.168.11.200 Apr 14 19:18:56 mozart ipop3d[11638]: connect from 192.168.11.200 Apr 14 19:18:56 mozart in.telnetd[11639]: connect from 192.168.11.200 Apr 14 19:18:56 mozart in.ftpd[11640]: connect from 192.168.11.200 Apr 14 19:19:03 mozart ipop3d[11642]: connect from 192.168.11.200 Apr 14 19:19:03 mozart imapd[11643]: connect from 192.168.11.200 Apr 14 19:19:04 mozart in.fingerd[11646]: connect from 192.168.11.200 Apr 14 19:19:05 mozart in.fingerd[11648]: connect from 192.168.11.200 -sS Ova opcija se naziva TCP SYN ili pola otvorenim skeniranjem. Ona se uglavnom koristi za skeniranje kada nam nije potrebna potpuna TCP konekcija.Desava se tako sto saljemo SYN paket i ne otvaramo potpunu konekciju.Ustvari dolazi do toga da SYN|ACK primecuje portove koji cekaju da se pozovu tj. da ih neko slanjem TCP paketa otvori.No medjutim ova tehnika jednostavno ustanovi da li port postoji a uopste ga ne otvara,tj. RST primanjem SYN|ACK paketa automatski zatvara konekciju tako da u logovima ne ostaje nas IP nego samo greske.No postoje programi za detektovanje skoro svih oblika skeniranja Nmap skenera tako da se i ovaj tip lako moze otkriti ako je u vasim rukama jedan od takvih programa a ja preporucujem Psionic PortSentry koji mozete preuzeti sa http://www.psionic.com/abacus/portsentry/.Log posle ovog tipa skeniranja bi trebao da izgleda nesto nalik ovome: Apr 14 21:25:08 mozart in.rshd[11717]: warning: can't get client address: Connection reset by peer Apr 14 21:25:08 mozart in.rshd[11717]: connect from unknown Apr 14 21:25:09 mozart in.timed[11718]: warning: can't get client address: Connection reset by peer Apr 14 21:25:09 mozart in.timed[11718]: connect from unknown Apr 14 21:25:09 mozart imapd[11719]: warning: can't get client address: Connection reset by peer Apr 14 21:25:09 mozart imapd[11719]: connect from unknown Apr 14 21:25:09 mozart ipop3d[11720]: warning: can't get client address: Connection reset by peer Apr 14 21:25:09 mozart ipop3d[11720]: connect from unknown Apr 14 21:25:09 mozart in.rlogind[11722]: warning: can't get client address: Connection reset by peer Apr 14 21:25:09 mozart in.rlogind[11722]: connect from unknown -sF -sX -sN Postoje hostovi koji imaju zaista jaku sigurnost pa ni SYN skeniranje ne moze da utvrdi koji portovi su otvoreni.No ukoliko ni SYN skeniranje nije dovoljno Nmap nudi i druge opcije kao sto su -sF -sX -sN koji su ustvari Stealth FIN, Xmas Tree i Null tipovi skeniranja.Ovi profesionalni nacini skeniranja bi trebali da prodju i da vam normalno izlistaju rezultate. FIN mode scan koristi prazan FIN paket za istrazivanje dok Xmas tree scan ukljucuje FIN,URG i PUSH flagove.Null scan iskljucuje ove flagove.Nazalost kao sto smo vec navikli da Microsoft radi van standarda tako i u ovom slucaju ovaj tip skeniranja nece raditi protiv Windows9.x/NT.No ovo takodje ima i pozitivnu stranu.Ako Nmap ne izlista otvorene portove onda znamo da je host koji smo skenirali na Windows-u. -sP Ponekad je sve sto zelimo obicno ping skeniranje a to nudi opcija -sP. Nmap ovo radi tako sto salje ICMP echo pakete na svaki IP koji se nalazi na mrezi koju skeniramo.Hostovi koji su aktivni bi trebali da odgovore na ove pakete.Nazalost neke stranice kao sto je microsoft.com imaju mogucnost blokiranja ovih paketa.No i za ovo postoji trik tako sto Nmap uvek moze TCP ack paket na port 80 i ako dobijemo RST nazad taj host postoji. Treci nacin je tako sto saljemo SYN paket i cekamo na RST ili SYN/ACK odgovor. Nmap po defaultu koristi ove nacine paralelno pa stoga ne moramo da brinemo oko konfigurisanja komande za sva tri nacina skeniranja. -sU Ovaj metod se koristi da bi uvideli koji UDP portovi su otvoreni na masini koju skeniramo.Ovaj mod salje 0 bita u udp paketu na svaki port.Ukoliko primimo nerazumljivu ICMP port poruku onda port nije ovoren,a u suprotnom bi trebao biti otvoren.Mnostvo ljudi misle da je UDP skeniranje gubljenje vremena.No ovi luzeri po mom misljenju nisu u pravu. -sA Ovaj izvanredni metod se uglavnom koristi za ispitivanje pravila na firewall-u. Dakle ovaj tip skeniranja salje ACK pakete na zeljene portove.Ukoliko se RST vrati port je klasificiran kao "unfiltered".Ako ne dobijemo nikakav znak od RST onda je port "filtered".Nmap obicno u rezultatima ne prikazuje rezultat "unfiltered" nego uglavnom "filtered" ukoliko se radi o ovom tipu skeniranja.I jos samo da napomenem da ovaj tip skeniranja skoro nikada ne prikazuje "open" stanje porta. -sW Ovo je tzv. Window scan mod koji je veoma slican ACK tipu skeniranja. Osnovna razlika je sto on u rezultatima prikazuje i "open" stanje portova. Postoji mnostvo OS-ova koji su ranjivi na ove vrste skeniranja a neki od njih su AIX,Amiga,BeOS,BSDI,Cray,Tru64 UNIX,DG/UX,OpenVMS,Digital UNIX,FreeBSD,HP-UX, OS/2,IRIX,MacOS,NetBSD,OpenBSD,OpenStep,QNX,Rhapsody,SunOS 4.X,Ultrix,VAX,i VxWorks. Za punu listu OS-ova koji su ranjivi na ove napade posetite nmap-hackers mailing listu koju mozete pronaci na http://www.insecure.org/nmap/. -sR RPC scan.Ovo je metod koji radi u kombinaciji sa mnostvo drugih tipova skeniranja koje Nmap skener nudi.Ovaj tip skeniranja pronalazi sve TCP I UDP portove pa ih zatim flood-a sa SunRPC NULL komandama da bi odredio koji su od njih RPC portovi i koji program i verziju prezentuju. -b FTP bounce napad.Ono sto je interesantno za FTP je da se sa bilo kog sistema mozemo spojiti na bilo koji sistem,naravno putem FTP-a. FTP je poznat po mnostvu rupa i po nesigurnoj istoriji postojanja. No ova opcija ce detektovati neke od rupa u ftp servisima sto bi vam trebalo olaksati rad. -PO Ova opcija ne dozvoljava pinganje hostova prije procesa skeniranja.Dakle ova opcija se koristi za skeniranje mreza koje imaju firewall koji ne dozvoljava prolazenje ICMP echo paketa.Ocit primer ovakvih sistema je microsoft.com i zato bi prilikom skeniranja sistema kao sto je microsoft.com trebali koristiti opcije -PO ili -PT80. -PT Ovaj tip skeniranja koristi TCP ping pakete radi utvrdjivanja koji hostove postoje na mrezi koju skeniramo.Ova opcija umesto slanja ICMP echo paketa koristi TCP ACK pakete i ceka odgovor.Hostovi koji postoje trebali a odgovoriti sa RST.Da bismo konfigurisali koji port zelimo da skeniramo jednostavno pored opcije -PT ukucamo broj porta.I to bi za port 80 izgledalo ovako -PT80.Najcesce se skenira port 80 koji je retko filtriran. -PS Ova opcija umesto ACK paketa koristi SYN pakete.Hostovi koji su zivi bi trebali odgovoriti sa RST a ponekad i sa SYN|ACK. -PI Ovo se koristi za slanje pravih ping paketa[ICMP echo].Dakle opcija trazi aktivne hostove a takodje trazi i subnet-directed broadcast adrese.Ako se pronadju ovakve IP adrese trebali bi se eliminirati jer su oni cesto uzroci mnogobrojnih DoS napada a smurf je najcesci od njih. -PB Ovo je standarni ping paket koji sadrzi ACK i ICMP pakete paralelno.Dakle na ovaj nacin biste trebali znati koja od ta dva tipa firewall blokira. -O Ovo je jedna od najpoznatijih Nmap-ovih opcija koja pomocu ogromne baze podataka pomocu TCP/IP Fingerprinta odredjuje koji OS se nalazi na hostu koji skenirate. Ovo ustvari iz informacije stvara fingerprint koji se poredi sa ostalima iz velike baze koju Nmap poseduje. -f Ova opcija SYN,FIN i XMAS skeniranju dodaje fragmentirane IP pakete koji ulaze u TCP header i tako paket filterima detekciju cine mnogo tezim.Sa ovom opcijom treba biti oprezan jer neki sniferi vec posle primanja prvih 36 bita znaju da padnu. -I Pomocu ove opcije ukljucuje se TCP reverse ident nacin skeniranja.Ova opcija ustvari omogucava da saznamo korisnicka imena procesa koji su povezani preko TCP. -p Ova opcija omogucava da kazete Nmap-u koji port ili koje portove zelite da skenirate.Na primer opcija -p 23 ce skenirati port 23, dok ce opcija -p 20-30,139,60000- skenirati portove izmedju 20 i 30,zatim port 139 i portove koji su vezi od 60000.Standard ove opcije je da skenira sve portove izmedju 1 i 1024 kao i portove koji su specifirani u Nmap servis fajlovima. -F Ovo je jedna zaista prosta opcija koja ce skenirati host samo za portove koji se nalaze u Nmap servis fajlu.I ovo je zaista brze nego da skeniramo svih 65535 portova. Postoji jos mnostvo opcija koje Nmap nudi ali eto ja sam naveo neke od glavnih koje su za pocetak i vise nego dovoljne.Detalje svih opcija potrazite na man stranici Nmap-a tako sto cete ukucati sledecu komandu: # man nmap /* Primeri koristenja Nmap port skenera */ U ovoj sekciji cu konacno navesti nekoliko primera koristenja Nmap skenera.Neki ce biti prosti,a neki naravno malo slozeniji.Samo jos da kazem da ja skeniranje ne smatram ilegalnim ali nazalost mnogi od nas ga smatraju.Ja sam ustvari skenirao toliko mnogo sistema da mi ni kalkulator ne bi mogao pomoci da saberem tacan broj.Dakle ne vidim razlog zasto biste vi dobili neke zalbe ako ih nisam dobio ni ja.Ali ipak sto je sigurno,sigurno je:"koristite vi to na vas rizik". # nmap -v target.example.com Ovaj primer ce skenirati sve zauzete TCP portove,a opcija -v ce ukljucuti verbose mod. # nmap -sS -O target.example.com/24 Navedeni primer ce pokrenuti neprimetno SYN skeniranje svake masine na klasi C.Takodje utvrdjuje OS svakog hosta koji pronadje.Ovaj nacin skeniranja zahteva root privilegije zbog SYN skeniranja i OS detekcije. # nmap -sX -p 22,53,110,143,4564 128.210.*.1-127 Ovaj primer salje Xmas tree skeniranje prvoj polovini svake adrese koju pronadje na B klasi hosta 128.210.Takodje otkriva ko od svih tih pronadjenih hostova nudi navedene servise:sshd,DNS,pop3d, imapd ili port 4564.Kao sto sam vec u ovom textu naveo Xmas tree nacin skeniranja ne radi protiv Windows masina. # host -l company.com | cut '-d ' -f 4 | ./nmap -v -iL - Ova slozena petlja bi trebala da istrazi DNS i da utvrdi koji se hostovi nalaze na serveru sa adresom company.com a zatim bi trebala da snadbeva Nmap sa IP adresama ovih hostova.U zavisnosti od OS-a koji imate mozda ce vam trebati drugacija komanda.I jos samo da kazem da je ova komanda za moj Red Hat Linux. Mislim da je ovo dovoljno primera za jedan tekst.Ukoliko ih zelite vise najbolje bi bilo da odete na homepage Nmap skenera i da tamo pronadjete mnostvo vise informacija.A uostalom ukoliko ste shvatili opcije o kojima sam pricao najbolje bi bilo da sami pokusate izvesti neke petlje. /* Nesto kao zavrsetak teksta */ Sta jos da kazem sem da se nadam da ste iz ovog teksta nesto naucili ako ne zao mi je.Ukoliko vam se svidjaju moji tekstovi mogao bih napisati jos koji a ukoliko ne opet cu napisati jos koji.Sve vase komentare,kritike i predloge posaljite na iris_server@yahoo.com i pokusacu da ih uvazim u sto kracem roku.Sa ovim tekstom mozete raditi sta god zelite i gde god zelite.Pozdravljam sve koji me podrzavaju i zelim im puno srece u narednoj 2001. godini.I jos da pozdravim drustvo koje ce se za novu godinu napiti kao stoka.Ajde vidimo se i puno srece. /* signed ArhaiK */