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: https://nmap.org/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.