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-services
de 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-probes
contine 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
-A
activeaza 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
-A
pentru 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
Exclude
dinnmap-service-probes
, sau prin specificarea--allports
pentru scanarea tuturor porturilor in ciuda directiveiExclude
.-
--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 intrenmap-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,-sR
este rareori necesara.