Provided by: nmap_7.91+dfsg1+really7.80+dfsg1-2ubuntu0.1_amd64 

NUME
nmap - Instrument de explorare a retelei si scaner de securitate / porturi
REZUMAT
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 Exemplu 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.
Exemplu 1. O scanare reprezentativa cu Nmap
# nmap -A -T4 scanme.nmap.org playground
Starting nmap ( https://nmap.org/ ) 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
Cea mai noua versiune de Nmap poate fi obtinuta de la https://nmap.org/. Cea mai noua versiune a paginii
man poate fi vizualizata la https://nmap.org/man/.
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 https://nmap.org/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)
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).
-sA(Scanare TCP ACK)
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 https://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 https://nmap.org/vscan/.
Cand Nmap primeste raspunsuri de la un serviciu dar nu gaseste ceva corespunzator in baza de date,
afiseaza o amprenta si un URL pentru a o putea trimite daca stiti cu exactitate ce ruleaza la respectivul
port. Va rog sa va rupeti cateva minute pentru a face acest lucru, astfel incat de descoperirea
dumneavoastra sa poata beneficia toata lumea. Datorita amprentelor trimise de utilizatori, Nmap are
aproximativ 3.000 de modele pentru 350 de protocoale cum ar fi smtp, ftp, http, etc.
Detectia versiunii este activata si controlata de urmatoarele optiuni:
-sV(Detectia versiunii)
Activeaza detectia versiunii, dupa cum s-a discutat anterior. Alternativ, puteti folosi -Apentru
activarea detectiei versiunii si a sistemului de operare simultan.
--allports(Nu se exclude nici un port de la detectia versiunii)
Implicit, detectia versiunii din Nmap sare peste portul TCP 9100, deoarece unele imprimante imprima
orice data trimisa la acel port, ducand la o multime de pagini pline de cererei HTTP, sesiuni SSL,
etc. Acest comportament poate fi schimbat prin modificarea sau stergerea directivei Excludedin
nmap-service-probes, sau prin specificarea --allportspentru scanarea tuturor porturilor in ciuda
directivei Exclude.
--version-intensity <intensitate>(Seteaza intensitatea detectiei versiunii)
Cand realizam o detectie a versiunii ( -sV), nmap trimite o serie de probe, fiecare cu o valoare
atasata, intre 1 si 9, care reprezinta raritatea. Probele cu numere mici sunt eficiente impotriva
unei arii largi a serviciilor comune, in timp ce acelea cu numere mari sunt mai rar folosite. Nivelul
de intensitate specifica ce probe trebuie aplicate. Cu cat mai mare este numarul, cu atat mai precisa
este detectarea versiunii. Oricum, scanarea cu intensitate mare dureaza mai mult. Intensitatea
trebuie sa fie intre 0 si 9. Implicit este 7. Cand o proba este gasita ca o legatura intre
nmap-service-probes si numarul portului, atunci proba este incercata indiferent de nivelul de
intensitate. Acest lucru asigura faptul ca probele DNS vor fi incercate pentru fiecare port 53 gasit
deschis, probele SSL pentru portl 443, etc.
--version-light(Activeaza modul delicat)
Este o notare convenabila pentru --version-intensity 2. Acest mod delicat face scanarea versiunii
mult mai rapida, dar si mai putin precisa in identificarea serviciilor.
--version-all(Incearca toate probele)
Un sinonim pentru --version-intensity 9, asigurandu-se ca toate probele vor fi incercate impotriva
fiecarui port.
--version-trace(Urmareste activitatea scanarii vesiunii)
Acest lucru face ca Nmap sa afiseze informatii detaliate despre ce face detectarea versiunii. Este un
subset al informatiilor obtinute cu --packet-trace.
-sR(Scanare RPC)
Aceasta metoda functioneaza in combinatie cu multimea de metode de scanare de porturi a Nmapului. Ia
toate porturile TCP/UDP deschise si le inunda cu pachete de comanda SunRPC nule in incercarea de a
determina daca sunt porturi RPC si, daca e asa, ce program si ce versiune servesc. Puteti obtine
aceleasi informatii cu rpcinfo -pchiar daca portmapperul tintei se afla in spatele unui firewall (sau
este protejat de TCP wrapper). Momelile nu functioneaza cu scanarea RPC. Este activat automat ca
parte a scanarii versiunii ( -sV) daca solicitati asa ceva. Deoarece detectia versiunii include si
rezultatele acestei scanari fiind mult mai larga in acoperire, -sReste rareori necesara.
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 https://nmap.org/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
--stylesheethttps://nmap.org/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 https://nmap.org/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.
-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/ V
Cresc / 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 https://nmap.org/. 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 https://nmap.org/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
https://nmap.org/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.com>pentru 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.org>pentru 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.
NOTE
1. original English version
https://nmap.org/man/
2. Creative Commons Attribution License
http://creativecommons.org/licenses/by/2.5/
3. ITSecure
http://www.itsecure.ro
4. RFC1122
http://www.rfc-editor.org/rfc/rfc1122.txt
5. RFC792
http://www.rfc-editor.org/rfc/rfc792.txt
6. UDP
http://www.rfc-editor.org/rfc/rfc768.txt
7. TCP RFC
http://www.rfc-editor.org/rfc/rfc793.txt
8. RFC 959
http://www.rfc-editor.org/rfc/rfc959.txt
9.
https://nmap.org/data/nmap.dtd
10. Nmap::Scanner
http://sourceforge.net/projects/nmap-scanner/
11. Nmap::Parser
http://www.nmapparser.com
12.
http://www.unspecific.com/nmap-oG-output
13.
https://nmap.org/nmap_changelog.html
14. Nmap license details
https://nmap.org/man/man-legal.html
15. Apache Software Foundation
http://www.apache.org
16. bibliotecii de captura a pachetelor Libpcapportable
http://www.tcpdump.org
17. WinPcap
http://www.winpcap.org
18. PCRE library
http://www.pcre.org
19. Libdnet
http://libdnet.sourceforge.net
20. Trusa criptografica OpenSSL
http://www.openssl.org
[FIXME: source] 09/28/2018 NMAP(1)