CATEGORII DOCUMENTE |
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-sC
,
undeC
este 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 starileopen
(deschisa)
,closed (inchisa)
,
sifiltered (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
sistemconnect()
. 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 apeluluiconnect()
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, serviciileUDPsunt 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 esteclosed (inchis)
. Alte mesaje ICMP de
port care nu poate fi atins (tipul 3, codurile 1, 2, 9, 10 sau 13) marcheaza
portul cafiltered (filtrat)
.
Ocazional, un serviciu poate raspunde cu un pachet UDP, demonstrand faptul ca
esteopen (deschis)
. Daca
nici un raspuns nu este primit dupa mai multe retransmisii atunci portul este
catalogat caopen|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 (dinnet/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-timeout
pentru 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--scanflags
descrisa
in aceasta sectiune) exploateaza o portita dinTCP RFCpentru
a diferentia intre porturiledeschise
(open)
si celeinchise
(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 consideratclosed (inchis)
, in vreme ce nici un raspuns inseamna un
portopen|filtered (deschis|filtrat)
.
Portul este marcat cafiltered (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 fiindinchise
(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 porturiledeschise (open)
de celefiltrate (filtered)
, lasand un raspuns
de tipuldeschis|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 portdeschis (open)
(sau chiardeschis|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)
siinchise (closed)
vor
returna un pachet RST. Nmap le eticheteaza canefiltrate
(unfiltered)
, ceea ce inseamna ca sunt disponibile pentru
pachetul ACK dar nu se poate determina daca suntdeschise (open)
sauinchise
(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 cafiltrate (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
aisezenefiltrat (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 porturinefiltrate
(unfiltered)
cand primeste un RST, scanrea TCP Window marcheaza
porturile cadeschise (open)
sauinchise (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
porturileinchise (closed)
.
Desigur, este posibil ca respectiva masina sa nu aiba porturi deschise. Daca
majoritatea porturilor suntinchise
(closed)
dar cateva numere comune cum ar fi (22, 25, 53) suntfiltrate (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--scanflags
va 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--scanflags
poate
fi o valoare numerica cum ar fi 9 (PSH si FIN), dar folosirea numelor simbolice
este mult mai comoda. Puneti alaturi orice combinatie dintreURG
,ACK
,PSH
,RST
,SYN
, andFIN
. De exemplu,--scanflagsURGACKPSHRSTSYNFIN
setaza
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-sA
sau-sF
). Aceasta spune Nmapului cum sa
interpreteze raspunsurile. De exemplu, o scanare SYN considera ca lipsa unui
raspuns indica un portfiltrat (filtered)
,
in timp ce o scanare FIN trateaza acelasi raspuns cadeschis|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 lahttps://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 deschisedin 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-p
pentru
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 deprotocolICMP
port indiponibil. Daca Nmap primeste orice raspuns de la tinta, Nmap marcheaza
protocolul cadeschis (open)
.
Un mesaj ICMP de protocol indisponibil (tip 2, cod 3) face ca protocolul sa fie
marcatinchis (closed)
. Alte
erori ICMP de indisponibilitate (tipul 3, codurile 1, 3, 9, 10 sau 13) duc la
marcarea protocolului cafiltrat (filtered)
(cu
toate ca ele dovedesc ca ICMP estedeschis
(open)
in acelasi timp). Daca nici un mesaj nu este primit dupa
retransmisie, protocolul este marcat cadeschis|filtrat
(open|filtered)
-b <host ftp de
intermediere>
(Scanare FTP sarita)
Un aspect interesant al protocolului FTP (RFC 959) 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 formanumeutilizator
:parola
@server
:port
.Server
este numele sau adresa IP a
serverului FTP vulnerabil. La fel ca la URLul normal puteti omitenumeutilizator
:parola
, caz in care sunt folosite
valorile implicite (numeutilizator:anonymous
parola:-wwwuser@
). Numarul portului (si
caracterul doua puncte ":" care il precede) pot fi omise de asemenea, caz in
care portul implicit FTP (21) alserverului
este
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.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1006
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved