Prepoznavanje servisa i njihovih verzija
Skenirajte neko računalo pomoću Nmap-a i mogao bi vam reći da su portovi 25/tcp, 80/tcp i 53/tcp otvoreni.
Koristeći nmap-services bazu podataka u kojoj se nalazi preko 2200 poznatih
servisa, Nmap će vam reći da su na navedenim portzovima najvjerovatnije mail server (SMTP), web server (HTTP) i
name server (DNS). To je u većini slučajeva ispravno, većina servera koji slušaju na portu 25 su uistinu mail
serveri, ali nemojte biti 100% sigurni u to, jer postoje ljudi koji pokreću servise na "čudnim" portovima.
Ako je Nmap ipak u pravu i server o kojem je riječ ima pokrenut SMTP, HTTP i DNS server, to ipak nije pretjerano
mnogo informacija. Ukoiko radite pregled ranjivosti (vulnerability assessment) ili samo jednostavan inventar mrež
nih servisa na računalima u firmi, činjenica je da trebate mnogo više informacija od gore navedenih. Želite znati
koje verzije mail, HTTP i DNS servera su pokrenute na tom računalu. Kad imate "pri ruci" ispravnu verziju
serverske komponente nije teško ustanoviti koje ranjivosti dotični server ima. Otkrivanje verzije vam pomaže u
dobivanju tih informacija.
Nakon što ste otkrili koji TCP i/ili UDP portovi su otvoreni korištenjem neke od do sad opisanih tehnika,
otkrivanje verzije ispituje te portove ne bi li otkrilo što je u stvari na tim portovima, tj. koja aplikacija je
otvorila dotičpne portove. nmap-service-probes baza podataka sadži upite za
ispitivanje raznih servisa i prepoznavanje na osnovu odgovora koje dobije. Nmap pokušava ustanoviti protokol na
kojem radi servis (npr. ftp, ssh, telnet, http), naziv aplikacije (npr. ISC Bind, Apache, httpd, Solaris telnetd)
, verziju, naziv hosta, tip uređaja (npr. printer, ruter), porodicu iz koje dolazi OS (npr. Windows, Linux) i
ponekad neke detalje poput toga da li je otvoren X server, verziju protokola koju koristi SSH ili KaZaA
korisničko ime. Naravno, većina servisa ne daje sve te informacije. Ukoliko je Nmap kompajliran s podrškom za
OpenSSL protokol, spojit će se na SSL servere kako bi ustanovio servise koji se nalaze iznad enkripcijskog sloja.
Ako su otkriveni RPC servisi, Nmap RCP istraživač (-sR) je automatski uključen kako bi otkrio
koji program se nalazi iz RPC-a i koja mu je verzija. Neki UDP portovi su označeni s
otvoren|filtriran, ako UDP scan nije mogao odrediti da li je port otvoren ili filtriran. Otkrivanje
verzije će pokušati dobiti odgovor s tih portova (isto kao što to radi i kod otvorenih portova), te će
promijeniti njihovo stanje u otvoren ako uspije dobiti odgovor. TCP portovi koji su okarakterizirani kao otvoreni|filtrirani, tretirani su na isti način. Imajte na umu da opcija
-A omogućije otkrivanje verzije uz ostale stvari koje podržava. Dokument koji objašnjava rad,
korištenje i mijenjanje ovog dijela programa je dostupan na linku:
http://www.insecure.org/nmap/vscan/.
Kad Nmap dobije odgovr od servisa, a ne može ga usporediti s ni jednim zapisom u svojoj bazi podataka, ispisat će scepijalni "fingerprint" i URL linka na koji ga možete poslati ukoliko ste sigurni u to što se nalazi na tom portu. Molim vas da odvojite nekoliko minuta svog vremena kako bi poslali te informacije, jer će kasnije nekom drugom biti od velike koristi. Zahvaljujući upravo takvom načinu prikupljanaj informacija, Nmap ima preko 3000 zapisa koji odgovaraju (prepoznavaju) preko 350 protokola, poput smtp-a, ftp-a, http-a, itd..
Otkrivanje verzije se uključuje i njime se upravlja korištenjem sljedećih opcija:
-
-sV (Otkrivanje verzije) Uključuje otkrivanje verzije, kao što je opisano gore. Kao zamjenu, možete koristiti opciju
-A da bi istovremeno uključili OS detekciju i otkrivanje verzije servisa.
-
--allports (koristi sve portove u otkrivanju verzije servisa)
Nmap-ovo otkrivanje verzije servisa preskače port 9100, jer neki printeri jednostavno isprintaju sve
što se pošalje na taj port, što rezultira s hrpom stranica na kojima su HTTP GET zahtjevi, binarni SSL
zahtjevi isl. Ukoliko ipak želite koristiti i takve portove, možete to napraviti na način da maknete
Exclude naredbu u nmap-service-probes
datoteci ili jednostavno uključite opciju --allports, koja će ignorirati
Exclude naredbu u nmap-services-probes.
-
--version-intensity <intensity> (podesite intenzitet otkrivanja verzije servisa)
Kad radite scan otkrivanja verzije (-sV), Nmap šalje seriju upita od kojih je svakom
dodijeljen broj od 1 do 9. Oni upiti koji imaju niže brojeve u efikasni kod većine često korištenih
servisa, dok su oni s višim brojevima rijetko korisni. Nivo nntenziteta skeniranja određuje koji upiti će
biti korišteni. Što je veći broj, to je veća vjerovatnost da će servis biti ispravno identificiran. No,
takvi skenovi traju duže. Intenzitet mora biti između 0 i 9. Preddefinirana vrijednost je 7. Ukoliko je
upit registriran u nmap-service-probes ports
naredbi, bit će isproban bez obzira na nivo intenziteta. To garantira da će DNS upiti uvijek
biti odrađeni na portu 53, SSL na portu 443 itd.
-
--version-light (omogući "lagani" mod)
To je jednostavniji način pozivanja opcije --version-intensity 2. Lagani mod ubrzava
skeniranje, ali je samim tim i manja vjerovatnost da će identificirati servis.
-
--version-all (isprobaj sve upite)
Zamjena za opciju --version-intensity 9. Isprobat će sve upite u bazi podataka
-
--version-trace (prati sve što se događa tijekom skena)
Nmap ispiše opširne debug informacije o tome što trenutno radi opcija otkrivanja verzije servisa. To
je dio onoga što ćete dobiti opcijom --packet-trace.
-
-sR (RPC scan) Ova metoda radi u sprezi s različitim port scan metodama Nmap-a. Uzme sve TCP/UDP portove koji su
identificirani kao otvoreni i preplavi ih sa SunRPC NULL naredbama pokušavajući ustanoviti da li su RPC
portovi i ako jesu za koje programe rade. Stoga možete efikasno dobiti iste informacije kao i s naredbom
rpcinfo -p, čak i kad je ciljani portmapper iza firewall-a (ili zaštićen
TCP omotačima). Mamci trenutno NE rade s RPC skenom. To je automatski uključeno kao dio skeniranja verzije
servisa (-sV). Budući da otkrivanje verzije servisa samo po sebi već ima uključenu ovu
opciju, -sR se rijetko koristi.