Detectia serviciilor si a versiunilor

Rulati nmap pe o masina si el ar putea sa va spuna ca porturile 25/tcp, 80/tcp si 53/udp sunt deschise. Folosind baza de date nmap-servicesde aproximativ 2.200 servicii cunoscute, Nmap va raporta ca respectivele porturi corespund unui server de mail (SMTP), unui server web (HTTP) si respectiv unui server DNS (53). Aceasta recunoastere este de obicei corecta – majoritatea serviciilor care asculta la portul TCP 25 sunt servere de mail. Totusi, nu trebuie sa va bazati pe asta! Oamenii pot si chiar ruleaza servicii pe porturi ciudate.

Chiar daca Nmap realizeaza recunoasterea corect, si ipoteticul server de mai sus ruleaza SMTP, HTTP si DNS, tot nu este suficienta informatie. Cand se realizeaza o evaluare a vulnerabilitatilor (sau chiar o simpla inventariere a retelei) a companiilor sau clientilor dumneavoastra, vreti sa stiti ce server de mail, ce server DNS si in ce versiuni ruleaza acestea. Avand un numar corect de versiune ne ajuta foarte mult sa determinam la ce exploituri este serverul vulnerabil. Detectia versiunilor ne ajuta sa obtinem aceste informatii.

Dupa ce porturile TCP si/sau UDP sunt descoperite folosind una dintre metodele de scanare, detectia versiunii interogheaza acele porturi pentru a determina mai multe despre ce se ruleaza la ele de fapt. Baza de date nmap-service-probescontine probe pentru interogarea diferitelor servicii si compara expresiile pentru a recunoaste si procesa raspunsurile. Nmap incearca sa determine protocolul serviciului (ex: ftp, ssh, telnet, http), numele aplicatiei (ex: ISC Bind, Apache httpd, Solaris telnetd), numarul versiunii, numele hostului, tipul masinii (ex: printer, router), familia de sisteme de operare (ex: Windows, Linux) si cateodata si alte informatii diverse cum ar fi daca exista un server X deschis la conexiuni. Daca Nmap a fost compilat cu suport OpenSSL, se va conecta la servere SSL pentru a deduce serviciile care asculta in spatele acelui nivel de criptare. Cand servicii RPC sunt descoperite, evaluatorul RPC din Nmap ( -sR) este automat folosit pentru a determina programul RPC si numarul versiunii. Unele porturi UDP sunt lasate in starea deschis|filtrat (open|filtered)dupa o scanare UDP care nu a putut determina daca porturile sunt deschise sau filtrate. Detectia versiunii va incerca sa smulga un raspuns de la aceste porturi (asa cum o face cu porturile deschise), si sa sa le schimbe starea in deschis daca reuseste. Porturile TCP deschis|filtrat (open|filtered)sunt tratate in aceeasi maniera. Notati ca optiunea -Aactiveaza detectia versiunii printre altele. Un document care explica aceste lucruri, utilizarea lor si rafinarea detectiei versiunii este disponibila la https://nmap.org/vscan/.

Cand Nmap primeste raspunsuri de la un serviciu dar nu gaseste ceva corespunzator in baza de date, afiseaza o amprenta si un URL pentru a o putea trimite daca stiti cu exactitate ce ruleaza la respectivul port. Va rog sa va rupeti cateva minute pentru a face acest lucru, astfel incat de descoperirea dumneavoastra sa poata beneficia toata lumea. Datorita amprentelor trimise de utilizatori, Nmap are aproximativ 3.000 de modele pentru 350 de protocoale cum ar fi smtp, ftp, http, etc.

Detectia versiunii este activata si controlata de urmatoarele optiuni:

-sV(Detectia versiunii)

Activeaza detectia versiunii, dupa cum s-a discutat anterior. Alternativ, puteti folosi -Apentru activarea detectiei versiunii si a sistemului de operare simultan.

--allports(Nu se exclude nici un port de la detectia versiunii)

Implicit, detectia versiunii din Nmap sare peste portul TCP 9100, deoarece unele imprimante imprima orice data trimisa la acel port, ducand la o multime de pagini pline de cererei HTTP, sesiuni SSL, etc. Acest comportament poate fi schimbat prin modificarea sau stergerea directivei Excludedin nmap-service-probes, sau prin specificarea --allportspentru scanarea tuturor porturilor in ciuda directivei Exclude.

--version-intensity <intensitate>(Seteaza intensitatea detectiei versiunii)

Cand realizam o detectie a versiunii ( -sV), nmap trimite o serie de probe, fiecare cu o valoare atasata, intre 1 si 9, care reprezinta raritatea. Probele cu numere mici sunt eficiente impotriva unei arii largi a serviciilor comune, in timp ce acelea cu numere mari sunt mai rar folosite. Nivelul de intensitate specifica ce probe trebuie aplicate. Cu cat mai mare este numarul, cu atat mai precisa este detectarea versiunii. Oricum, scanarea cu intensitate mare dureaza mai mult. Intensitatea trebuie sa fie intre 0 si 9. Implicit este 7. Cand o proba este gasita ca o legatura intre nmap-service-probes si numarul portului, atunci proba este incercata indiferent de nivelul de intensitate. Acest lucru asigura faptul ca probele DNS vor fi incercate pentru fiecare port 53 gasit deschis, probele SSL pentru portl 443, etc.

--version-light(Activeaza modul delicat)

Este o notare convenabila pentru --version-intensity 2. Acest mod delicat face scanarea versiunii mult mai rapida, dar si mai putin precisa in identificarea serviciilor.

--version-all(Incearca toate probele)

Un sinonim pentru --version-intensity 9, asigurandu-se ca toate probele vor fi incercate impotriva fiecarui port.

--version-trace(Urmareste activitatea scanarii vesiunii)

Acest lucru face ca Nmap sa afiseze informatii detaliate despre ce face detectarea versiunii. Este un subset al informatiilor obtinute cu --packet-trace.

-sR(Scanare RPC)

Aceasta metoda functioneaza in combinatie cu multimea de metode de scanare de porturi a Nmapului. Ia toate porturile TCP/UDP deschise si le inunda cu pachete de comanda SunRPC nule in incercarea de a determina daca sunt porturi RPC si, daca e asa, ce program si ce versiune servesc. Puteti obtine aceleasi informatii cu rpcinfo -pchiar daca portmapperul tintei se afla in spatele unui firewall (sau este protejat de TCP wrapper). Momelile nu functioneaza cu scanarea RPC. Este activat automat ca parte a scanarii versiunii ( -sV) daca solicitati asa ceva. Deoarece detectia versiunii include si rezultatele acestei scanari fiind mult mai larga in acoperire, -sReste rareori necesara.