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
http://www.insecure.org/nmap/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.