table of contents
- NAME
- SYNOPSIS
- DESCRIERE
- TRADUCERE
- SUMARUL OPTIUNILOR
- SPECIFICAREA TINTELOR
- DESCOPERIREA HOSTURILOR
- BAZELE SCANARII DE PORTURI
- TEHNICI DE SCANARE DE PORTURI
- SPECIFICAREA PORTURILOR SI A ORDINII DE SCANARE
- DETECTIA SERVICIILOR SI A VERSIUNILOR
- DETECTIA SISTEMULUI DE OPERARE
- OPTIUNI DE TIMP SI PERFORMANTA
- PACALIREA FIREWALL/IDSURILOR SI ASCUNDEREA IDENTITATII
- AFISAREA REZULTATELOR
- OPTIUNI DIVERSE
- INTERACTIUNE IN TIMPUL RULARII
- EXEMPLE
- PROBLEME
- AUTOR
- ASPECTE LEGALE
- NOTES
NMAP(1) | [FIXME: manual] | NMAP(1) |
NAME¶
nmap - Instrument de explorare a retelei si scaner de securitate / porturiSYNOPSIS¶
nmap[Tip de scanare...][Optiuni]{specificarea tintei}
DESCRIERE¶
Nmap ( “Network Mapper”) este un instrument open source pentru explorarea retelei si audit de securitate A fost proiectat sa scaneze repede retele mari, cu toate ca functioneaza bine si la scanarea unui singur host. Nmap foloseste pachete IP in forma bruta intr-un mod inovator pentru a determina ce calculatoare sunt disponibile in retea, ce servicii (numele aplicatiei si versiunea) ofera acestea, ce sistem de operare (si versiune) ruleaza, ce tipuri de filtre de pachete/firewall sunt utilizate si o multime de alte caracteristici. Nmap este folosit in mod curent in procesul de audit al securitatii, dar este folosit si de administratorii de retea pentru rutinele de inventariere a retelei, managementul upgradeurilor si monitorizarea calculatoarelor sau a perioadelor de uptime pentru servicii. Rezultatul generat de Nmap este o lista de tinte scanate, cu informatii secventiale despre fiecare in functie de optiunile utilizate. O parte cheie a informatiilor furnizate este “tabela de porturi interesante”. Aceasta tabela contine numarul portului si protocolul, numele serviciului si starea. Starea poate fi open (deschis), filtered (filtrat), closed (inchis), sau unfiltered (nefiltrat). Deschis (open) inseamna ca aplicatia de pe masina tinta asculta la portul respectiv, asteptand conexiuni. Filtered (filtrat)inseamna ca un firewall, filtru sau alt obstacol in retea blocheaza respectivul port astfel incat Nmap nu poate spune daca este deschissau inchis. Porturile inchisenu au nici o aplicatie care sa astepte conexiuni, cu toate ca ele se pot deschide in orice moment. Porturile sunt clasificate ca nefiltratecand ele raspund la probele Nmap, dar Nmap nu poate determina daca sunt inchise sau deschise. Nmap raporteaza combinatia de stari open|filtered (deschis|filtrat)si closed|filtered (inchis|filtrat)cand nu poate determina care din cele doua stari este cea corecta. Tabela de porturi mai poate include versiuni ale softwareului cand detectia versiunii a fost solicitata. Cand un protocol de scanare IP este solicitat ( -sO), Nmap furnizeaza informatii despre protocoalele IP suportate in locul listei de porturi. In plus fata de lista de porturi interesante, Nmap poate furniza si alte informatii despre tinte, incluzand aici nume obtinute prin reverse DNS, poate ghici sistemul de operare, tipul hardwareului si adresele MAC. O scanare tipica cu Nmap este exemplificata in Example 1, “O scanare reprezentativa cu Nmap”. Singurele argumente folosite in aceste exemplu sunt -A, pentru a activa detectia versiunii si a sistemului de operare, -T4pentru executia mai rapida a scanarii, si apoi specificatiile pentru cele doua tinte. Example 1. O scanare reprezentativa cu Nmap# nmap -A -T4 scanme.nmap.org playground Starting nmap ( http://www.insecure.org/nmap/ ) Interesting ports on scanme.nmap.org (205.217.153.62): (The 1663 ports scanned but not shown below are in state: filtered) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) 53/tcp open domain 70/tcp closed gopher 80/tcp open http Apache httpd 2.0.52 ((Fedora)) 113/tcp closed auth Device type: general purpose Running: Linux 2.4.X|2.5.X|2.6.X OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 Uptime 33.908 days (since Thu Jul 21 03:38:03 2005) Interesting ports on playground.nmap.org (192.168.0.40): (The 1659 ports scanned but not shown below are in state: closed) PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 389/tcp open ldap? 445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds 1002/tcp open windows-icfw? 1025/tcp open msrpc Microsoft Windows RPC 1720/tcp open H.323/Q.931 CompTek AquaGateKeeper 5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900) 5900/tcp open vnc VNC (protocol 3.8) MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) Device type: general purpose Running: Microsoft Windows NT/2K/XP OS details: Microsoft Windows XP Pro RC1+ through final release Service Info: OSs: Windows, Windows XP Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds
TRADUCERE¶
Aceasta editie inlimba romana a Ghidului de referinta Nmap a fost tradus din versiunea 2991 a textului original aflat la original English version[1]de Dan Catalin Vasile hardware_cta@yahoo.com. Traducerea a fost facuta cu scopul de a asigura o intelegere mai buna a functionalitatilor Nmap intai pentru autor si mai apoi pentru toti vorbitorii nativi de limba romana. Autorul traducerii nu va poate garanta faptul ca traducerea este la fel de completa cu versiunea actualizata in limba engleza. Acest produs poate fi modificat si redistribuit in conditiile stipulate de Creative Commons Attribution License[2]. Autorul traducerii va invita de asemenea pe primul site dedicat profesionistilor in securitate informatica din Romania: ITSecure[3].SUMARUL OPTIUNILOR¶
Acest sumar al optiunilor este printat cand Nmap este rulat fara nici un argument si ultima versiune este disponibila la http://www.insecure.org/nmap/data/nmap.usage.txt. Ajuta oamenii sa isi aduca aminte de cele mai comune optiuni, dar nu reprezinta un substitut pentru documentatia in profunzime din restul acestui manual. Unele optiuni obscure nici nu sunt incluse aici.Usage: nmap [Scan Type(s)] [Options] {target specification} TARGET SPECIFICATION: Can pass hostnames, IP addresses, networks, etc. Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 -iL <inputfilename>: Input from list of hosts/networks -iR <num hosts>: Choose random targets --exclude <host1[,host2][,host3],...>: Exclude hosts/networks --excludefile <exclude_file>: Exclude list from file HOST DISCOVERY: -sL: List Scan - simply list targets to scan -sP: Ping Scan - go no further than determining if host is online -P0: Treat all hosts as online -- skip host discovery -PS/PA/PU [portlist]: TCP SYN/ACK or UDP discovery to given ports -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes -n/-R: Never do DNS resolution/Always resolve [default: sometimes] SCAN TECHNIQUES: -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans -sN/sF/sX: TCP Null, FIN, and Xmas scans --scanflags <flags>: Customize TCP scan flags -sI <zombie host[:probeport]>: Idlescan -sO: IP protocol scan -b <ftp relay host>: FTP bounce scan PORT SPECIFICATION AND SCAN ORDER: -p <port ranges>: Only scan specified ports Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080 -F: Fast - Scan only the ports listed in the nmap-services file) -r: Scan ports consecutively - don't randomize SERVICE/VERSION DETECTION: -sV: Probe open ports to determine service/version info --version-light: Limit to most likely probes for faster identification --version-all: Try every single probe for version detection --version-trace: Show detailed version scan activity (for debugging) OS DETECTION: -O: Enable OS detection --osscan-limit: Limit OS detection to promising targets --osscan-guess: Guess OS more aggressively TIMING AND PERFORMANCE: -T[0-5]: Set timing template (higher is faster) --min-hostgroup/max-hostgroup <msec>: Parallel host scan group sizes --min-parallelism/max-parallelism <msec>: Probe parallelization --min_rtt_timeout/max-rtt-timeout/initial-rtt-timeout <msec>: Specifies probe round trip time. --host-timeout <msec>: Give up on target after this long --scan-delay/--max_scan-delay <msec>: Adjust delay between probes FIREWALL/IDS EVASION AND SPOOFING: -f; --mtu <val>: fragment packets (optionally w/given MTU) -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys -S <IP_Address>: Spoof source address -e <iface>: Use specified interface -g/--source-port <portnum>: Use given port number --data-length <num>: Append random data to sent packets --ttl <val>: Set IP time-to-live field --spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address OUTPUT: -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3, and Grepable format, respectively, to the given filename. -oA <basename>: Output in the three major formats at once -v: Increase verbosity level (use twice for more effect) -d[level]: Set or increase debugging level (Up to 9 is meaningful) --packet-trace: Show all packets sent and received --iflist: Print host interfaces and routes (for debugging) --append-output: Append to rather than clobber specified output files --resume <filename>: Resume an aborted scan --stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML --webxml: Reference stylesheet from Insecure.Org for more portable XML --no_stylesheet: Prevent associating of XSL stylesheet w/XML output MISC: -6: Enable IPv6 scanning -A: Enables OS detection and Version detection --datadir <dirname>: Specify custom Nmap data file location --send-eth/--send-ip: Send using raw ethernet frames or IP packets --privileged: Assume that the user is fully privileged -V: Print version number -h: Print this help summary page. EXAMPLES: nmap -v -A scanme.nmap.org nmap -v -sP 192.168.0.0/16 10.0.0.0/8 nmap -v -iR 10000 -P0 -p 80
SPECIFICAREA TINTELOR¶
Tot ceea ce in lina de comanda a Nmap nu este optiune (sau argument al unei optiuni) este tratat ca specificare a unei tinte. Cel mai simplu caz este specificarea adresei IP sau a numelui calculatorului ce urmeaza a fi scanat. Cateodata se doreste scanarea unei intregi retele pentru calculatoare adiacente. Pentru asta, Nmap suporta stilul de adresare CIDR. Se poate adauga / numarul de bitila o adresa IP sau nume si Nmap va scana toate adresele IP pentru care primii bitisunt aceeasi cu IP sau numele de referinta. De exemplu, 192.168.10.0/24 va scana cele 256 de calculatoare intre 192.168.10.0 (binar: 11000000 10101000 00001010 00000000) si 192.168.10.255 (binar: 11000000 10101000 00001010 11111111), inclusiv. 192.168.10.40/24 va realiza exact acelasi lucru. Dat fiind numele scanme.nmap.org cu adresa IP 205.217.153.62, specificatia scanme.nmap.org/16 va scana cele 65.536 adrese IP intre 205.217.0.0 si 205.217.255.255. Cea mai mica valoare permisa este /1, care va scana jumatate de Internet. Cea mai mare este 32, care va scana doar calculatorul specificat prin nume sau IP deoarece toti bitii sunt fixati. Natatia CIDR este scurta dar nu intotdeauna suficient de flexibila. De exemplu, puteti dori scanarea 192.168.0.0/16 dar fara adresele care se termina in .0 sau .255, deoarece ele sunt in general adrese de broadcast. Nmap suporta acest lucru prin adresarea unei anumite limite pentru fiecare octet in parte. In locul specificarii adresei IP normale, puteti specifica o lista de numere separate prin virgula sau un domeniu pentru fiecare octet. De exemplu, 192.168.0-255.1-254 va sari toate adresele din acest domeniu care se termina in .0 si .255. Domeniile nu se limiteaza la ultimii octeti: specificatorul 0-255.0-255.13.37 va scana Internetul dupa toate IPurile care se termina in .13.37. Acest tip de scanare poate fi folositor pentru inspectarea si cercetarea Internetului. Adresele IPv6 pot fi specificate doar prin adresa completa sau nume. CIDR si domeniile pe octeti nu sunt suportate pentru IPv6 deoarece sunt rareori folositoare. Nmap accepta specificarea mai multor adrese in linia de comanda si nici nu este necesar ca ele sa fie de acelasi tip. Comnda nmapscanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.0-255realizeaza exact ceea ce asteptati. Desi tintele sunt specificate in mod uzual in linia de comanda, exista si urmatoarele optiuni pentru selectia tintelor -iL <fisierdeintrare>(Preluare dintr-un fisier)Citeste specificarile tintelor din
fisierdeintrare. Preluarea unei liste mari de calculatoare este un
lucru greu de facut din linia de comanda, desi acest lucru este de preferat.
De exemplu, serverul DHCP poate exporta o lista de 10.000 de IP pe care le-a
atribuit si pe care noi dorim sa le scanam. Sau poate dorim sa scanam toate
adresele cu exceptiacelor generate de DHCP pentru a monitoriza adresele
statice neautorizate. Generati lista de IPuri si plasati numele fisierului ca
argument al optiunii -iLIntrarile din fisier pot fi in orice format
acceptat de Nmap in linia d ecomanda (adrese IP, nume, CIDR, IPv6 sau domenii
pe octeti). Fiecare intrare trebuie separata prin unul sau mai multe spatii
libere sau prin linie noua. Puteti specifica caracterul -ca nume de fisier
daca vreti ca Nmap sa citeasca de la intrarea standard in locul unui
fisier.
-iR <numar de tinte>(Alegere de tinte aleatoare)
Pentru sondaje asupra Internetului sau alte cercetari,
puteti alege tinte aleator. Numarul de tintecomunica Nmapului cate
tinte aleatoare sa genereze. Adrese nedorite cum ar fi IPurile private, cele
de multicast sau cele nealocate sunt sarite in mod automat la generarea
listei. Argumentul 0poate specifica o scanare fara sfarsit. Tineti minte ca
unii administratori de retea sunt deranjati de scanarile neautorizate asupra
retelei lor si pot depune plangeri. Folositi aceasta optiune asumandu-va
riscurile! Daca sunteti cu adevarat plictisit intr-o dupa-amiaza ploioasa
incercati comanda nmap -sS -PS80 -iR 0 -p 80pentru a localiza aleator
servere care gazduiesc pagini web si incepeti sa faceti brosing.
--exclude<host1[,host2][,host3],...>(Se exclud de la scanare
calculatoarele/retelele specificate ca argument)
Specifica o lista separata prin virgula de tinte excluse
de la scanare chiar daca ele se afla in domeniul specificat. Lista foloseste
sintaxa normala a Nmap, asa ca poate include nume, specificatori CIDR, domenii
pe octeti, etc. Aceasta optiune poate fi folositoare cand reteaua pe care
dorim sa o scanam include servere ce ruleaza aplicatii critice, sisteme care
reactioneaza la scanari sau subretele administrate de alte persoane.
--excludefile <fisier_de_excludere>(Lista de excludere dintr-un
fisier)
Aceasta ofera aceeasi functionalitate ca si optiunea
--exclude, cu exceptia ca ca tintele excluse sunt furnizate intr-un
format delimitat prin linie noua, spatiu sau tab din
fisierul_de_excluderein loc sa fie furnizate din linia de
comanda.
DESCOPERIREA HOSTURILOR¶
Nota: Vom imprumuta din limba engleza termenul de host. Acesta se refera la orice element din retea care comunica sau poate comunica. Aceste elemente pot fi statii de lucru, servere, routere, imprimante de retea, etc. Unul din primii pasi ai descoperirii elementelor din retea este reducerea numarului (adesea urias) de IP intr-o lista de hosturi active sau interesante. Scanarea fiecarui port de pe fiecare IP este un proces lent si de obicei inutil. Desigur, ce transforma un host intr-unul interesant depinde in mare parte de scopul scanarii. Administratorii de retea ar putea fi interesati doar de calculatoarele ce ruleaza anumite servicii, in timp ce auditorii de securitate pot fi interesati de toate elementele ce poseda o adresa IP. Unui administrator ii poate fi suficient un simplu pachet ping ICMP pentru localizarea calculatoarelor din reteaua interna, in timp ce un auditor extern poate folosi o multitudine de probe in incercarea de a scapa de restrictiile firewallului. Deoarece necesitatile in vederea descoperirii hosturilor sunt atat de diverse , Nmap ofera o varietate mare de optiuni de personalizare a tehnicilor folosite. Descoperirea hosturilor este adesea numita scanare ping, dar trece cu mult de simplul stadiu al pachetelor ICMP care solicita un raspuns asociate omniprezentului instrument pingUtilizatorii pot sari de pasul care implica pingul cu o scanare de tip lista ( -sL) sau dezactivand pingul ( -P0), sau angrenand alte combinatii arbitrare de probe multiport TCP SYN/ACK, UDP si ICMP. Scopul acestor probe este sa solicite raspunsuri care sa demonstreze daca o adresa IP este cu adevarat activa (este folosita de un dispozitiv din retea). In multe retele, doar un mic procentaj de adrese IP sunt active la un moment dat. Acest lucru este in mod special adevarat intr-un spatiu de adrese rezervat conform binecuvantatului RFC1918 cum ar fi 10.0.0.0/8. Aceasta retea are 16 milioane de IPuri, dar am vazut ca sunt folosite de companii cu mai putin de o mie de calculatoare. Descoperirea hosturilor poate gasi acele masini risipite in marea de adrese IP. Daca nu sunt furnizate optiuni de descoperire a hosturilor, Nmap trimite un pachet TCP ACK destinat portului 80 si un pachet de interogare ICMP cu solicitare de raspuns la fiecare masina tinta. O exceptie la acestea este ca scanarea ARP este folosita pentru orice tinta dintr-o retea locala. Pentru utilizatori neprivilegiati cu conturi shell pe sisteme UNIX, sunt trimise pachete SYN in locul celor ack folosind apelul de sistem connect(). Aceste optiuni implicite sunt echivalente cu -PA -PE. Descoperirea hosturilor este de obicei suficienta pentru scanarea retelelor locale, dar un set mult mai cuprinzator de probe pentru descoperire este recomandat in auditul de securitate. Optiunea -P*(care selecteaza tipul pingului) poate fi combinata. Puteti mari sansele de penetrare a unor firewalluri stricte trimitand mai multe probe folosind diferite porturi/flaguri (indicatori din pachetele) TCP si coduri ICMP. Notati de asemenea ca descoperirea ARP ( -PR) este executata implicit impotriva tintelor dintr-o retea locala chiar daca specificati alta optiune -P*, deoarece este aproape intotdeauna mai rapida si mai eficienta. Urmatoarele optiuni controleaza descoperirea hosturilor. -sL(Scanarea de tip lista)Scanarea de tip lista este o forma degenerata de
descoperire a hosturilor care listeaza fiecare host al retelei specificate,
fara a trimite nici un pachet tintelor. In mod implicit, Nmap realizeaza
totusi o rezolutie inversa DNS pentru a afla si numele tintelor. Adesea este
surprinzator cate informatii utile ne pot oferi simplele nume ale hosturilor.
De exemplu, fw.chi.playboy.comeste firewallul biroului din Chicago al Playboy
Enterprises. Nmap raporteaza numarul total de adrese IP la sfarsit. Scanarea
de tip lista este o buna verificare a faptului ca aveti adresele IP corecte
pentru tinte. Daca hosturile au nume pe care nu le recunoasteti, este bine sa
investigati in profunzime pentru a nu scana reteaua unei alte companii.
Din moment ce ideea este de afisa o lista cu tinte, optiunile pentru un nivel
mai inalt de functionalitate cum ar fi scanare de porturi, detectia sistemului
de operare sau scanarea ping nu pot fi combinate cu aceasta. Daca doriti
dezactivarea scanarea ping si in acelasi timp sa executati tehnicile
corespunzatoare nivelului inalt de functionalitate, cititi paragraful destinat
optiunii -P0.
-sP(Scanare ping)
Aceasta optiune spune Nmapului sa realizeze numaio
scanare ping (descoperirea hosturilor) si apoi sa afiseze hosturile
disponibile care raspund la scanare. Nici un alt fel de test (cum ar fi
scanarea de porturi sau detectia sistemului de operare) nu va fi realizat.
Acest pas este mai intruziv decat scanarea de tip lista si poate fi folosita
adesea in acelasi scop. Permite o descoperire a tintelor din retea fara a
atrage prea mult atentia. Cunoscand cate hosturi sunt active este o informatie
mult mai valoroasa unui atacator decat simpla lista furizata de scanarea de
tip lista a fiecarei adrese IP si a numelor hosturilor.
Administratorii de sistem gasesc adesea aceasta optiune pretioasa ca atare.
Poate fi usor utilizat pentru numararea masinilor disponibile intr-o retea sau
pentru monitorizarea disponibilitatii serverelor. Adesea este denumita
maturare ping si este mai de incredere decat pingul asupra adresei de
broadcast deoarece multe hosturi nu raspund la solicitarile de broadcast.
Optiunea -sPtrimite un pachet ICMP cu solicitare de raspuns si un pachet
TCP la portul 80 in mod implicit. Cand se executa de catre un utilizator
neprivilegiat, un pachet SYN este trimis (folosin apelul connect()) la
portul 80 al tintei. Cand un utilizator privilegiat incearca sa scaneze tinte
dintr-o retea locala, solicitari ARP ( -PR) sunt utilizate, doar daca
--send-ip(adresa IP de expediere) a fost specificat. Optiunea
-sPpoate fi combinata cu oricare dintre tipurile de probe de
descoperire (optiunile -P*, exluzand -P0) pentru o mai mare
flexibilitate. Daca oricare dintre tipurile de probe si optiuni de porturi
sunt utilizate, se renunta la probele implicite (ACK si ICMP cu solicitare de
raspuns). Cand firewalluri stricte sunt plasate intre calculatorul sursa care
ruleaza Nmap si reteaua tinta, folosirea acelor tehnici avansate este
recomandata. Altfel, hosturi pot ramane nedescoperite cand firewallul executa
comanda drop (pur si simplu ignora pachetele) la probe sau la
raspunsuri.
-P0(Fara ping)
Aceasta optiune sare complet peste faza de descoperire.
In mod normal, Nmap foloseste aceasta faza pentru a determina masinile active
pentru scanarea avansata. Implicit, Nmap realizeaza scanarea avansata cum ar
fi scanarea de porturi, detectia versiunii si a sistemului de operare doar
pentru hosturile gasite active. Dezactivarea descoperirii hosturilor cu
-P0face ca Nmap sa incerce tehnicile avansate de scanare pentru
fiecareadresa IP specificata ca tinta. Asadar, daca spatiul unei clase
B (/16) este specificata in linia de comanda, toate cele 65,536 de IP vor fi
scanate cu tehnicile avansate. Cel de-al doilea caracter din optiunea
-P0este un zero si nu litera O. Descoperirea obisnuita a hosturilor
este sarita execucandu-se o scanare de tip lista, dar in loc sa se opreasca si
sa afiseze lista de tinte, Nmap continua sa realizeze cererile din linia de
comanda ca si cum fiecare adresa IP ar fi activa.
-PS [listadeporturi](Ping TCP SYN)
Aceasta optiune trimite un pachet TCP gol cu flagul SYN
setat. Portul de destinatie implicit este 80 (configurabil la compilare prin
schimbarea DEFAULT_TCP_PROBE_PORT in nmap.h), dar un alt port poate fi
specificat ca parametru. Chiar o lista separata prin virgula de porturi poate
fi specificata (de exemplu -PS22,23,25,80,113,1050,35000),caz in care
probele vor fi trimise la fiecare port in paralel.
Flagul SYN sugereaza tintei ca dorim sa stabilim o conexiune. In mod normal
portul destinatie va fi inchis si un pachet RST (de resetare) este trimis
inapoi. Daca se intampla ca portul sa fie deschis, tinta va face cel de-al
doilea pas dintr-un 3-way-handshake (stabilirea unei conexiuni in trei pasi)
raspunzand cu un pachet TCP SYN/ACK. Masina care ruleaza nmap va inchide apoi
conexiunea raspunzand cu un pachet RST in loc sa trimita pachetul ACK care ar
completa 3-way-handshakeul si ar stabili o conexiune completa. Pachetul RST
este trimis de kernelul sistemului de operare al masinii care ruleaza Nmap ca
raspuns la pachetul SYN/ACK neasteptat, si nu de catre Nmap ca atare.
Nmapului nu ii pasa daca portul este deschis sau inchis. Fie ca este RST sau
SYN/ACK dupa cum s-a vazut anterior, raspunsul anunta Nmapul ca hostul este
activ si raspunde la probe
Pe masinile UNIX, numai utilizatorii privilegiati rootsunt capabili sa trimita
si sa primeasca pachete TCP in forma bruta. Pentru utilizatorii
neprivilegiati, un ocolis este automat pus in functiune si implica apelul de
sistem connect() initiat impotriva fiecarui port tinta. Acesta are ca efect
trimiterea unui pachet SYN catre tinta, intr-o incercare de a stabili
conexiunea. Daca connect() returneaza o valoare care indica succesul
operatiunii sau un raspuns ECONNREFUSED (conexiune refuzata), inseamna ca
nivelele inferioare ale stivei TCP au primit un SYN/ACK sau RST iar hostul
este marcat ca fiind disponibil. Daca tentativa de conexiune este lasata sa
astepte un timp mai mare decat timeoutul (timpul maxim in care se asteapta un
raspuns), hostul este marcat ca indisponibil. Acest ocolis este utilizat si
pentru conexiunile IPv6, deoarece constructia pachetelor brute IPv6 nu este
inca suportata de Nmap.
-PA [lista_de_porturi](Ping TCP ACK)
Pingul TCP ACK este similar cu proaspat discutatul ping
SYN. Diferenta, dupa cum probabil ati ghicit, este ca flagul TCP ACK este
setat in locul celui SYN. Un astfel de pachet ACK pretinde ca transporta date
in cadrul unei conexiuni ACK deja stabilite, dar nu exista nici o astfel de
conexiune. Asadar tintele trebuie sa raspunda intotdeauna cu un pachet RST,
dezvaluindu-si existenta in cadrul acestui proces.
Optiunea -PAfoloseste acelasi port implicit ca probele SYN si de asemenea
poate prelua o lista de porturi destinatie in acelasi format. Daca un
utilizator neprivilegiat incearca aceasta optiune, sau o tinta IPv6 este
specificata, ocolisul connect() discutat anterior este utilizat. Acest ocolis
este imperfect deoarece connect() trimite de fapt un pachet SYN in locul unuia
ACK.
Motivul oferirii ambelor probe de ping SYN si ACK este de a maximiza sansele de
trecere printr-un firewall. Multi administratori configureaza routerele si
alte firewalluri simple pentru a bloca pachetele SYN cu exceptia acelora
destinate serviciilor publice cum ar fi serverul web sau serverul de mail al
companiei. Acest lucru previne realizarea altor conexiuni catre reteaua
organizatiei, in timp ce permite utilizatorilor sa realizeze neobstructionati
conexiuni catre Internet. Aceasta abordare non-statefull sau stateless (nu se
analizeaza ACK) utilizeaza putine resurse ale firewallului sau routerului si
este suportata intr-un procent mare de filtrele hardware sau software.
Firewallul software din Linux Netfilter/iptables ofera o optiune convenabila
--synpentru implementarea acestei abordari stateless. Cand firewalluri
stateless ca acestea sunt in functiune, probele ping SYN ( -PS) vor fi
mai mult ca sigur blocate in drumul lor catre porturi tinta inchise. In aceste
cazuri, probele ACK stralucesc deoarece trec cu usurinta de aceste reguli.
Alt tip comun de firewalluri folosesc reguli statefull care ignora pachetele ce
nu sunt asteptate. Aceasta optiune a fost initial gasita doar in firewallurile
high-end, dar a devenit mult mai comuna de-a lungul timpului. In linux,
sistemul Netfilter/iptables suporta aceasta abordare prin optiunea
--state, care catalogheaza pachetele in functie de starea conexiunii. O
proba SYN este mai probabil sa functioneze impotriva unui astfel de sistem din
moment ce pachetele neasteptate sunt in general recunoscute ca fiind simulate
si ignorate. O solutie la aceasta dilema este trimiterea ambelor probe, SYN si
ACK, specificand -PSsi -PA.
-PU [lista_de_porturi](Ping UDP)
Alta optiune de descoperire a hosturilor este pingul UDP,
care trimite un pachet gol (doar daca optiunea --data-lengthnu este
specificata) UDP la portul specificat. Lista de porturi are acelasi format cu
cel discutat anterior la optiunile -PSsi -PA. daca nici un port
nu este specificat, implicit este utilizat 31338. Aceasta valoare implicita
poate fi configurata la compilare schimband DEFAULT_PROBE_PORT in nmap.h. Un
port necomun este folosit implicit deoarece trimiterea unui pachet la un port
deschis nu este de dorit pentru acest tip de scanare.
Dupa trimiterea probei catre un port inchis al tintei, proba UDP trebuie sa
obtina un pachet ICMP de port indisponibil. Acest lucru semnalizeaza Nmapul ca
masina este activa si disponibila. Multe alte tipuri de erori ICMP, cum ar fi
cele de host/retea ce nu pot fi contactate sau TTL (time to live = timp de
viata; timpul maxim admis pentru asteptarea raspunsului) depasit sunt
indicatori al unui host inactiv sau care nu poate fi contactat. Lipsa unui
raspuns este interpretata la fel. Daca un port deschis este nimerit de
pachetul de proba, multe servicii vor ignora pachetul si nu vor returna nici
un raspuns. De aceea portul de proba este 31338, care are o probabilitate mare
sa nu fie utilizat. Cateva servicii vor raspunde totusi la un pachet UDP gol,
dezvaluind in acest fel Nmapului faptul ca masina este disponibila.
Principalul avantaj al acestui tip de scanare este ca poate trece de
firewallurile si filtrele care monitorizeaza doar traficul TCP. De exemplu, am
avut o data un router wireless Linksys BEFW11S4. Interfata externa a acestui
dispozitiv filtra in mod implicit toate porturile TCP, dar probele UDP puteau
totusi sa obtina mesajele de port indisponibil si in felul acesta sa arate
starea hostului.
-PE; -PP; -PM(Tipuri de ping ICMP)
Pe langa tipurile de descoperire TCP si UDP uzuale
discutate anterior, Nmap poate trimite pachete standard prin intermediul
omniprezentului ping. Nmap un pachet ICMP de tipul 8 (solicitare de raspuns)
catre adresa IP tinta, asteptand un pachet de tip 0 (raspuns) in schimb de la
hosturile disponibile. Din pacate pentru exploratorii de retele, in zilele
noastre multe hosturi si firewalluri blocheaza aceste pachete, in loc sa
raspunda in conformitate cu RFC1122[4]. Din acest motiv scanarile ICMP
simple sau rareori de incredere impotriva unor tinte necunoscute din Internet.
Dar pentru administratorii de sistem care monitorizeaza o retea interna, ea
poate fi o abordare practica si eficienta. Folositi optiunea -PEpentru
a activa acest comportament de solicitare a raspunsului.
Cu toate ca cererile de raspuns ICMP sunt standard, Nmap nu se opreste aici.
Standardul ICMP ( RFC792[5]) specifica de asemenea solicitarea
amprentei de timp, a informatiilor si a mastii de retea corespunzatoare
codurilor 13,15 si 17. Aceste solicitari au ca scop aflarea de informatii
precum amprenta de timp sau masca de retea dar pot fi usor folosite si la
descoperirea hosturilor. Un sistem care raspunde este disponibil. Nmap nu
implementeaza inca solicitarea de informatii (15) deoarece acestea nu
beneficiaza de o implementare la nivel larg. RFC 1122 insista ca “un
host NU TREBUIE sa implmenteze aceste mesaje”. Solicitarile de amprenta
de timp si masca de retea pot fi trimise cu ajutorul optiunilor -PP,
respectiv -PM. Un raspuns amprenta de timp (ICMP cod 14) sau un raspuns
masca de retea (cod 18) dezvaluie un host disponibil. Aceste doua interogari
pot fi de folos cand administratorul de retea blocheaza pingul ICMP standard
uitand faptul ca si celelalte solicitari ICMP pot fi folosite in acelasi
scop.
-PR(Ping ARP)
Unul dintre cele mai comune scenarii de utilizare ale
Nmapului o reprezinta scanarea unei intregi retele locale (LAN). In multe
LANuri, in special in cele care folosesc spatiul privat de adrese specificat
in RFC1918, mare majoritate a adreselor IP nu sunt utilizate la un moment dat.
Cand Nmap incearca sa trimita un pachet ICMP solicitand un raspuns, sistemul
de operare trebuie sa determine adresa de destinatie hardware (ARP)
corespunzatoare adresei tinta IP astfel incat sa poata adresa in mod corect
frameul ethernet. Este adesea un proces lent, din moment ce sistemele de
operare nu au fost proiectate sa realizeze milioane de solicitari ARP catre
hosturi indisponibile intr-o peioada foarte scurta de timp.
Scanarea ARP pune Nmapul si algoritmii lui optimizati in functiune pentru a
realiza solicitarile ARP. Si daca primeste un raspuns, Nmap nici nu mai ia in
in considerare pingurile bazate pe IP din moment ce stie deja ca hostul este
activ. Acest lucru face scanarea ARP mult mai rapida si mai corecta decat
scanarile bazate pe IP. Asadar este realizata implicit cand Nmapul detecteaza
faptul ca adresele scanate fac parte dintr-un LAN. Chiar daca tipuri diferite
de ping (cum ar fi optiunea -PEsau -PS) sunt specificate, Nmap
foloseste ARP in locul lor pentru orice adresa din acelasi LAN cu masina care
ruleaza Nmap. Daca sunteti sigur ca nu doriti scanare ARP, specificati
--send-ip.
-n(Nu se realizeaza rezolutia DNS)
Transmite Nmapului ca niciodatasa nu realizeze
rezolutia inversa DNS pentru IPurile active gasite. Din moment ce DNS este
adesea lent, aceasta optiune poate mari viteza de scanare.
-R(Rezolutie DNS pentru toate tintele)
Transmite Nmapului ca intotdeaunasa realizeze
rezolutia DNS pentru IPurile tinta. In mod normal acest lucru este realizat
cand o masina este gasita activa.
--system_dns(Foloseste DNSul sistemului de operare)
Implicit, Nmap rezolva adresele IP prin trimiterea de
cereri la DNSurile configurate pe sistem si asteapta apoi raspunsuri. Multe
solicitari (adesea foarte multe) sunt realizate in paralel pentru o
performanta crescuta. Specificati aceasta optiune daca doriti sa folositi
DNSul sistemului de operare (cate un IP o data prin intermediul apelului
getnameinfo()). Aceasta optiune este lenta si rareori folositoare. O putei
folosi in cazul in care exista o problema in codul DNS al Nmapului – va
rugam sa ne contactati in acest caz. DNSul sistemului este intotdeauna folosit
pentru scanarile IPv6.
BAZELE SCANARII DE PORTURI¶
Cu toate ca functiile Nmap au crescut ca numar in timp, el a inceput ca un scaner de porturi eficient si acesasta ramane fuctia lui de baza. Simpla comanda nmap tintascaneaza mai mult de 1660 de porturi TCP ale tintei. In timp ce multe scanere de porturi traditionale catalogheaza porturile in deschise si inchise, Nmap este mult mai avansat. El imparte porturile in sase stari: open (deschis), closed (inchis), filtered (filtrat), unfiltered (nefiltrat), open|filtered (deschis|filtrat), or closed|filtered (inchis|filtrat). Aceste stari nu sunt proprietati intrinsece ale porturilor, dar descriu modul in care sunt vazute de Nmap. De exemplu, o scanare Nmap din aceeasi retea ca si tinta poate arata portul tcp 135 ca deschis, in timp ce o scanare realizata simultan din Internet cu aceleasi optiuni poate arata portul ca filtered (filtrat). Cele sase stari ale porturilor recunoscute de Nmap open (deschis)O aplicatie accepta in mod activ conexiuni TCP sau
pachete UDP la respectivul port. Gasirea acestora este adesea scopul principal
al scanarii de porturi. Oamenii preocupati de securitate stiu ca fiecare port
deschis reprezinta o cale de acces pentru un atac. Atacatorii si pen-testerii
doresc exploatarea porturilor deschise, in timp ce administratorii incearca sa
le inchida sau sa le protejeze prin firewalluri fara a incurca planurile
utilizatorilor legitimi. Porturile deschise sunt interesante si pentru
scanarile ce nu urmaresc stabilirea securitatii deoarece ele arata serviciile
disponibile pentru retea de la respectivul host.
closed (inchis)
Un port inchis este accesibil (primeste si raspunde la un
pachet de proba trimis de Nmap), dar nu exista nici o aplicatie care sa
asculte la el. Pot fi folositoare in dezvaluirea starii hostului sau ca parte
a detectiei sistemului de operare. Deoarece cu porturile inchise se pote
comunica, ele merita scanate si mai tarziu in caz ca vreunul dintre ele se
deschide. Administratorii pot lua in considerare blocarea unor astfel de
porturi cu ajutorul unui firewall. Astfel ele vor aparea avand starea filtrat,
discutata mai departe
filtered (filtrat)
Nmap nu poate determina daca portul este deschis datorita
unui filtru de pachete care impiedica pachetele sa ajunga la portul
destinatie. Filtrarea poate proveni de la un firewall dedicat, din regulile
unui router sau dintr-un firewall software al tintei. Aceste porturi
frustreaza atacatorii deoarece furnizeaza foarte putine informatii. Uneori
raspund cu un mesaj de eroare ICMP cum ar fi tipul 3 codul 13 (destinatie care
nu a putu fi atinsa: comunicatia interzisa administrativ), dar filtrele care
executa operatia drop (ignora pachetul) fara sa raspunda sunt mult mai comune.
Acest lucru forteaza Nmap sa retrimita de cateva ori probele pentru cazul in
care pachetul s-a pierdut din cauza congestionarii retelei si nu din cauza
filtrarii. Acest lucru incetineste viteza de scanare dramatic.
unfiltered (nefiltrat)
Starea nefiltrata inseamna ca portul este accesibil, dar
Nmap nu poate determina daca portul este inchis sau deschis. Numai scanarea
ACK, folosita pentru maparea regulilor din firewall, clasifica portul in
aceasta stare. Scanarea porturilor nefiltrate cu alte tipuri de optiuni cum ar
fi scanarea Window(fereastra), scanarea SYN sau scanarea FIN poate stabili
daca portul este deschis.
open|filtered (deschis|filtrat)
Nmap plaseaza porturi in aceasta categorie cand nu poate
determina daca portul este deschis sau filtrat. Acestea apar pentru tipurile
de scanari in care porturile deschise nu ofera nici un raspuns. Lipsa
raspunsului poate sa mai insemne si ca un filtru de pachete a ignorat pachetul
de proba sau orice raspuns aferent. Asadar Nmap nu poate stii sigur daca
portul este deschis sau filtrat. Scanarile UDP, IP, FIN, Null sau Xmas
clasifica porturile in aceasta stare.
closed|filtered (inchis|filtrat)
Aceasta stare este folosita cand Nmap este in
imposibilitatea de a determina daca portul este inchis sau filtrat. Este
folosit doar de scanarea IPID Idle.
TEHNICI DE SCANARE DE PORTURI¶
Ca un incepator care incearca sa repare un motor, ma pot stradui ore intregi sa gasesc ustensile rudimentare (ciocan, banda adeziva, etc.) potrivite pentru operatia propusa. Cand esuez lamentabil si imi las rabla pe mana unui mecanic adevarat, invariabil el gaseste in marea de unelte ustensila potrivita care face treaba sa para una fara efort. Arta scanarii de porturi este similara. Expertii inteleg multitudinea de tehnici de scanare si o aleg pe cea potrivita (sau combinatia potrivita) pentru o anumita misiune. Pe de alta parte, utilizatorii neexperimentati si script kiddies incearca sa rezolve problema prin scanarea SYN implicita. Din moment ce Nmap este gratuit, singura bariera in arta scanarii de porturi o reprezinta cunostintele. Acest fapt bate lucrurile din viata reala, unde cu multa pricepere poti determina ca ai nevoie de un arc nou pentru compresor, dar totusi esti nevoit sa platesti si bani buni pe el. Multe dintre tipurile de scanare sunt disponibile doar utilizatorilor privilegiati. Aceasta datorita faptului ca trimit si primesc pachete brute, care necesita acces root pe sistemele UNIX. Folosirea unui cont de administrator sub Windows este recomandata, cu toate ca Nmap functioneaza cateodata si pentru utilizatorii neprivilegiati pe platformele pe care WinPcap a fost deja incarcat de sistemul de operare. Necesitatea privilegiilor root au reprezentat o problema serioasa la lansarea Nmapului in 1997, deoarece multi utilizatori beneficiau doar de conturi limitate. Acum lumea e diferita. Calculatoarele sunt ieftine, multi oameni au acces direct si permanent la Internet iar sistemele UNIX (incluzand Linux si MAC OS X) sunt raspandite. O versiune de Windows a Nmap este acum disponibila, permitand rularea acestuia pe si mai multe calculatoare. Oricare ar fi motivul, utilizatorii au o nevoie mai mica de a rula Nmap de pe conturi limitate. Acesta este un lucru bun, deoarece optiunile privilegiate sunt mult mai puternice si mai flexibile. Chiar daca Nmap incearca sa produca cele mai precise rezultate, tineti minte intotdeauna ca el se bazeaza pe pachetele returnate de masina tinta (sau firewallul din fata lui). Asemenea hosturi pot sa nu fie de incredere iar raspunsurile trimise pot fi menite sa incurce sau sa duca pe o pista gresita Nmapul. Comune sunt hosturile neconcordante cu standardele RFC care nu raspund cum ar trebui probelor Nmap. Scanarile Fin, Null si Xmas sunt in mod particular susceptibile de asa ceva. Astfele de probleme sunt specifice anumitor tipuri de scanari si sunt discutate individual la fiecare tip de scanare in parte. Aceasta sectiune documenteaza multitudinea de tehnici de scanare de porturi suportate de Nmap. O singura metoda poate fi folosita la o scanare (nu pot fi combinate mai multe tipuri), cu exceptia scanarii UDP ( -sU) care poate fi combinata cu unul din tipurile de scanare TCP. Cu un ajutor la memorare, tipurile de scanare de porturi sunt de forma -s C, unde Ceste caracterul principal al numelui scanarii, in general primul. Singura exceptie o reprezinta scanarea sarita FTP (metoda depasita moral) ( -b). Implicit, Nmap executa o scanare SYN, cu toate ca o poate inlocui cu una Connect() daca utilizatorul nu are privilegii pentru a trimite pachete brute (acces root pe sisteme UNIX) sau daca tinte IPv6 au fost specificate. Dintre scanarile mentionate in aceasta sectiune, utilizatorii neprivilegiati le pot executa doar pe cele de tipul connect() si ftp sarit. -sS(Scanare TCP SYN)Scanarea SYN este implicita si cea mai populara metoda
pentru motive bine intemeiate. Poate fi executata rapid, scanand mii de
porturi pe secunda intr-o retea rapida neobstructionata de un firewall
deranjant. Scanarile SYN sunt relativ invizibile, din moment ce nu stabilesc
niciodata o conexiune TCP. Functioneaza impotriva oricarei implementari
conforma cu standardul de stiva TCP in loc sa depinda de platforma asa cum o
fac scanarile Fin/Null/Xmas, Maimon si Idle. Ofera de asemenea o diferenta
clara si precisa intre starile open (deschisa), closed (inchisa), si filtered
(filtrata).
Aceasta tehnica este adesea denumita ca o scanare jumatate deschisa, deoarece nu
deschideti o conexiune completa TCP. Trimiteti un pachet SYN, ca si cum ati
deschide o conexiune si asteptati un raspuns. Un pachet SYN/ACK indica faptul
ca portul este deschis, in timp ce un RST (reset) este indicatorul unui port
inchis. Daca nici un raspuns nu este primit dupa mai multe retransmiteri,
portul este marcat ca fiind filtrat. Portul este de asemena marcat filtrat
daca un mesaj de eroare ICMP negasit (tipul 3, codurile 1,2,3,9,10 sau 13)
este receptionat.
-sT(Scanare TCP connect())
Scanarea TCP Connect() este implicita cand SYN nu
reprezinta o optiune viabila. Acesta este cazul in care utilizatorul nu
beneficiaza de posibilitatea de trimitere a pachetelor brute sau scaneaza
retele IPv6. In locul scrierii pachetelor brute asa cum o fac majoritatea
tipurilor de scanare, Nmap cere nivelelor inferioare ale sistemului de operare
sa stabileasca o conexiune cu masina tinta si portul dorit realizand un apel
de sistem connect(). Acesta este acelasi apel de sistem prin care aplicatiile
de nivel inalt cum ar fi browserele, clientii P2P si in general aplicatiile cu
functii de retea le folosesc pentru stabilirea conexiunii. Este o parte a
interfetei de programare cunoscuta ca Berkley Sockets API. In loc sa citeasca
pachete brute ca raspuns, Nmap foloseste API pentru a obtine informatii despre
starea fiecarei conexiuni incercate.
Cand scanarea SYN este disponibila, ea reprezinta in general alegerea mai buna.
Nmap are un control mai restrans asupra nivelului inalt al apelului
connect()cu pachete brute, facandu-l mai putin eficient. Apelul de sistem
completeaza conexiunea pentru a deschide conexiunea in loc sa efectueze o
jumatate de conexiune asa cum scanarea SYN o face. Nu numai ca acest lucru
dureaza mai mult si necesita mai multe pachete pentru a obtine aceeasi
informatie, dar exista sanse mai mari ca masinile tinta sa logheze conexiunea.
Un IDS decent va prinde si el conexiunea, dar multe masinii nu au astfel de
sisteme de alarma. Multe servicii ale unui sistem uzual UNIX vor adauga o nota
la syslog si cateodata si un mesaj criptic de eroare cand Nmap se conecteaza
si apoi inchide conexiunea fara a trimite date. Servicii patetice se pot bloca
in acest caz, dar nu este un lucru comun. Un administrator care vede o multime
de tentative de conexiune in loguri venind de la o singura sursa trebuie sa
stie ca a fost scanat prin metoda connect.
-sU(Scanare UDP)
In tim ce multe servicii in Internet ruleaza prin
protocolul TCP, serviciile UDP[6]sunt si ele raspandite. DNS, SNMP si
DHCP (porturile inregistrate 53, 161/162 si 67/68) sunt trei dintre cele mai
comune. Deoarece scanarea UDP este in general lenta si mai dificila decat TCP,
unii auditori de securitate ignora aceste porturi. Aceasta este o greseala,
deoarece serviciile UDP exploatabile sunt destul de cunoscute si atacatorii cu
siguranta nu vor ignora un intreg protocol. Din fericire, Nmap poate ajuta la
inventarierea porturilor UDP.
Scanarea UDP este acivata cu optiunea -sU. Poate fi combinata cu o
scanare TCP cum ar fi scanrea SYN ( -sS) pentru a verifica ambele
protocoale in timpul aceleiasi scanari.
Scanarea UDP functioneaza prin trimiterea de headere UDP goale (fara date) la
fiecare port specificat al masinii tinta. Daca un mesaj ICMP de port
inaccesibil (tipul 3, codul 3) este returnat, portul este closed (inchis).
Alte mesaje ICMP de port care nu poate fi atins (tipul 3, codurile 1, 2, 9, 10
sau 13) marcheaza portul ca filtered (filtrat). Ocazional, un serviciu poate
raspunde cu un pachet UDP, demonstrand faptul ca este open (deschis). Daca
nici un raspuns nu este primit dupa mai multe retransmisii atunci portul este
catalogat ca open|filtered (deschis|filtrat). Asta inseamna ca portul poate fi
deschis sau poate un filtru de pachete blocheaza comunicatia. Scanarile de
versiune ( -sV) pot fi folosite pentru a ne ajuta sa diferentiem
porturile cu adevarat deschise de cele filtrate.
O mare incercare in scanarea UDP o reprezinta realizarea acesteia rapid.
Porturile deschise si filtrate rareori trimit raspuns, lasand Nmapul sa
astepte si apoi sa retrimita pachetul pentru situatia in care proba sau
raspunsul s-au pierdut. Porturile inchise reprezinta adesea o problema si mai
mare. In mod uzual trimit inapoi un mesaj de eroare ICMP inaccesibil. Dar spre
deosebire de de pachetele RST trimise de porturile TCP inchise ca raspuns la
scanarile SYN sau connect, multe hosturi limiteaza rata de mesaje ICMP port
inaccesibil. Linux si Solaris sunt foarte stricte in aceasta privinta. De
exemplu, kernelul Linux 2.4.20 limiteaza aceste mesaje la unul pe secunda (din
net/ipv4/icmp.c).
Nmap detecteaza rata de limitare si incetineste scanarea in conformitate cu
aceasta pentru a preveni inundarea retelei cu pachete inutile pe care masina
tinta le va ignora. Din pacate, o limitare de genul Linuxului de un pachet la
o secunda face ca o scanare de 65.536 de porturi sa dureze mai mult de 18 ore.
Ideile de accelerare a scanarii UDP includ scanarea in paralel a mai multor
hosturi, scanarea doar a porturilor cunoscute, scanarea din spatele
firewallului si folosind optiunea --host-timeoutpentru a sari peste
hosturile lente.
-sN; -sF; -sX(Scanari TCP Null, FIN, si Xmas)
Aceste trei tipuri de scanare (chiar si mai multe
posibile folosind optiunea --scanflagsdescrisa in aceasta sectiune)
exploateaza o portita din TCP RFC[7]pentru a diferentia intre porturile
deschise (open)si cele inchise (closed). Pagina 65 spune ca “daca
starea portului [destinatie] este INCHIS ... un segment de intrare care nu
contine un RST face ca un raspuns RST sa fie trimis inapoi”In
urmatoarea pagina se discuta pachetele trimise catre porturile deschise fara
bitii SYN, RST sau ACK setati, specificand ca: “este putin probabil sa
ajungeti intr-o asemenea situatie, dar daca o faceti, ignorati segmentul si
reveniti”
Cand scanam un sistem compatibil cu textul RFC, orice pachet care nu contine
bitii SYN, RST sau ACK va genera un raspuns RST daca portul este inchis si
nici un raspuns daca portul este deschis. De vreme ce nici unul dintre acesti
biti nu este inclus, orice combinatie a celorlalti trei (FIN, PSH si URG) este
buna. Nmap exploateaza aceasta problema cu trei tipuri de scanari:
Scanare Null ( -sN)
-sA(Scanare TCP ACK)
Nu seteaza nici un bit (flagul header tcp este 0)
Scanare FIN ( -sF)
Seteaza doar bitul TCP FIN.
Scanare Xmas ( -sX)
Seteaza flagurile FIN, PSH si URG, luminand pachetul ca
pe un pom de Craciun.
Aceste trei tipuri de scanare sunt identice in comportament exceptand flagurile
TCP setate in pachetele de proba. Daca un pachet RST este primit, portul este
considerat closed (inchis), in vreme ce nici un raspuns inseamna un port
open|filtered (deschis|filtrat). Portul este marcat ca filtered (filtrat)daca
un mesaj de eroare ICMP de port indisponibil (tipul 3, codurile 1, 2, 3, 9, 10
sau 13) este receptionat.
Principalul avantaj al acestor tipuri de scanare este acela ca se pot strecura
prin anumite firewalluri non-statefull si routere cu filtrare de pachete. Alt
avantaj al acestor tipuri de scanare este ca sunt si mai discrete decat o
scanare SYN. Nu va bazati pe asta – multe IDSuri moderne pot fi
configurate sa le detecteze. Marea problema este ca nu toate sistemele urmeaza
RFC 793 litera cu litera. Un numar de sisteme trimit un raspuns RST la probe
indiferent daca portul este deschis sau nu. Acest lucru face ca porturile sa
fie marcate ca fiind inchise (closed). Majoritatea sistemelor care fac acest
lucru sunt Microsoft Windows, multe dispozitive Cisco, BSDI si IBM OS/400.
Acest tip de scanare functioneaza impotriva celor mai multe sisteme bazate pe
UNIX. Alta problema este ca aceste tipuri de scanari nu pot face diferenta
intre porturile deschise (open)de cele filtrate (filtered), lasand un raspuns
de tipul deschis|filtrat (open|filtered).Aceasta scanare e diferita de celelalte discutate pana
acum in sensul in care nu poate determina niciodata un port deschis (open)(sau
chiar deschis|filtrat (open|filtered)). Este folosita pentru a mapa regulile
firewallului, determinand daca acestea sunt statefull sau nu si ce porturi
sunt filtrate.
Packetul de proba la scanrea ACK are doar bitul ACK setat (doar daca nu se
specifica altceva cu --scanflags). Cand scanam sisteme nefiltrate
porturile, deschise (open)si inchise (closed)vor returna un pachet RST. Nmap
le eticheteaza ca nefiltrate (unfiltered), ceea ce inseamna ca sunt
disponibile pentru pachetul ACK dar nu se poate determina daca sunt deschise
(open)sau inchise (closed). Porturile care nu raspuns, sau trimit inapoi
anumite mesaje de eroare ICMP (tipul 3, codurile 1, 2, 3, 9, 10 sau 13) sunt
etichetate ca filtrate (filtered).
-sW(Scanare TCP Window)
Scanarea Window (fereastra) este asemanatoare cu scanarea
ACK, cu exceptia ca exploateaza un detaliu de implementare a anumitor sisteme
pentru a diferentia porturile deschise de cele inchise, in loc sa aiseze
nefiltrat (unfiltered)cand un RST este returnat. Realizeaza acest lucru prin
examinarea campului TCP Window din pachetul RST returnat. Pe unele sisteme,
porturile deschise folosesc o valoare pozitiva in timp ce porturile inchise au
valoarea 0. Astfel ca in loc sa afiseze o lista de porturi nefiltrate
(unfiltered)cand primeste un RST, scanrea TCP Window marcheaza porturile ca
deschise (open)sau inchise (closed)daca valoarea TCP Window este pozitiva sau
0, dupa caz.
Scanarea se bazeaza pe detalii de implementare a unei minoritati de sisteme din
Internet, deci nu va bazati intotdeauna pe ea. Sistemele care nu suporta
aceasta implementare returneaza de obicei toate porturile inchise (closed).
Desigur, este posibil ca respectiva masina sa nu aiba porturi deschise. Daca
majoritatea porturilor sunt inchise (closed)dar cateva numere comune cum ar fi
(22, 25, 53) sunt filtrate (filtered), sistemul este unul compatibil cu
scanarea. Ocazional, sistemul va raporta un comportament inversat. Daca
scanarea returneaza 1000 de porturi deschise si 3 inchise sau filtrate, atunci
acele trei pot fi adevaratele porturi deschise.
-sM(Scanarea TCP Maimon)
Scanarea TCP Maimon este denumita astfel dupa
descoperitorul ei, Uriel Maimon. El descrie aceasta tehnica in Magazinul Phrak
editia 49 (noiembrie 1996). Nmap, care include aceasta tehnica, a fost lansat
doua editii mai tarziu. Tehnica este similara cu scanarile Null, FIN si Xmas
cu exceptia ca proba este FIN/ACK. In conformitate cu RFC 793, un pachet RST
trebuie generat ca raspuns la o astfel de proba indiferent daca portul este
inchis sau deschis. Oricum, Uriel a remarcat faptul ca multe sisteme derivate
din BSD ignora pachetul daca portul este deschis.
--scanflags(Scanare TCP personalizata)
Utilizatorii avansati de Nmap nu trebuie sa se limiteze
la tipurile de scanare generale oferite Optiunea --scanflagsva permite
sa creati propriile tipuri de scanare prin specificarea flagurilor TCP. Lasati
spiritul creativ sa lucreze, penetrand IDSurile ale caror producatori se
multumesc sa adauge reguli specifice doar pentru tipurile clasice de scanare.
Argumentul pentru --scanflagspoate fi o valoare numerica cum ar fi 9 (PSH
si FIN), dar folosirea numelor simbolice este mult mai comoda. Puneti alaturi
orice combinatie dintre URG, ACK, PSH, RST, SYN, and FIN. De exemplu,
--scanflagsURGACKPSHRSTSYNFINsetaza toti bitii, desi nu este foarte
folositor pentru scanare. Ordinea in care se fac specificarile este
irelevanta.
In plus fata de specificarea flagurilor, puteti specifica si tipul de scanare
TCP (cum ar fi -sAsau -sF). Aceasta spune Nmapului cum sa
interpreteze raspunsurile. De exemplu, o scanare SYN considera ca lipsa unui
raspuns indica un port filtrat (filtered), in timp ce o scanare FIN trateaza
acelasi raspuns ca deschis|filtrat (open|filtered). Nmap se va comporta in
acelasi fel in care o face pentru scanarile de baza, cu exceptia faptului ca
va folosi flagurile TCP specificate. Daca nu specificati o scanare de baza,
SYN va fi utilizata.
-sI <host zombie [:port_de_proba]>(Scanare Idle)
Aceasta metoda avansata de scanare permite o scanare TCP
complet oarba a tintei (insemnand ca nici un pachet nu este trimis tintei de
la adresa IP reala). In loc, un canal derivat de atac exploateaza o secventa
de fragmentare IPID predictibila a hostului zombie pentru a culege informatii
despre porturile deschise pe masina tinta. Sistemele IDS vor indica scanarea
ca venind de la hostul zombie specificat (care trebuie sa fie functional si sa
indeplineasca anumite criterii). Acest tip fascinant de scanare este prea
complex pentru a fi descris in acest ghid de referinta, astfel ca am scris un
document informativ cu detalii complete disponibil la
http://nmap.org/book/idlescan.html.
In afara faptului ca este extrem de discreta (datorita naturii oarbe), acest tip
de scanare permite maparea relatiilor de incredere bazate pe IP intre masini.
Lista de porturi arata porturile deschise din perspectiva hostului
zombie.Asa ca puteti incerca scanarea tintei folosind diferiti zombie
despre care credeti ca ar putea avea relatii de incredere cu tinta (prin
router/filtru de pachete).
Puteti adauga doua puncte (“:”) urmate de numarul portului de pe
calculatorul zombie daca vreti sa probati un port particular al zombieului
pentru modificari IPID. Altfel Nmap va folosi portul utilizat implicit pentru
pinguri tcp (80).
-sO(Scanarea protocolului IP)
Scanarea protocolului IP permite determinarea
protocoalelor (TCP, ICMP, IGMP, etc.) suportate de masina tinta. Aceasta nu
reprezinta din punct de vedere tehnic o scanare de porturi, din moment ce
trece prin numarul protocoalelor IP in loc de numarul porturilor TCP sau UDP.
Totusi foloseste optiunea -ppentru selectarea numerelor de protocol,
raporteaza rezultatele in formatul de tabel specific scanriif de porturi, si
chiar foloseste acelasi motor de scanare ca la scanarea de porturi. Este
strans legata asadar de scanarea de porturi asa ca apartine acestei categorii.
Pe langa faptul ca este folositoare in sine, scanarea protocoalelor demonstreaza
puterea softwareului open source. In vreme ce ideea fundamentala este destul
de simpla, nu m-am gandit sa adaug sau sa primesc solicitari pentru o astfel
de functionalitate. Apoi in vara lui 2000, Gerhard Rieger a intuit aceasta
necesitate, a scris un patch excelent implementand-o si a trimis-o la lista de
discutii nmap-hackers. Am incorporat patchul in distributia Nmap si am lansat
o noua versiune in ziua urmatoare. Putine softwareuri comerciale au
utilizatori suficient de entuziasti sa realizeze si sa contribuie cu propriile
imbunatatiri.
Scanarea protocoalelor functioneaza intr-un mod similar cu scanarea UDP. In
locul iterarii numerelor de porturi ale unui pachet UDP, se trimite un pachet
IP si se itereaza cei 8 biti ai ai campului destinat protocolului din headerul
pachetului IP. Headerele sunt de obicei goale, necontinand date si nici macar
headerul potrivit pentru protocolul pretins. Cele trei exceptii sunt TCP, UDP
si ICMP. Un header potrivit pentru acestea este inclus din moment ce unele
sisteme nu le vor trimite altfel si pentru ca Nmap are deja functiile sa le
creeze. In loc sa primeasca mesaje ICMP de port indisponibil, scanarea de
protocoale cauta aceste mesaje de protocolICMP port indiponibil. Daca
Nmap primeste orice raspuns de la tinta, Nmap marcheaza protocolul ca deschis
(open). Un mesaj ICMP de protocol indisponibil (tip 2, cod 3) face ca
protocolul sa fie marcat inchis (closed). Alte erori ICMP de indisponibilitate
(tipul 3, codurile 1, 3, 9, 10 sau 13) duc la marcarea protocolului ca filtrat
(filtered)(cu toate ca ele dovedesc ca ICMP este deschis (open)in acelasi
timp). Daca nici un mesaj nu este primit dupa retransmisie, protocolul este
marcat ca deschis|filtrat (open|filtered)
-b <host ftp de intermediere>(Scanare FTP sarita)
Un aspect interesant al protocolului FTP ( RFC
959[8]) este suportul pentru asa numitele conexiuni proxy ftp. Acesta
permite utilizatorului conectarea la un server FTP si apoi solicitarea ca
anumite fisiere sa fie trimise pe un al alt server. O astfel de
functionalitate poate fi folosita pentru abuzuri asa ca multe servere au
incetat sa o mai suporte. Unul dintre aceste abuzuri face ca serverul FTP sa
scaneze alte hosturi. Cereti serverului sa trimita un fisier la fiecare port
al masinii tinta. Mesajul de eroare va descrie daca portul este inchis sau
deschis. Este o buna modalitate de a sari un firewall deoarece FTPurile sunt
adesea plasate in zone cu acces la reteaua interna. Nmap suporta scanarea ftp
sarita prin optiunea -b. Preia un argument de forma
numeutilizator: parola@ server: port.
Servereste numele sau adresa IP a serverului FTP vulnerabil. La fel ca
la URLul normal puteti omite numeutilizator: parola, caz in care
sunt folosite valorile implicite (numeutilizator: anonymousparola: -wwwuser@).
Numarul portului (si caracterul doua puncte “:” care il precede)
pot fi omise de asemenea, caz in care portul implicit FTP (21) al
serveruluieste utilizat.
Aceasta vulnerabilitate era raspandita in 1997 cand Nmap a fost lansat, dar in
mare parte a fost rezolvata. Servere vulnerabile exista inca, deci merita sa
le cautati cand orice alta optiune a picat. Daca trecerea de un firewall
reprezinta tinta dumneavoastra, scanati reteaua dupa portul 21 (sau orice alt
serviciu ftp pe care il detectati cu ajutorul optiunii de identificare a
versiunii), apoi incercati un atac sarit prin respectivul server. Nmap va va
anunta daca serverul este vulnerabil sau nu. Daca incercati doar sa va
acoperiti urmele, nu aveti nevoie (de fapt nici nu trebuie) sa va limitati la
hosturile din reteaua tinta. Inainte sa scanati aleator prin Internet dupa
servere FTP vulnerabile, luati in considerare faptul ca administratorii de
sistem pot sa nu aprecieze faptul ca abuzati de serverele lor in acest
mod.
SPECIFICAREA PORTURILOR SI A ORDINII DE SCANARE¶
In plus fata de toate metodele discutate anterior, Nmap ofera optiuni pentru specificarea porturilor ce urmeaza a fi scanate si daca scanarea se va realiza intr-o ordine aleatoare sau secventiala. Implicit, Nmap scanaeaza toate porturile pana la 1024 inclusiv, precum si porturile mai mari aflate in fisierul nmap-servicespentru protocolul/protocoalele scanate. -p <domeniu de porturi>(Se scaneaza doar porturile specificate aici)Aceasta optiune specifica porturile pe care doriti sa le
scanati, trecand peste valorile implicite. Numere de porturi individuale
reprezinta o optiune valida, precum si domenii separate prin cratima (de
exemplu 1-1023). Valorile de inceput si/sau sfarsit ale domeniului pot fi
omise, Nmap inlocuindu-le cu 1, respectiv 65535. Specificand optiunea
-p-se vor scana porturile de la 1 la 65535. Scanarea portului 0 este
permisa daca specificati acest lucru explicit. Pentru scanarea protocolului IP
( -sO), aceasta optiune specifica numarul protocolului pe care doriti
sa-l scanati (0-255).
Cand scanati atat porturi TCP cat si UDP, puteti specifica un protocol
particular precedand numarul portului cu T:sau U:. Identificatorul are domeniu
de actiune pana la aparitia altui identificator. De exemplu, argumentul
-pU:53,111,137,T:21-25,80,139,8080va scana porturile UDP 53, 111 si 137
precum si porturile TCP listate. De notat ca pentru scanarea simultana de
porturi UDP si TCP, trebuie sa specificati -sUsi cel putin un tip de
scanare TCP (cum ar fi -sS, -sF, sau -sT). Daca nici un
calificator nu a fost furnizat, numerele de porturi sunt adaugate fiecarui
protocol in parte.
-F(Scanare rapida (numar limitat de porturi)
Specifica faptul ca doriti sa scanati doar porturile
listate in nmap-services, fisier care vine cu nmap (sau fisierul de protocoale
pentru -sO). Este mult mai rapida decat scanarea tuturor celor 65535
porturi de pe un host. Deoarece lista contine atat de multe porturi TCP (mai
mult de 1200), diferenta de viteza fata de o scanare implicita TCP
(aproximativ 1650 de porturi) este dramatica. Diferenta poate fi enorma daca
specificati propriul fisier minimizat in functie de nevoi
nmap-servicesutilizand optiunea --datadir.
-r(Nu se scaneaza porturile in ordine aleatoare)
Implicit, Nmap scaneaaz porturile intr-o ordine aleatoare
(cu exceptia faptului ca anumite porturi uzuale sunt mutate la inceputul
scanarii din motive de eficienta). Aceasta ordine aleatoare este in mod normal
de dorit, dar puteti specifica -rpentru scanarea secventiala.
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.
DETECTIA SISTEMULUI DE OPERARE¶
Una dintre cele mai cunoscute facilitati ale Nmap o reprezinta detectarea de la distanta a sistemului de operare folosind amprentele stivei TCP/IP. Nmap trimite o serie de pachete TCP si UDP la calculatorul tinta si examineaza practic bit cu bit raspunsul. Dupa ce ruleaza o multime de teste ce includ crearea de modele TCP ISN, suportul si ordonarea optiunilor TCP, crearea de modele IPID si verificarea dimensiunii intiale a cadrului, Nmap compare rezultatul cu baza de date nmap-os-fingerprintsce contine mai mult de 1500 de amprente de sisteme de operare, si afiseaza detaliile acestuia daca este gasita o similitudine. Fiecare amprenta include o descriere textuala a sistemului de operare si o clasificare ce furnizeaza numele producatorului (ex: Sun), sistemul de operare (ex: Solaris), versiunea (ex: 10) si tipul masinii (scop general, router, switch, consola de jocuri, etc.) Daca Nmap este in imposibilitatea de a ghici sistemul de operare al unei masini iar conditiile sunt favorabile (ex: cel putin un port deschis si unul inchis au fost gasite), Nmap va furniza un URL pe care il puteti folosi pentru a trimite, daca stiti cu siguranta, ce sistem de operare ruleaza. Prin acest lucru contribuiti la baza de sisteme cunoscute de Nmap, facand identificarea sistemului de operare mai precisa si pentru ceilalti. Detectia sistemului de operare activeaza alte cateva teste care folosesc oricum informatia obtinuta in acest proces. Unul dintre acestea este masurarea timpului de activitate (uptime), care foloseste optiunea de amprenta de timp din pachetele TCP (RFC 1323) si ghiceste cand a fost ultima oara rebutata masina. Acest lucru este raportat doar pentru masinile care furnizeaza aceasta informatie. Alt test este cel de clasificare al predictibilitatii secventei TCP. Acesta masoara cu aproximatie cat de greu este sa stabilesti o conexiune falsificata TCP cu tinta. Este folositoare pentru exploatarea relatiilor de incredere bazate pe IP (rlogin, filtre firewall, etc.) sau pentru ascunderea sursei unui atac. Acest tip de ascundere a identitatii este rar intalnita in zilele noastre, dar multe masini sunt inca vulnerabile. Numarul ce reprezinta dificultatea este bazat pe modelarea statistica si poate fluctua. In general este mai bine daca se foloseste clasificarea textuala, cum ar fi “worthy challenge (merita incercat)”sau “trivial joke (gluma banala)”. Acestea sunt raportate doar in modul afisare detaliata ( -v). Cand modul afisare detaliata este activat alaturi de -O, generarea secventei IPID este si ea raportata. Cele mai multe masini sunt in clasa “incrementala”, ceea ce inseamna ca incrementeaza campul ID din headerul fiecarui pachet pe care il trimit. Acest lucru le face vulnerabile la cateva tehnici avansate de culegere a informatiilor si la atacuri simulate. Un articol ce documenteaza aceste aspecte, precum si personalizarea detectiei versiunii este disponibil in mai multe limbi la http://www.insecure.org/nmap/osdetect/. Detectarea sistemului de operare este activata si controlata prin urmatoarele optiuni: -O(Activeaza detectia sistemului de operare)Activeaza detectia sistemului de operare, dupa cum s-a
discutat inainte. Alternativ, se poate folosi -Apentru activarea atat a
detectiei sistemului de operare cat si a detectiei versiunii.
--osscan-limit(Limiteaza detectarea sistemului de operare la tintele
promitatoare)
Detectia sistemului de operare este mult mai eficienta
daca sunt gasite cel putin un port TCP inchis si unul deschis. Setati aceasta
optiune si Nmap nici nu va mai incerca detectarea sistemului de operare pentru
hosturile care nu indeplinesc aceste criterii. Acest lucru poate salva timp
substantial, in special in scanarile mai multor hosturi cu optiunea
-P0. Optiunea are valoare atunci cand detectia sistemului de operare a
fost solicitata prin -Osau -A.
--osscan-guess; --fuzzy(Ghiceste sistemul de operare pe baza
rezultatelor)
Cand Nmap nu poate determina cu exactitate un sistem de
operare, poate oferi un raspuns bazat pe asemanare. Asemanarea trebuie sa fie
foarte apropiata in mod implicit. Oricare dintre aceste optiuni fac Nmapul sa
adopte o atitudine mai agresiva in gasirea similitudinilor.
OPTIUNI DE TIMP SI PERFORMANTA¶
Una dintre prioritatile principale in dezvoltarea Nmapului a fost performanta. O scanare implicita ( nmap nume_host) de pe un calculator din reteaua locala ia mai putin de o cincime de secunda. Cu greu ai timp sa clipesti, dar timpul creste o data cu numarul hosturilor. Mai mult, anumite optiuni cum ar fi scanarea UDP si detectia versiunii pot mari substantial timpul de scanare. Acelasi lucru il pot face si anumite configuratii firewall, in special cele care limiteaza rata de raspuns. Cu toate ca Nmap utilizeaza paralelismul si algoritmi avansati de accelerare a scanarilor, controlul final asupra a cum ruleaza Nmap revine utilizatorului. Expertii compun cu atentie comenzile Nmap pentru a obtine numai informatia de care au nevoie incadrandu-se si in perioada de timp. Tehnicile pentru imbunatatirea vitezei de scanare includ omiterea testelor ne-critice si upgradeul la ultima versiune de Nmap (imbunatatiri de performanta se realizeaza frecvent). Optimizarea parametrilor de timp poate aduce de asemenea un spor substantial. Aceste optuni sunt prezentate in cele ce urmeaza. --min-hostgroup <milisecunde>; --max-hostgroup<milisecunde>(Ajusteaza dimensiunea grupurilor pentru scanari paralele)Nmap are capacitatea de a scana porturi sau versiuni pe
mai multe hosturi in paralel. Nmap realizeaza acest lucru prin divizarea
spatiului de adrese IP tinta in grupuri si scanand fiecare grup pe rand. In
general, grupurile mari sunt mult mai eficiente. Aspectul negativ este ca
rezultatul scanarii pentru fiecare host nu poate fi furnizat pana ce nu e
terminata scanarea pentru intregul grup. Daca Nmap porneste scanarea unui grup
de 50 de hosturi, utilizatorul nu va primi nici un raport (cu exceptia
updateurilor oferite de modul vizualizare detaliata) pana ce primele nu s-a
terminat scanarea pentru aceste hosturi.
Implicit, Nmap adopta o abordare de compromis in acest conflict. Porneste cu un
grup mic de cinci pentru a afisa rapid primele rezultate si apoi creste
dimensiunea grupului pana la 1024. Numarul exact depinde de optiunea data. Din
motive de eficienta, Nmap utilizeaza grupuri mai mari pentru scanarile UDP si
pentru cateva din porturile TCP.
Cand o dimensiune maxima este specificata cu --max-hostgroup, Nmap nu va
depasi niciodata aceasta valoare. Specificati o dimensiune minima cu
--min-hostgroupsi Nmap va incerca sa mentina dimensiunile grupurilor
peste acel nivel. Nmap se poate vedea nevoit sa foloseasca grupuri mai mici
daca nu mai sunt suficiente tinte ramase pentru a completa nivelul minim.
Amandoua pot fi folosite pentru a mentine dimensiunea grupului intre anumite
limite, desi acest lucru este in putine cazuri unul de dorit.
Principala utilizare a acestei optiuni este specificarea dimensiunii minime a
unui grup astfel incat scanarea sa ruleze mai rapid. O alegere uzuala este 256
pentru scanarea unei retele in bucati egale cu o clasa C. Pentru o scanare cu
multe porturi, depasirea acestui numar este improbabil sa ajute la ceva.
Pentru o scanare cu doar cateva porturi, grupurile de 2048 sau mai multe
hosturi pot fi folositoare.
--min-parallelism <milisecunde>;
--max-parallelism<milisecunde>(Seteaza paralelizarea probelor)
Aceste optiuni controleaza numarul de probe in asteptare
pentru un host. Sunt folosite la scanarea de porturi si la descoperirea
hosturilor. Implicit, Nmap calculeaza un numar ideal pentru paralelism, mereu
variabil, in baza performantelor retelei. Daca unele pachete sunt ignorate,
Nmap incetineste ritmul si permite un numar mai mic de probe in asteptare.
Numarul ideal de probe creste incet pe masura ce reteaua este mai rapida.
Aceste optiuni stabilesc limitele minima si maxima ale acestei variabile.
Implicit, paralelismul ideal poate scadea la 1 daca reteaua raspunde greu si
se ridica pana la cateva sute in conditii perfecte.
Cea mai comuna utilizare o reprezinta setarea --min-parallelismla o
valoare mai mare de unu pentru a mari viteza de scanare pentru hosturi si
retele cu performante slabe. Aceasta este o optiune riscanta, deoarece setarea
ei la o valoare prea mare poate influenta calitatea rezultatului. Setarea
acesteia reduce de asemenea capacitatea Nmap de a controla paralelismul in mod
dinamic pe baza conditiilor intalnite in retea. O valoare de zece poate fi una
rezonabila, cu toate ca eu ajustez aceasta valoare doar ca o ultima optiune.
Optiunea --max-parallelismeste setata cateodata pentru a preveni Nmap sa
trimita mai mult de o proba o data catre un host. Poate fi folositoare in
combinatie cu --scan-delay(ce va fi discutata mai tarziu), cu toate ca
cea de-a doua face acest lucru destul de bine si singura.
--min_rtt_timeout <milisecunde>, --max-rtt-timeout
<milisecunde>,
--initial-rtt-timeout<milisecunde>(Seteaza timpul de viata al
probelor)
Nmap mentine un timp de viata pentru determinarea
timpului maxim asteptat pentru ca o proba sa genereze un raspuns, inainte sa
se renunte la ea sau sa fie retransmisa. Este calculata pe baza timpilor de
raspuns a probelor anterioare. Daca latenta retelei are o valoare mare si
variabila, atunci timpul de viata poate creste pana la cateva secunde.
Porneste de la o valoare mare si poate ramane asa un timp pana cand Nmap
scaneaza hosturi care nu raspund.
Aceasta optiune preia o valoare in milisecunde. Specificand o valoare mica
pentru --max-rtt-timeoutsi --initial-rtt-timeout, in scanarile
default se pot obtine reduceri de timp semnificative. Acest lucru este in
particular adevarat pentru hosturile care nu raspund la ping ( -P0) si
a celor impotriva retelelor masiv filtrate. nu deveniti insa prea agresiv.
Scanarea poate sfarsi intr-un timp mare daca valorile sunt prea mici si
probele expira repede, fiind necesara retransmiterea lor in timp ce probabil
raspunsul este pe drum.
Daca hosturile fac parte din reteaua interna, o valoare de 100 milisecunde este
una suficient de agresiva pentru --max-rtt-timeout. Daca routarea intra
in joc, executati un ping la un host din respectiva retea folosind utilitarul
PING din sistemul de operare, sau cu un utilitar de construit pachete cum ar
fi hping2 ce are mai multe sanse de a trece prin firewall. Analizati timpul
maxim dintr-un grup de zece pachete. Il puteti dubla pentru
--initial-rtt-timeoutsi tripla pentru --max-rtt-timeout. In
general, nu setati timpul maxim rtt sub 100 milisecunde., indiferent de ce
raporteaza pingurile. Si nici nu depasiti 1000 milisecunde.
--min_rtt_timeouteste rar folosita si nu este folositoare intr-o retea
pentru care valoarea implicita a Nmap este prea agresiva. Din moment ce Nmap
reduce timpul de viata al pachetelor pana la minim pentru o retea eficienta,
nevoia acestei optiuni nu este uzuala si ar trebui raporta ca o problema in
lista de discutii nmap-dev.
--host-timeout <milisecunde>(Se renunta la tintele lente in
raspuns)
Unele hosturi iau un timp prea lungde scanare. Se
poate datora unor performante proaste ale retelei hardware si software,
limitarii a ratei de pachete sau firewallurilor restrictive. Cele mai lente
cateva hosturi pot manca majoritata timpului de scanare. Cateodata este bine
sa scapam de aceste pierderi si sa sarim aceste hosturi. Acest lucru poate fi
realizat prin specificarea --host-timeoutcu un numar de milisecunde in
care sunteti disponibili sa asteptati. De obicei specific 1800000 pentru a ma
asigura ca Nmap nu va pierde mai mult de o jumatate de ora pentru un singur
host. De notat ca Nmap poate scana si alte hosturi in acelasi timp, deci nu
reprezinta o pierdere totala acest timp. Un host care depaseste aceasta
perioada este sarit. Tabela de porturi, detectia sistemului de operare sau
detectia versiunii nu sunt afisate pentru acel host.
--scan-delay <milisecunde>;
--max_scan-delay<milisecunde>(Ajusteaza pauza dintre probe)
Aceasta optiune face ca Nmap sa astepte cel putin un
numar dat de milisecunde intre probele trimise la un host. Este folositoare in
particular in cazul in care exista o rata de limitare. Masinile Solaris
(printre multe altele) vor raspunde scanarii UDP cu un singur mesaj ICMP pe
secunda. Orice alta proba trimisa de Nmap in acest interval va fi irosita. O
optiune --scan-delaycu valoarea 1000 va mentine Nmap la acea rata
lenta. Nmap incearca detectarea ratei de limitare si ajusteaza scanarea in
functie de aceasta, dar nu face rau sa specificati explicit daca stiti deja ce
rata functioneaza cel mai bine.
Alta utilizare a --scan-delayeste ascunderea scanarii in fata
IDS/IPSurilor bazate pe un anumit prag de raspuns.
-T<Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>(Seteaza
optiunile de timp)
Desi optiunile detaliate de control al timpilor discutate
mai sus sunt puternice si eficiente, unii oameni le gasesc confuze. Mai mult,
alegerea valorilor corecte poate dura uneori mai mult decat scanarea in sine.
Asadar Nmap ofera o abordare mai simpla, cu sase modele de timp. Le puteti
specifica cu optiunea -Tsi numarul (0-5) sau numele. Numele modelelor
sunt paranoid (paranoic - 0), sneaky (siret - 1), polite (politicos -2),
aggresive (agresiv - 4) si insane (nebun - 5). Primele doua sunt folosite
pentru ascunderea de IDS. Modul politicos incetineste ritmul scanarii pentru a
utiliza mai putina latime de banda a masinii tinta. Modul normal este implicit
asa ca -T3nu face nimic. Modul agresiv accelereaza scanarea presupunand
ca va aflati intr-o retea rapida. In fine, modul nebun presupune ca va aflati
intr-o retea extrem de rapida sau ca sunteti dispus sa sacrificati acuratetea
rezultatelor in favoarea vitezei.
Aceste modele permit utilizatorului sa specifice cat de agresiva sa fie
scanarea, lasand totusi Nmapul sa aleaga valorile exacte. Modelele realizeaza
uneori mici reglaje pentru care inca nu exista optiuni de control. De exemplu,
-T4interzice scanarii dinamice sa depaseasca 10 milisecunde pentru
porturile TCP si -T5reduce aceasta valoare la 5 milisecunde. Modelele
pot fi folosite in combinatie cu controalele fine de timp, atat timp cat
modelul este specificat mai intai. Altfel valorile standard ale modelului pot
suprascrie valorile specificate. Se recomanda folosirea -T4cand se
scaneaza retele moderne rapide. Pastrati aceasta optiune la inceputul liniei
de comanda chiar si cand adaugati optiuni de control fin pentru a beneficia de
micile ajustari oferite.
Daca folositi o conexiune broadband sau ethernet, recomand folosirea intotdeauna
a optiunii -T4. Unii oameni adora -T5cu toate ca este prea
agresiva pentru gustul meu. Altii specifica -T2deoarece cred ca
scanarea va bloca hosturile si se considere pe ei politicosi in general. De
obicei nu realizeaza cat de inceata este optiunea -TPolite. Scanarile
lor pot lua de zece ori mai mult timp decat unele implicite. Blocarile
masinilor si probleme legate de banda sunt rare cu modelul implicit (
-T3) asa ca in mod normal este recomandat pentru scanere precaute.
Omiterea detectiei versiunii este mult mai eficienta decat jocul cu optiunile
de timp.
Desi -T0si -T1pot fi folosite pentru pacalirea IDSurilor, ele pot
lua un timp extrem de mare pentru a scana mii de masini sau porturi. Pentru o
astfel de scanare lunga, puteti prefera setarea exacta a optiunilor de timp
decat sa va bazati pe cele inglobate in optiunile -T0si -T1.
Principalul efect al T0este serializarea scanarii astfel incat un singur
port este scanat o data, si se asteapta cinci minute intre trimiterea
probelor. T1si T2sunt similare dar asteapta doar 15 secunde,
respectiv 0,4 secunde intre probe. T3este comportamentul implicit al
Nmapului ce include si paralelizarea. T4realizeaza echivalentul
--max-rtt-timeout 1250 --initial-rtt-timeout 500si seteaza intarzierea
maxima pentru scanarea TCP la 10 milisecunde. T5realizeaza echivalentul
la --max-rtt-timeout 300 --min_rtt_timeout 50 --initial-rtt-timeout 250
--host-timeout 900000si seteaza intarzierea maxima pentru scanarea TCP la
5 milisecunde.
PACALIREA FIREWALL/IDSURILOR SI ASCUNDEREA IDENTITATII¶
Multi pionieri ai internetului au prevazut o retea globala deschisa cu un spatiu universal de adrese IP permitand conexiuni virtuale intre oricare doua noduri. Acest lucru permite hosturilor sa actioneze ca parteneri in comunicatie, sa serveasca si sa obtina informatii unul de la celalalt. Oamenii pot accesa sistemele de acasa, sa schimbe temperatura in casa sau sa deschida usa pentru oaspetii grabiti. Viziunea conectivitatii universale a fost inabusita de micsorarea spatiului de adrese si de problemele de securitate. La inceputul anilor 90, organizatiile au inceput implementarea firewallurilor cu scopul precis de reducere a conectivitatii. Retele uriase au fost separate de Internetul nefiltrat prin aplicatii proxy, traduceri de adrese de retea (NAT) si filtre de pachete. Fluxul nerestrictionat de informatii a facut loc canalelor de comunicatie aprobate si supuse unor anumite reguli, precum si controlului datelor ce trece prin ele. Obstacolele din retea cum ar fi firewallurile pot face din maparea retelei o operatie extrem de dificila. Nu va deveni mai usor din moment ce constrangerile aplicate retelei reprezinta adesea un scop al implementarii noilor echipamente in retea. Nu e mai putin adevarat ca Nmap ofera multe optiuni pentru intelegerea acestor retele complexe si sa verifice daca filtrele functioneaza asa cum trebuie. Chiar suporta mecanisme de depasire a sistemelor de aparare prost implementate. Punetiva in pielea unui atacator si aplicati tehnici din aceasta sectiune in reteaua dumneavoastra. Lansati un atac sarit FTP, o scanare Idle, o fragmentare a atacului sau incercati realizarea unui tunel printr-un proxy de-al dumneavoastra. In plus fata restrictiile retelelor, companiile au inceput sa monitorizeze traficul cu sisteme de detectie a intruziunilor (IDS). Toate IDSurile cunoscute sunt livrate cu reguli care sa detecteze scanarile Nmap deoarece acestea preced de obicei un atac. Multe dintre acestea sau transformat in sisteme de prevenirea intruziunilor (IPS) care blocheaza in mod activ traficul presupus malitios. Din pacate pentru administratorii de retea si vanzatorii IDSurilor, detectarea in mod corect a relelor intentii prin analizarea pachetelor este o problema dificila. Atacatorii cu rabdare, indemanare si ajutor din partea anumitor optiuni Nmap pot in mod normal sa treaca de IDS nedetectati. Intre timp, administratorii au de a face cu o multime de alerte false cand trafic inocent este gresit diagnosticat si se emite o atentionare sau este chiar blocat. Cateodata oamenii sugereaza ca Nmap nu ar trebui sa ofere functii de pacalire a regulilor firewallurilor sau de trecerea nedetectata de IDS. Argumeenteaza prin faptul ca pot fi folosite de atacatori. Problema in acest rationament este ca atacatorii tot vor gasi instrumente sau patchuri pentru Nmap pentru a realiza acest lucru. Intre timp, administratorii pot descoperii ca munca lor este mult mai dificila. Instalarea numai a serverelor FTP moderne, cu patchurile aplicate la zi este o metoda mult mai buna de protectie decat prevenirea distribuirii instrumentelor ce implementeaza atacurile sarite FTP. Nu exista nici o optiune magica in Nmap pentru detectarea si pacalirea firewallurilor si a sistemelor IDS. Acest lucru ia indemanare si experienta. O prezentare detaliata este dincolo de scopul acestui ghid de referinta, care listeaza doar optiunile relevante si descrie ce fac ele. -f(fragmenteaza pachetele); --mtu(foloseste MTU specificat – Unitatea Maxima de Transmitere)Optiunea -fface ca scanarea ceruta (incluzand
scanarea ping) sa foloseasa fragmente mici de pachete IP. Ideea este
impartirea headerului TCP in mai multe pachete pentru a ingreuna misiunea
filtrelor de pachete, sistemelor de detectare a intruziunilor si a altor
elemente de detectare a activitatii. Atentie cu aceasta optiune! Unele
programe au probleme in manevrarea acestor pachete mici. De exemplu Sniffit
esua dupa primirea primului fragment. Specificati aceasta optiune o data si
Nmap va imparti pachetul in fragmente de opt bytes sau mai putin dupa headerul
IP. Astfel, un header TCP de 20 bytes va fi impartit in 3 pachete. Doua de opt
bytes si unul cu ultimii patru. Desigur, fiecare fragment are propriul header
TCP. Specificati -finca o data pentru folosirea a 16 bytes pe fragment
(reducand numarul de fragmente). Sau puteti specifica propriile dimensiuni cu
optiunea --mtu. Nu specificati si -fdaca folositi --mtu.
Dimensiunea trebuie sa fie un multiplu de 8. Pachetele fragmentate nu vor
trece de filtrele de pachete si firewallurile care interogheaza toate
fragmentele IP, cum ar fi optiunea CONFIG_IP_ALWAYS_DEFRAG din kernelul
Linuxului, unele retele nu-si pot permite pierderea de performanta cauzata de
aceste configurari si le dezactiveaza. Altele nu pot activa configurarile de
acest gen deoarece fragmentele pot intra pe rute diferite in retea. Unele
sisteme defragmenteaza pachetele de iesire in kernel. Linux cu modulul de
urmarire a conexiunii din iptables este un exemplu. Realizati o scanare si
rulati in acelasi timp un sniffer de genul Ethereal pentru a va asigura ca
pachetele sunt fragmentate. Daca sistemul de operare va creaza probleme,
incercati optiunea --send-ethde sarire a nivelului IP si de trimitere
de cadre ethernet brute.
-D <momeala1 [,momeala2][,ME (EU)],...>(Scanare acoperita de
momeli)
Face ca o scanare acoperita de momeli sa fie executata,
ceea ce face ca tinta sa creada ca momelile specificate ca argument scaneaza
si ele reteaua. Astfel IDS poate raporta 5-10 scanari de porturi de la adrese
IP unice, dar nu va stii care adresa scaneaza cu adevarat si care sunt momeli
inocente. Cu toate ca aceasta tehnica poate fi contrata prin urmarirea caii
prin routere, ignorarea raspunsului si alte mecanisme active, ea reprezinta o
tehnica eficienta de ascundere a adresei IP.
Separati fiecare momeala prin virgule si folositi optional ME(adica propria
adresa IP) ca una dintre momeli pentru a reprezenta adevarata pozitie a
adresei IP reale. Daca puneti MEin a sasea pozitie sau mai tarziu, unele
detectoare de scanari de porturi (cum ar fi Solar Design) pot sa nici nu
afiseze adresa IP reala. Daca nu folositi ME, nmap il va pune intr-o pozitie
aleatoare.
Retineti faptul ca tintele pe care le folositi ca momeli trebuie sa fie active
sau altfel riscati sa inundati cu pachete SYN tinta. In aceeasi ordine de
idei, este usor de determina cine face scanarea daca o singura adresa IP este
activa. E de preferat sa utilizati adrese IP in loc de nume (astfel incat
numele hostului dumneavoastra sa nu apara in logurile DNSului tinta).
Momelile sunt folosite atat in pingul initial (folosind ICMP, SYN, ACK sau orice
altceva) si in timpul scanarii efective de porturi. Momelile sunt de asemenea
folosite la detectarea sistemului de operare ( -O). Momelile nu
functioneaza cu detectia versiunii sau scanarea TCP connect().
Nu folositi prea multe momeli deoarece pot incetini scanarea si o pot face mai
putin corecta. De asemena, unii ISP vor filtra pachetele false, dar multi nu
restrictioneaza pachetele IP de loc.
-S <Adresa_IP>(Seteaza adresa IP sursa)
In anumite circumstante, Nmap se poate afla in
imposibilitatea determinarii adresei sursa (Nmap va anunta daca acest lucru se
intampla). In aceasta situatie, folositi -Scu adresa IP a interfetei pe
care doriti sa trimiteti pachetele.
Alta posibila utilizare a acestei optiuni este sa faceti tinta sa creada ca este
scanata de altcineva. Imaginativa o companie permananent scanata de un
competitor! Optiunea -eva fi in general necesara pentru astfel de
utilizare si -P0este de asemenea recomanda.
-e <interfata>(Foloseste interfata specificata)
Spune Nmapului ce interfata sa foloseasca pentru
trimiterea si primirea pachetelor. Nmap ar trebui sa poata determina automat
acest lucru, dar va va anunta daca nu poate.
--source-port <numarul_portului>; -g
<numarul_portului>(Seteaza portul sursa)
O greseala surprinzator de des intalnita o reprezinta
configurarea relatiilor de incredere in functie de numaul portului sursa. Este
usor de inteles cum stau lucrurile. Un administrator instaleaza un nou
firewall si este apoi ingropat in plangeri din partea utilizatorilor
nemultumiti ale caror aplicatii nu mai functioneaza. In particular, DNSul
poate fi blocat deoarece raspunsurile UDP DNS de la serverele externe nu mai
pot intra in retea. FTP este un alt exemplu. In transferurile FTP active,
serverul incearca sa stabileasca o conexiune inapoi la client pentru
transferarea fisierului solicitat.
Solutii securizate la aceste probleme exista, de obicei sub forma de proxiuri la
nivelul aplicatie sau module firewall care analizeaza protocoalele. Din pacate
exista si solutii mai simple si mai nesigure. Notand faptul ca raspunsurile
DNS vin de la portul 53 si cele de la conexiunile FTP de la portul 20, multi
administratori au cazut in capcana permiterii neconditionate a traficului de
la aceste porturi. Adesea ei presupun ca nici un atacator nu va observa si
exploata astfel de gauri in firewall. In alte cazuri, administratorii
considera aceasta rezolvare ca una pe termen scurt pana cand vor implementa o
solutie mai sigura. Apoi ei uita sa mai faca upgradeul de securitate.
Administratorii retelelor supraincarcate nu sunt singurii care cad in aceasta
capcana. Numeroase produse au fost livrate cu aceste reguli nesigure. Chiar si
Microsoft are partea ei de vina. Filtrele IPsec livrate cu Windows 2000 si
Windows XP contin o regula implicita care permite traficul oricarui pachet UDP
cu portul sursa 53 (DNS) sau 67 (DHCP).
Nmap ofera optiunile -gsi --source-port(care sunt echivalente)
pentru exploatarea acestei slabiciuni. Specificati un numar ca argument si
Nmap va trimite pachete de la acel port oricand acest lucru este posibil. Nmap
trebuie sa foloseasca porturi diferite pentru anumite teste de detectare a
sistemului de operare si cererile DNS ignora optiunea
--source-portdeoarece Nmap se bazeaza pe librariile sistemului pentru a
le manevra. Multe scanari TCP, incluzand-o pe cea SYN, suporta aceasta
optiune, la fel ca si scanarea UDP.
--data-length <numar>(Adauga un numar aleator de date la pachetul
trimis)
In mod normal Nmap trimite pachete minimaliste continand
doar headerul. Astfel pachetele TCP au in general 40 bytes si cererile de
raspuns ICMP doar 28. Aceasta optiune adauga un numarul dat ca argument de
bytes, generati aleator, la majoritatea pachetelor trimise. Pachetele pentru
detectia sistemului de operare ( -O) nu sunt afectate, dar majoritatea
pingurilor si scanarilor de porturi sunt. Acest lucru incetineste viteza de
scanare, dar pachetele pot fi mai putin suspicioase.
--ttl <valoare>(Seteaza campul IP time-to-live – timp de
viata)
Seteaza campul IP time-to-live – timp de viata
– la valoarea specificata.
--randomize-hosts(Scaneaza hosturile in ordine aleatoare)
Spune Nmapului sa aranjeze aleator grupuri de 8096
hosturi inainte de scanare. Aceasta optiune poate face scanarea mai putin
vizibila pentru anumite sisteme de monitorizare a retelei, in special cand e
combina cu un specificator mic de timp. Daca vreti ca aranjarea aleatoare sa
se realizeze pentru grupuri mai mari, cresteti valoarea PING_GROUP_SZ din
nmap.hsi recompilati. O solutie alternativa o reprezinta generarea listei de
IPuri ce urmeaza a fi scanata cu o scanre de tip lista ( -sL -n -oN
numefisier), si sa realizati aranjarea aleatoare a lor cu
un script Perl, apoi sa furnizati intreaga lista Nmapului cu optiunea
-iL.
--spoof-mac <adresa mac, prefix, numele vanzatorului >(Falsifica
adresa MAC)
Cere Nmapului sa foloseasca adresa MAC furnizata pentru
toate cadrele ethernet pe care le trimite. Aceata optiune implica
--send-ethpentru a se asigura ca Nmap trimite pachetele la nivelul
retea. MACul specificat poate avea cateva formate. Daca spcificati sirul
“0”, Nmap alege un MAC complet aleator pentru sesiunea
respectiva. Daca sirul furnizat este un numar par de digiti hexa (cu perechile
separate prin caracterul “:”), Nmap va folosi respectuva adresa
MAC. Daca mai putin de 12 digiti sunt furnizati, Nmap umple 6 bytes cu valori
aleatoare. Daca argumentul nu este nici 0, nici sir hexa, Nmap cauta in
nmap-mac-prefixespentru a gasi un producator care sa contina sirul dat
(cautare insenzitiva). Daca o asemanare este gasita, Nmap foloseste
identificatorul unic al vanzatorului (3 bytes) si completeaza cu 3 bytes alesi
aleator. Argumentele valide ale optiunii --spoof-macsunt Apple, 0,
01:02:03:04:05:06, deadbeefcafe, 0020F2, si Cisco.
AFISAREA REZULTATELOR¶
Orice instrument de securitate este bun in masura rezultatelor generate. Teste complexe si algoritmi nu au nici o valoare daca nu sunt prezentate intr-un mod organizat si inteligibil. Dat fiind numarul de moduri in care Nmap este folosit de oamenii sau programe, nu exista un format unic care sa ii multumeasca pe toti. Asadar, Nmap ofera mai multe formate, incluzandu-l pe cel interactiv pentru citirea uzuala si XML pentru interpretarea rezultatelor de catre software. In plus fata de oferirea diferitelor formate de afisare, Nmap furnizeaza si optiuni de control al cantitatii de informatii si al mesajelor de eroare. Tipurile de afisare a rezultatelor sunt trimise la iesirea standard sau in fisiere, unde Nmap poate adauga sau rescrie. Fisierele cu rezultate pot fi de asemenea folosite pentru reluarea scanarilor intrerupte. Nmap face rezultatele disponibile in cinci formate. Cel implicit este numit afisare interactiva, si este trimis la iesirea standard (stdout). Exista si un mod de afisare normala, care este similar cu cel interactivcu exceptia faptului ca afiseaza mai putine informatii si avertizari in timpul rularii din moment ce se asteapta analizarea rezultatelor dupa ce scanarea s-a incheiat. Formatul XML este unul dintre cele mai importante tipuri, deoarece poate fi convertit in HTML, prelucrat de programe cum ar fi interfata grafica a Nmap sau importat in baze de date. Celelalte doua tipuri sunt mai simple formatul pentru comanda grepcare include majoritatea informatiilor despre un host pe o singura linie si f0rm4Tu1 sCRiPt KiDDi3pentru utilizatorii care se considera |<-r4d. In vreme ce afisarea interactiva este formatul implicit si nu are asociat o optiune pentru linia de comanda, celelalte patru formate folosesc aceeasi sintaxa. Ele iau un argument, care este numele fisierului in care se stocheaza rezultatele. Formate multiple pot fi specificate, dar fiecare format poate fi specificat cel mult o data. De exemplu, puteti dori salvarea in formatul normal pentru citirea ulterioara si in formatul XML pentru analiza software. Puteti realiza acestea cu optiunea -oX scanarea_mea.xml -oN scanarea_mea.nmap. Desi in acest capitol numele folosite sunt simple, precum scanarea_mea.xmlpentru simplitate, nume mai descriptive sunt recomandate. Numele alese sunt o chestie de preferinta, iar eu folosesc nume lungi care incorporeaza data scanarii si un cuvant doua pentru descriere si sunt plasate in directoare numite in functie de companiile scanate. Desi aceste optiuni salveaza rezultatele in fisiere, Nmap afiseaza totusi in modul interactiv la iesirea standard rezultatele. De exemplu, comanda nmap -oX scanarea_mea.xml tintascrie in format XML in scanarea_mea.xmlsi afiseaza la iesirea standard rezultatele in modul interactiv ca si cum optiunea -oXnu a fost specificata. Puteti modifica acest lucru furnizand ca argument al optiunii caracterul cratima (“-”) la unul din tipurile de formate de afisare. Acest lucru face ca Nmap sa dezactiveze formatul interactiv, si sa afiseze in schimb rezultatele in formatul specificat la iesirea standard. Comanda nmap -oX - tintava trimite rezultatele in format XML la iesirea standard. Erorile mari pot fi scrise in mod normal in sirul de erori, stderr. Spre deosebire de argumentele Nmap, spatiul dintre optiune (cum este -oX) si numele fisierului sau cratima este obligatoriu. In caz contrar, in situatii ca -oG-sau -oXscan.xml, o functie de compatibilitate cu versiunile anterioare va face ca Nmap sa creeze in formatul normalfisiere de iesire cu numele G-si Xscan.xml. Nmap ofera optiuni de control al nivelului de informatii afisate si daca la fisiere se va face adaugare de informatie sau vor fi suprascrise. Toate optiunile sunt descrise mai jos Formate de afisare a rezultatelor -oN <specificator_fisier>(Afisare normala)Cere ca formatul normalsau fie directionat catre fisierul
specificat. Asa cum s-a discutat mai sus, exista o mica diferenta fata de
formatul interactiv.
-oX <specificator_fisier>(Formatul XML)
Cere ca formatul XMLsa fie directionat catre fisierul
specificat. Nmap include o definitie a tipului de document (DTD) care permite
analizatoarelor XML sa valideze fisierele cu rezultate in format XML. Desi
este in principal folosit in programare, el poate ajuta si oamenii sa
interpreteze rezultatele. DTD defineste elementele legale ale formatului si
adesea enumera atributele si valorile pe care le pot lua. Ultima versiune este
intotdeauna disponibila la [9].
XML ofera un format stabil care este usor interpretat de software. Analizatoare
XML sunt disponibile pentru majoritate limbajelor de programare, incluzand
C/C++, Perl, Python si Java. Oamenii au scris programe pentru majoritatea
acestor limbaje care interpreteaza direct rezultatele Nmap. Exemplele sunt
Nmap::Scanner[10]si Nmap::Parser[11]in Perl CPAN. In majoritatea
cazurilor in care o aplicatie interfereaza cu Nmap, XML este formatul
preferat.
Formatul XML referentiaza un format de pagina XSL care poate fi folosit pentru
convertirea rezultatelor in HTML. Cea mai usoara cale de a realiza acest lucru
o reprezinta simpla incarcare a fisierului XML intr-un browser cum ar fi
Firefox sau IE. Implicit, acest lucru functioneaza doar pe masinile pe care
rulati Nmap (sau pe cele configurate similar) din cauza caii fisierului
nmap.xsl. Folositi optiunile --webxmlsau --stylesheetpentru
crearea de fisiere XML portabile care sunt randate ca HTML pe orice masina
conectata la web.
-oS <specificator de fisier>(f0rm4u1 ScRipT KIdd|3)
Formatul script kiddie este asemanator cu formatul
interactiv, cu exceptia faptului ca sirul de iesire este post-procesat pentru
a se potrivi mai bine cu stilul HaXXorZ care au neglijat in trecut Nmapul
datorita formatului corect gramatical si ortografic de afisare a rezultatelor.
Cei fara umor ar trebui sa noteze faptul ca eu iau peste picior script kiddie,
inainte de a ma blama pentru presupusul “ajutor acordat”.
-oG <specificator_fisier>(Formatul pentru comanda grep)
Acest format este lasat la urma deoarece este invechit.
Formatul XML este mult mai puternic si este aproape la fel de convenabil
pentru utilizatorii experimentati. XML este un standar pentru care exista o
multime de interpretoare, in vreme ce formatul grep reprezinta solutia doar
pentru probleme punctuale. XML este extensibil pentru a prelua noi
functionalitati ale Nmap in versiunile urmatoare in vreme ce sunt nevoit
adeseori sa omit aceste optiuni din formatul greu din cauza lipsei de spatiu.
Nu e mai putin adevarat ca formatul grep este inca destul de popular. Este un
format simplu care listeaza fiecare host pe cate o linie si poate fi usor
interpretat cu instrumente standard UNIX cum ar fi grep, awk, cut, sed, diff
si Perl. Chiar si eu il folosesc pentru unul din testele realizate in linie de
comanda. Gasirea tuturor hosturilor cu portul ssh deschis si care ruleaza
Solaris presupune o simpla comanda grep pentru identificarea hosturilor,
imbinata cu awk sau cut pentru afisarea campurilor dorite.
Formatul grep consta in comentarii (linii care incep cu diez (#)) si linii cu
tinte. O linie cu tinta include o combinatie de 6 campuri etichetate, separate
prin taburi si urmate de doua puncte (“:”). Campurile sunt Host,
Porturi, Protocoale, Status ignorat, Sistem de operare, Index Seq, IPID, si
Status.
Cele mai importante dintre aceste campuri sunt in general Porturile, care ofera
detalii despre fiecare port interesant. Este o lista separata prin virgule de
porturi. Fiecare port reprezinta un port interesant, si ia forma unui subcamp
separat in sapte de caracterul slash (/). Subcampurile sunt: Numarul portului,
Status, Protocol, Detinator, Serviciu, informatii SunRPC, si Informatii despre
versiune.
Ca si pentru formaul XML, aceasta pagina man nu permite documentarea intregului
format. O detaliere a formatului pentru comanda grep este disponibila la
[12].
-oA <nume_de_baza>(Scrie in toate formatele)
Pentru usurinta, puteti specifica -oA
nume_de_bazapentru stocarea rezultatelor in formatele
normal, XML si pentru comanda grep, toate odata. Ele sunt stocate in
nume_de_baza.nmap, nume_de_baza.xml, si
nume_de_baza.gnmap. La fel ca in majoritatea programelor puteti adauga
si calea inaintea numelor fisierelor, ca in exemplele ~/logurinmap/foocorp/sub
UNIX sau c:\hacking\scosub Windows.
Optiuni privind cantitatea de informatii afisate si
depanare -v(Creste cantitatea de informatii afisate)
Creste cantitatea de informatii afisate, facand ca Nmap
sa afiseze mai multe date despre scanarea in curs. Porturile deschise sunt
afisate pe masura ce sunt descoperite si un timp estimat al terminarii este
furnizat atunci cand Nmap constata ca scanarea va dura mai mult decat cateva
minute. Folositi de doua ori optiunea pentru un efect si mai puternic.
Folosirea mai mult de doua ori nu are nici un efect.
Majoritatea modificarilor vor afecta doar afisarea interactiva si unele mai pot
afecta formatul script kiddie. Celelalte formate sunt concepute pentru a fi
procesate de masini, asa ca Nmap ofera implicit un nivel detaliat de
informatii fara a obosi utilizatorul. Totusi, exista cateva schimbari in
celelalte moduri unde dimensiunea rezultatelor poate fi redusa substantial
prin omiterea unor detalii. De exemplu, o linie ce contine comentarii in
formatul pentru comanda grep care furnizeaza o lista cu toate porturile
scanate este furnizata doar in modul de afisare cu informatii detaliate (-v)
dearece poate fi destul de lunga.
-d [nivel](Creste sau seteaza nivelul de depanare)
Cand modul afisare detaliata nu va ofera suficiente
informatii, modul depanare este disponibil pentru a va inunda cu si mai multa
informatie! La fel ca si cu optiunea de vizualizare detaliata ( -v),
modul depanare este activat printr-un specificator ( -d) si nivelul de
depanare poate fi crescut prin specificarea lui de mai multe ori. Alternativ,
se poate seta un nivel de depanare prin specificarea unui argument la
-d. De exemplu, -d9seteaza nivelul 9. Acesta este cel mai mare
nivel efectiv si va produce mii de linii, doar daca nu realizati o scanare
simpla cu cateva porturi si hosturi.
Modul depanare este folositor cand se suspecteaza o problema in Nmap, sau daca
esti pur si simplu incurcat de ce si ce face Nmap. Cum aceasta functionalitate
este in general destinata dezvoltatorilor, mesajele de depanare nu sunt
intotdeauna clare. Puteti vedea ceva de genul: Timeoutvals: srtt: -1 rttvar:
-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000. Daca
nu intelegeti o linie, singurele lucruri de facut este sa o ignorati, sa
cautati in codul sursa sau sa solicitati ajutor in lista de dezvoltare
(nmap-dev). Unele linii sunt explicite, dar mesajele devin mai obscure pe
masura ce nivelul de depanare creste.
--packet-trace(Urmareste pachetele si datele trimise si primite)
Face ca Nmap sa afiseze un sumar cu toate pachetele
trimise sau primite. Este adesea folositoare pentru depanare, dar este si o
sursa pretioasa pentru noii utilizatori de a intelege exact ce face Nmap.
Pentru a evita printarea de mii de linii, puteti dori specificarea unui numar
limitat de porturi in vederea scanarii, cum ar fi -p20-30. Daca va
intereseaza doar ce se intampla in timpul detectarii versiunii, folositi in
schimb --version-trace.
--iflist(Listeaza interfetele si caiule de rutare)
Afiseaza interfetele si caile de rutare ale sistemului
asa cum sunt ele detectate de Nmap. Este folositor pentru depanarea cailor de
rutare sau interpretarea gresita a dispozitivelor (cum ar fi tratarea de catre
Nmap a unei conexiuni PPP ca una Ethernet).
Optiuni pentru afisare unor informatii diverse
--append-output(Adauga la fisierul de rezultate in loc sa il inlocuiasca)
Cand specificati un nume de fisier la optiuni cum ar fi
-oXsau -oN, acel fisier este suprascris implicit. Daca
prefereati pastrarea continutului si adaugarea la sfarsitul lui de noi
informatii, specificati optiunea --append-output. Toate fisierele de
rezultate specificate la executia Nmap vor fi deschise in modul adaugare in
loc sa fie suprascrise. Acest lucru nu functioneaza bine cu formatul XML (
-oX) deoarece rezultatul nu va fi interpretat corect pana nu aranjati
fisierul manual.
--resume <nume_fisier>(Reia o scanare intrerupta)
Unele scanari Nmap pot lua un timp foarte mare –
de ordinul zilelor. Asemenea scanari nu ruleaza pana la sfarsit. Anumite
restrictii pot face Nmapul sa nu ruleze in orele cu trafic intens, reteaua
poate fi cazuta, masina pe care ruleaza Nmap poate suferii o restartare
planificata sau neplanificata, sau Nmap poate sa se blocheze. Administratorul
care ruleaza Nmap poate opri scanarea pentru orice alt motiv, apasand ctrl-C.
Refacerea intregii scanari de la inceput nu este de dorit. Din fericire, in
modul normal ( -oN) sau cel pentru comanda grep ( -oG) logurile
sunt pastrate, utilizatorul poate solicita Nmap reluarea scanarii de la ultima
tinta care era scanata in momentul intreruperii. Specificati optiunea
--resumesi furnizati ca argument fisierul de rezultate in formatul
normal sau grep. Nici un alt argument nu este permis, pentru ca Nmap citeste
fisierul de rezultate si foloseste aceleasi optiuni specificate. Rulati Nmap
cu nmap --resume numele_fisierului_log. Nmap va adauga la
fisier noile rezultate. Reluarea nu este suportata de formatul XML deoarece
combinarea a doua rulari succesive intr-un singur fisier XML valid este
dificila.
--stylesheet <cale sau URL>(Seteaza formatul XSL pentru
transformarea rezultatului XML)
Nmap este furnizat cu un format XSL numit nmap.xslpentru
vizualizarea sau traducerea rezultatelor XML in HTML. Rezultatele in formatul
XML includ o directiva xml-stylesheetdirective care indica fisierul
nmap.xmldin locatia in care a fost instalat Nmap (sau din directorul curent in
Windows). Incarcati rezultatul scanarii cu Nmap in format XML intr-un browser
si acesta ar trebui sa aleaga nmap.xsldin sistemul de fisiere si sa-l
foloseasca pentru afisarea rezultatelor. Daca doriti specificarea unui alt
format de afisare, specificati-l ca argument pentru --stylesheet.
Trebuie sa furnizati calea completa sau URLul. O apelare uzuala este
--stylesheethttp://www.insecure.org/nmap/data/nmap.xsl. Aceasta aplelare
spune browserului sa incarce cel mai nou format de afisare de la Insecure.Org.
Optiunea --webxmlrealizeaza acelasi lucru cu mai putine lucruri de
tastat si memorat. Incarcand fisierul XSL de la Insecure.Org face vizualizarea
mai facila pentru un calculator care nu are Nmap instalat (si implicit nici
nmap.xsl) Astfel URLul este adesea mult mai folositor, dar fisierul local
nmap.xsl este utilizat implicit din motive de securitate.
--webxml(Incarca formatul stylesheet de la Insecure.Org)
Este un sinonim covenabil pentru --stylesheet
http://www.insecure.org/nmap/data/nmap.xsl.
--no_stylesheet(Se omite declaratia stylesheetului XSL din XML)
Specificati aceasta optiune daca vreti sa preveniti
Nmapul sa asocieze vreun format XSL cu fisierul XML. Directiva
xml-stylesheeteste omisa.
OPTIUNI DIVERSE¶
Aceasta sectiune descrie cateva optiuni importante (si mai putin importante) care nu si-au gasit locul in nici o alta sectiune -6(Activeaza scanarea IPv6)Din 2002, Nmap ofera suport IPv6 pentru majoritatea
functionalitatilor sale. In particular, scanarea ping (doar TCP), scanarea
connect() si detectarea versiunii suporta toate IPv6. Sintaxa comenzii este
aceeasi cu exceptia adaugarii optiunii -6. Desigur, trebuie sa folositi
sintaxa IPv6 daca specificati o adresa in locul unui hostname. O adresa poate
arata 3ffe:7501:4819:2000:210:f3ff:fe03:14d0, asa ca hostnameurile sunt
recomandate. Rezultatul arata in mod normal, cu adresa IPv6 pe linia
“porturi_interesante”ca singura adresa.
Desi IPv6 nu a revolutionat lumea, are parte de o folosire semnificativa in
unele tari (in special in Asia) si majoritatea sistemelor moderne de operare
ofera suport. Pentru folosirea Nmap cu IPv6, atat sursa cat si tinta scanarii
trebuie sa fie configurate in IPv6. Daca ISPul dumneavoastra nu aloca o adresa
IPv6 (multi nu o fac), tunele de trecere sunt disponibile gratuit si
functioneaza bine cu Nmap. Unul dintre cele mai bune este cel rulat de BT
Exact. Am folosit si cel furnizat de Hurricane Electric la
http://ipv6tb.he.net/. Tunelele 6la4 sunt de asemenea folosite,
existand si optiuni gratuite.
-A(Optiuni de scanare agresive)
Aceasta optiune activeaza alte optiuni avansate si
agresive. Nu m-am decis inca de la ce vine litera de specificare. In prezent
activeaza detectia sistemului de operare ( -O) si scanarea versiunii (
-sV). Mai multe functionalitati pot fi inglobate pe viitor. Ideea este
de a activa un set cuprinzator de optiuni de scanare fara ca oamenii sa fie
nevoiti sa tina minte un set intreg de optiuni. Aceasta optiune activeaza
functionalitatile, nu si optiunile de timp (cum ar fi -T4) sau nivelul
de informatii afisat ( -v) pe care le-ati dori.
--datadir <nume_director>(Specifica un anumit director pentru
localizarea fisierelor Nmap)
Nmap obtine anumite date in momentul rularii in fisierele
numite nmap-service-probes, nmap-services, nmap-protocols, nmap-rpc,
nmap-mac-prefixes, si nmap-os-fingerprints. Nmap incearca intai sa caute
aceste fisiere in directorul specificat cu optiunea --datadir(daca
exista). Orice fisier negasit aici este cautat in directorul specificat de
directiva NMAPDIR. La rand vin apoi ~/.nmappentru sisteme POSIX sau locatia
executabilului Nmap (pe sistemele Win32), si apoi o locatie precompilata cum
ar fi /usr/local/share/nmapsau /usr/share/nmap. Ca o ultima optiune, Nmap va
cauta in directorul curent.
--send-eth(Foloseste trimiterea bruta ethernet)
Cere Nmapului sa trimita pachete brute ethernet (la
nivelul legaturii de date) in locul trimiterii de la nivelul IP superior.
Implicit, Nmap alege pe cel care este in general potrivit pentru platforma de
rulare. Socketuri brute (nivelul IP) sunt in general mult mai eficiente pe
masinile UNIX, in timp ce cadre ethernet sunt necesare pentru operatii sub
Windows, din moment ce Microsoft a dezactivat suportul pentru suport de
socketuri brute. Nmap foloseste pachete IP brute pe UNIX in ciuda acestei
optiunii cand nu exista nici o alta alegere (conexiuni non-ethernet).
--send-ip(Trimite pachete brute la nivelul IP)
Cere Nmapului sa trimita pachete brute prin socketuri IP
in locul trimiterii lor la nivelul cadrelor ethernet. Este complementul
optiunii --send-ethdiscutata anterior.
--privileged(Se presupune ca utilizatorul are privilegii depline)
Spune Nmapului sa presupuna ca are privilegii suficiente
pentru a trimite pachete brute, sa intercepteze pachete si alte operatii
similare care in general necesita privilegii de root pe sisteme UNIX. Implicit
Nmap renunta la astfel de operatii daca getuid() nu este zero.
--privilegedeste o optiune folositoare impreuna cu capacitatea
kernelului de Linux de a permite utilizatorilor neprivilegiati sa realizeze
scanari cu pachete brute. Asigurativa ca ati mentionat aceasta optiune
inaintea oricarei optiuni care necesita privilegii (scanare SYN, detectia
sistemului de operare, etc.). Variabila NMAP_PRIVILEGED poate fi setata ca o
alternativa la --privileged.
--interactive(Porneste in modul interactiv)
Nmap porneste in modul interactiv, care ofera
posibilitatea de a lansa scanari multiple (fie sincron, fie in fundal). Este
folositor pentru oameni care scaneaza de pe sisteme multi-utilizator ce doresc
testarea securitatii fara ca ceilalti utilizatori sa stie ce se realizeaza.
Folositi --interactivepentru activarea acestui mod si mai apoi tastati
hpentru ajutor. Aceasta optiune este rar folosita deoarece shellurile uzuale
sunt mult mai familiare si mai complete. Aceasta optiune include un operator
bang (!) pentru executarea de comenzi shell, ceea ce este unul din multele
argumente pentru a nu seta Nmap ca root.
-V; --version(Afiseaza numarul versiunii)
Afiseaza versiunea de Nmap si iese.
-h; --help(Afiseaza o pagina sumara de ajutor)
Afiseaza un ecran de ajutor cu principalele optiuni.
Rularea Nmap fara nici un argument face exact acelasi lucru.
INTERACTIUNE IN TIMPUL RULARII¶
In timpul executiei Nmap, toate tastele apasate sunt inregistrate. Acest lucru va perite interactiunea cu programul fara oprirea si restartarea lui. Anumite taste vor schimba optiuni in vreme ce altele vor afisa mesaje despre scanarea in curs. Conventia este ca literele mici crescnivelul de afisare si literele mari scadacest nivel. v/ VCresc / Descresc cantitatea de informatii afisate
d/ D
Cresc /Descresc cantitatea de informatii de
depanare
p/ P
Activeaza / Dezactiveaza urmarirea pachetelor
Anything else (Orice altceva)
Afiseaza un mesaj de genul:
Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan
Service scan Timing: About 28.00% done; ETC: 16:18 (0:00:15 remaining)
EXEMPLE¶
Aici sunt cateva exemple de utilizare a Nmap, de la unele simple si de rutina pana la altele mai complexe si ezoterice. Unele adrese IP si nume de domenii sunt folosite pentru a face lucrurile mai concrete. In locul lor trebuie sa puneti adresele/numele din reteaua dumneavoastra.. Desi nu cred ca scanarea de porturi a altor retele este sau ar trebui sa fie ilegala, unii administratori de retea nu apreciaza scanari nesolicitate ale retelelor lor si pot depune plangere. Obtinerea mai intai a permisiunii este cea mai buna abordare. Pentru testare, aveti permisiunea sa scanati hostul scanme.nmap.org. Aceasta permisiune include doar scanarea cu Nmap si nu testarea gaurilor de securitate sau atacuri de tip DOS. Pentru conservarea latimii de banda, va rog sa nu initiati mai multe scanari zilnic. Daca aceasta tinta este abuzata, va fi indisponibila in retea si Nmap va raporta imposibilitatea de a gasi hostul Failed to resolve given hostname/IP: scanme.nmap.org. Aceasta permisiune se aplica si hosturilor scanme2.nmap.org, scanme3.nmap.org, si asa mai departe, desi acestea nu exista inca. nmap -v scanme.nmap.org Aceasta linie de comanda scaneaza toate porturile TCP rezervate de pe masina scanme.nmap.org. Optiunea -vactiveaza modul de afisare in timp real a rezultateor. nmap -sS -O scanme.nmap.org/24 Lanseaza o scanare SYN impotriva tuturor celor 255 masini din reteaua de “clasa C”unde isi are locul hostul scanme. De asemenea incearca determinarea sistemului de operare a fiecarui host activ. Acesta lansare necesita privilegii root din cauza scanarii SYN si a detectarii sistemului de operare. nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127 Lanseaza enumerarea hosturilor si o scanare TCP in prima jumatate a celor 255 de subretele 198.116 de clasa B. Testeaza daca sistemul ruleaza sshd, DNS, pop3d, imapd sau portul 4546. Pentru fiecare dintre porturile gasite deschise, detectia versiunii este pusa in functiune pentru a se determina aplicatia care ruleaza. nmap -v -iR 100000 -P0 -p 80 Cere Nmapului sa aleaga aleator 100.000 tinte si sa le scaneze in cautarea serverelor web (portul 80). Enumerarea hosturilor este dezactivata cu -P0din moment ce trimiterea unui cuplu de probe pentru a determina daca hostul este activ este o pierdere de timp atata vreme cat se cauta un singur port al fiecarei tinte. nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20 Scaneaza cele 4096 IPuri dupa servere web (fara ping) si salveaza rezultatele in formatul pentru comanda grep si in formatul XML. host -l company.com | cut -d -f 4 | nmap -v -iL - Realizeaza un transfer de zona DNS pentru a gasi toate hosturile din company.com si apoi furnizeaza adresele Nmapului. Comanda de mai sus este valabila pentru un sistem Linux – alte sisteme beneficiaza de comenzi diferite pentru realizarea transferului DNS.PROBLEME¶
Asemeni autorului, Nmap nu este perfect. Dar ilputeti face mai bun trimitand rapoarte despre problemele aparute si chiar scriind patchuri. daca Nmap nu se comporta in modul in care va asteptati, faceti upgradeul la ultima versiune disponibila la http://www.insecure.org/nmap/. Daca problema persista, faceti munca de cercetare pentru a vedea daca problema a fost descoperita si discutata. Incercati cautarea in Google a mesajului de eroare sau navigand prin arhivele Nmap-dev la http://seclists.org/. Cititi acest manual in intregime de asemenea. Daca nimic nu se rezolva, trimiteti un mail la dev@nmap.org. Va rog sa includeti tot ce ati aflat despre problema, precum si versiunea de Nmap pe care o folositi si sistemul de operare. Problemele si intrebarile legate de utilizarea Nmapului trimise la dev@nmap.org au sanse mult mai mari de a li se raspunde decat cele trimise direct la Fyodor. Patchurile de rezolvare a problemelor sunt si mai bune decat rapoartele despre problema in sine. Instructiuni de baza pentru crearea patchurilor sunt disponibile la http://www.insecure.org/nmap/data/HACKING. Patchurile pot fi trimise la nmap-dev (recomandat) sau direct la Fyodor.AUTOR¶
Fyodor fyodor@nmap.org( http://www.insecure.org) Sute de oameni au facut contributii importante la Nmap de-a lungul timpului. Ei sunt mentionati in fisierul CHANGELOGdistribuit cu Nmap si disponibil la [13].ASPECTE LEGALE¶
Unofficial Translation Disclaimer / Disculparea fata de traducerea neoficiala¶
This is an unnofficial translation of the Nmap license details[14]into Romanian. It was not written by Insecure.Com LLC, and does not legally state the distribution terms for Nmap -- only the original English text does that. However, we hope that this translation helps Romanian speakers understand the Nmap license better. Aceasta este traducerea neoficiala a detaliilor de licenta ale Nmap[14]in limba romana. Nu a fost scrisa de Insecure.Com LLC si nu statueaza in mod legal termenii distributiei Nmap – numai textul original in limba engleza realizeaza acest lucru. Oricum speram ca aceasta traducere sa ajute vorbitorii de limba romana sa inteleaga termenii licentei Nmap mai bine.Dreptul de autor si licentiere¶
Scanerul de securitate Nmap este (C) 1996-2005 a Insecure.Com LLC. Nmap este marca inregistrata a Insecure.Com LLC. Acest program este software liber; il puteti redistribui si/sau modifica sub termenii Licentei Publice Generale (GNU General Public License) asa cum este publicata de Free Software Foundation; Versiunea 2. Aceasta va garanteaza dreptul de folosire, modificare si redistribuire sub anumite conditii. Daca doriti sa incorporati tehnologie Nmap in software proprietar, suntem dispusi sa vindem licente alternative (contact sales@insecure.com). Multi producatori de scanere de securitate au licentiat deja tehnologie Nmap cum ar fi descoperirea hosturilor, scanare de porturi, detectia sistemului de operare si detectia serviciului/versiunii. Notati ca GPL pune restrictii importante asupra “produselor derivate”, desi nu furnizeaza o definitie detaliata a termenului. Pentru a evita neintelegerile, consideram ca o aplicatie este “produs derivat”in termenii licentei daca realizeaza unul din urmatoarele lucruri:•Integreaza cod sursa din Nmap
•Citeste sau include fisiere Nmap proteja de
drepturi de autor, cum ar fi nmap-os-fingerprintssau
nmap-service-probes.
•Executa Nmap si interpreteaza rezultatele (spre
deosebire de aplicatiile shell care afiseaza outputul brut al Nmapului si nu
reprezinta produse derivate).
•Integreaza/include/agregheaza Nmap intr-un
executabil de instalare proprietar, cum sunt cele produse de
InstallShield.
•Face legatura la o biblioteca sau executa un
program care realizeaza oricare dintre cele enumerate.
Termenul “Nmap”include si portiuni din produse derivate din Nmap.
Lista nu este exclusiva, dar este menita a clarifica interpretarea noastra a
produselor derivate cu exemple comune. Aceste restrictii se aplica doar pentru
cazul in care redistribuiti Nmap. De exemplu, nimic nu va impiedica sa scrieti
interfete grafice proprietare pentru Nmap. Distribuiti-o independent si
invitati oamenii la http://www.insecure.org/nmap/pentru a descarca
Nmap.
Nu consideram aceste ca restrictii adugate peste GPL ci doar o clarificare a
modului in care interpretam termenul de “produs derivat”asa cum
se aplica el la produsul Nmap licentiat GPL. Este similar modului in care
Linus Torvalds a anuntat interpretarea sa asupra a cum se aplica termenul de
“produs derivat”la modulele kernellului Linux. Interpretarea
noastra se refera doar la Nmap – nu vorbim in numele nici unui alt
produs GPL.
Daca aveti intrebari despre restrictiile licentei GPL in ceea ce priveste
folosirea Nmap in produse non-GPL, sunt bucurosi sa va ajutam. Asa cum am
mentionat, oferim licente alternative pentru integrarea Nmap in aplicatii si
aplicari proprietare. Astfel de contracte au fost vandute majoritatii
producatorilor de software de securitate si in general includ o licenta
perpetua precum si furnizarea prioritara de suport si actualizari, dupa cum ne
si ajuta sa finantam dezvoltarea tehnologiei Nmap. Va rugam sa trimiteti un
email la sales@insecure.compentru mai multe informatii.
Ca o exceptie speciala de la termenii GPL, Insecure.Com LLC permite legarea
acestui cod cu orice versiune de biblioteca OpenSSL distribuita sub o licenta
identica cu cea din fiserul Copying.OpenSSL si distribuirea codului legat a
celor doua. Trebuie sa va supuneti GNU GPL pentru orice cod in afara de
OpenSSL. Daca modificati acest fisier, puteti extinde aceasta exceptie si
asupra fisierului dumneavoastra, desi nu sunteti obligati sa o faceti.
Daca primiti aceste fisiere cu o alta licenta scrisa sau contract care specifica
alti termeni decat cei precizati aici, atunci licenta alternativa ia locul
celei de fata.
Disponibilitatea codului sursa si contributiile comunitatii¶
Sursa este furnizata cu acest software deoarece consideram ca utilizatorii au dreptul de a stii exact ce face un program inainte de a-l rula. Acest lucru permite si auditul softwareului in vederea descoperirii gaurilor de securitate (nici una nu a fost descoperita pana acum). Codul sursa permite portarea Nmap pe noi platforme, rezolvarea problemelor si adaugarea de noi functionalitati. Sunteti incurajati sa trimiteti modificarile dumneavoastra la fyodor@nmap.orgpentru o posibila incorporare in distributia principala. Prin trimiterea acestor modificari catre Fyodor sau la una din listele de dezvoltare de la Insecure.Org, se presupune ca oferiti lui Fyodor si Insecure.Com LLC dreptul neliitat, neexclusiv de reutilizare, modificare si relicentiere a codului. Nmap va fi intotdeauna disponibil ca software cu sursa disponibila, dar acest lucru este important din cauza imposibilitatii relicentierii ce a creat probleme devastatoare pentru alte proiecte cu software liber (cum sunt KDE si NASM). Ocazional relicentiam codul catre terti asa cum s-a discutat mai devreme. Daca doriti sa specificati conditii speciale de licentiere a contributiei dumneavoastra, precizati acest lucru cand o trimiteti.Nici o garantie¶
Acest program este distribuit in speranta ca va fi folositor, dar FARA NICI O GARANTIE; fara macar a garantiei de COMERCIABILITATE sau POTRIVIRE PENTRU UN SCOP PARTICULAR. Vezi GNU GPL pentru mai multe detalii la http://www.gnu.org/copyleft/gpl.html, sau in fisierul COPYING inclus in Nmap. Notati si faptul ca Nmap, ocazional, blocheaza aplicatii prost scrise, stive TCP/IP si chiar sisteme de operare. Desi este un lucru extrem de rar, este important sa tinteti minte ca Nmap nu trebuie niciodata rulat impotriva sistemelor cu aplicatii criticedecat daca sunteti pregatit sa suferiti eventuale blocari. Statuam aici faptul ca Nmap poate bloca sistemele sau retelele dumneavoastra si ne disculpam de orice paguba sau problema pe care Nmap o poate cauza.Utilizare inadecvata¶
Datorita micului risc de blocare si pentru ca unele personaje negative folosesc Nmap in cunoasterea tintelor premergator atacului, exista administratori care devin suparati si pot depune plangere daca sistemele lor sunt scanate. Asadar, este recomandata solicitarea permisiunii chiar si inaintea unei scanari superficiale a retelei. Din ratiuni de securitate Nmap nu ar trebui instalat niciodata cu privilegii speciale (ex: suid root)Software de la terti¶
Acest produs iclude software dezvoltat de Apache Software Foundation[15]. O versiune modificata a bibliotecii de captura a pachetelor Libpcapportable[16]este distribuita impreuna cu Nmap. Versiunea de Windows a Nmap utilizeaza biblioteca derivata din libpcap, WinPcap[17]. Suportul pentru expresiile regulate este furnizat de PCRE library[18], software open source, scris de Philip Hazel. Anumite functii brute de retea folosesc biblioteca Libdnet[19], scrisa de Dug Song. O versiune modificata este distribuita cu Nmap. Optional Nmap se poate lega de Trusa criptografica OpenSSL[20]pentru suportul de detectare a versiunii SSL. Toate softurile de la terti descrise in acest paragraf sunt redistribuibile gratuit sub licente de tipul BSD.Clasificarea de control al exportului din SUA¶
Clasificarea de control al exportului din SUA: Insecure.Com LLC considera ca Nmap cade sub incidenta US ECCN (numarul de control al clasificarii de export) 5D992. Aceasta categorie este denumita “Software de securitate a informatiilor necontrolat de 5D002”. Singurele restrictii ale acestei clasificari sunt AT (anti-terrorism) care se aplica aproape tuturor bunurilor si interzic exportul catre cateva natiuni ca Iranul si Coreea de Nord. Asadar exportul Nmapului nu necesita licente speciale, permisiuni sau autorizari guvernamentale.NOTES¶
- 1.
- original English version
- 2.
- Creative Commons Attribution License
- 3.
- ITSecure
- 4.
- RFC1122
- 5.
- RFC792
- 6.
- UDP
- 7.
- TCP RFC
- 8.
- RFC 959
- 9.
- 10.
- Nmap::Scanner
- 11.
- Nmap::Parser
- 12.
- 13.
- 14.
- Nmap license details
- 15.
- Apache Software Foundation
- 16.
- bibliotecii de captura a pachetelor Libpcapportable
- 17.
- WinPcap
- 18.
- PCRE library
- 19.
- Libdnet
- 20.
- Trusa criptografica OpenSSL
12/09/2012 | [FIXME: source] |