
Zistovanie hostitelskych stanic Jednym z uplne prvych krokov pri prieskume siete
je zuzit niekedy obrovsku mnozinu rozsahov IP adries na zoznam aktivnych alebo zaujimavych hostitelskych stanic.
Scanovanie kazdeho portu kazdej jednej adresy nie je obycajne nevyhnutne. Samozrejme, ze ciel scanovania
zavisi od typu scanu. Sietovych administratorov mozu zaujimat
len hostitelske stanice, na ktorych bezi urcita sluzba, kym spravcov bezpecnosti mozu dbat o kazde zariadenie
s IP adresou. Administratorovi moze stacit ICMP ping, aby nasiel hostitelske stanice vo vnutornej sieti,
kym tester moznosti vonkajsieho preniknutia do siete moze pouzit mnozinu testov pri pokuse vyhnut sa obmedzeniam
firewallu.
Pretoze potreby pri zistovanie hostitelskych stanic su rozmanite, Nmap ponuka
siroku paletu moznosti prisposobenia pouzitych technik. Zistovanie hostitelskej stanice
sa niekedy nazyva ping scan, zachadza vsak daleko za jednoduchym ICMP echo request
spojenou so vsadepritomnym
ping nastrojom. Pouzivatelia mozu krok pingovania
vynechat uplne pouzitim parametra (-sL) alebo
zakazanim pingu parametrom (-P0), ci pouzit v sieti nahodne kombinacie multi-portovych testov
TCP SYN/ACK, UDP, a
ICMP. Cielom tychto testov je pokusit sa ziskat odpovede, ktore ukazuju, ze
IP adresa je vlastne aktivna (je pouzivana hostitelskou stanicou alebo sietovym zariadenim).
Vo viacerych sietach je aktivne len male percento IP adries v rovnakom momente, co je obvykle hlavne pre
rozsah privatnych adries, napr. 10.0.0.0/8 podla standardu RFC1918.
Tato siet obsahuje 16 milionov IP adries, ale videl som, ze ich pouzivali spolocnosti s menej ako tisic pocitacmi.
Zistovanie hostitelskych stanic dokaze najst tieto pocitace v riedko alokovanom oceane
IP adries. Ak nie su zadane ziadne parametre pre zistovanie hostitelskych stanic, Nmap
odosle kazdej cielovej stanici TCP ACK
paket urceny pre port 80 a poziadavku ICMP Echo Request.
Vynimkou je je ARP scan pouzivany pre vsetky cielove stanice v lokalnej ethernetovej sieti.
Pri neprivelegovanych pouzivateloch UNIXoveho shellu sa namiesto typu ACK odosle paket typu
SYN pouzitim systemoveho volaniaconnect()
Tieto predvolene nastavenia odpovedaju parametrom
-PA -PE. Taketo zistovanie hostitelskych stanic je sice
casto postacujuce pri scanovani lokalnych sieti, ale pri testovani bezpecnosti
sa odporuca pouzit rozsiahlejsiu mnozinu testov na zistovanie. Parametre-P* (vyberajuce typy pingu) sa mozu kombinovat.
Vyhliadky preniknutia nekompromisnymi firewallmi sa mozu zvysit odoslanim viacerych typov testov
vyuzivajuc rozlicne typy portov a priznakov TCP a ICMP sprav.
Je dolezite vsimnut si, ze zistovanie ARP (-PR) sa normalne vykonava na
cielovych staniciach v lokalnej ethernetovej sieti, aj pri zadani dalsich parametrov
-P*, pretoze je to takmer vzdy rychlejsie a efektivnejsie. Nasledujuce parametre sluzia na ovladanie zistovania hostitelskych stanic. -
-sL (List scan) List scan je neupravena podoba zistovania hostitelskych stanic,
ktora jednoducho zobrazi zoznam kazdej hostitelskej stanice specifikovanej sieti
bez odoslania paketov cielovym staniciam. V predvolenom nastaveni vykonava Nmap
reverzny preklad DNS hostitelskych stanic kvoli ziskaniu nazvov.
Je casto prekvapujuce, kolko uzitocnych informacii vydaju jednoduche hostitelske nazvy. Napriklad nazov
fw.chi.playboy.com je firewallom spolocnosti
Playboy Enterprises kancelarie v Chicagu. Nmap na konci takisto oznami celkovy pocet
IP adries. Zoznam scanovania je dobrou kontrolou spravnosti, ze su vybrate
nalezite IP adresy. Ak hostitelske stanice vykazuju nazvy domen, ktore nerozponavate,
je ich vhodne preskumat hlbsie, aby sa predislo scanovaniu siete nespravnej spolocnosti. Kedze myslienkou je len jednoduchy vypis zoznamu
hostitelskych stanic, parametre funkcionality vyssieho stupna ako scanovanie portov,
detekcia OS alebo scanovanie pouzitim pingu nemoze byt kombinovane.
Ak chcete zakazat vykonat tieto vyssie funkcie a zakazat scanovanie pouzitim pingu,
dalsie informacie su uvedene pri parametri
-P0. -
-sP (Ping scan) Tento parameter zabezpeci, ze sa vykona len
ping scan (zistovanie hostitelskych stanic) a potom sa zobrazia
dostupne hostitelske stanice, ktore odpovedali na scan. Ziadne dalsie testovanie
ako scan portov alebo detekcia OS, sa nevykona. Je to o krok dotieravejsie ako list scan
a casto sa moze pouzit pre rovnake ucely. Dovoluje jemne preskumanie cielovej siete bez vzbudenia
velkej pozornosti. Poznatok o pocte aktivnych hostitelskych stanic je pre utocnikov cennejsi
ako zoznam poskytnuty list scanom kazdej IP adresy a nazvu host. stanice. Systemovi administratori tiez casto ocenia tento parameter.
Moze sa pouzit jednoducho na zistenie poctu dostupnych pocitacov
v sieti alebo monitorovanie dostupnosti servera. Casto sa to nazyva
ping sweep a je spolahlivejsie ako vysielanie pingu broadcastovej adrese,
pretoze mnoho hostitelskych stanic neodpoveda na broadcastove poziadavky.
Parameter-sP normalne vysle ICMP echo
request a TCP paket na port 80. Ak je prikaz spusteny neprivilegovanym pouzivatelom,
vysle sa na port 80 cielovej stanice SYN paket
(pouzitim volania funkcie connect()).
Ak sa privilegovany pouzivatel pokusa scanovat cielove stanice na lokalnej ethernetovej sieti,
pouzivaju sa spravy ARP request (-PR) , ak nie je explicitne zadany parameter
--send_ip.
Parameter-sP sa moze kombinovat s akymkolvek
z testov zistovania ( parametre -P*,
s vynimkou -P0) kvoli vacsej flexibilite.
Ak sa pouziju nejake z tychto typov testov a parametrov cisel portov, prepisu sa tym
predvolene testy (ACK a echo request). Ak sa medzi zdrojovou host. stanicou so spustenym Nmapom
a cielovou sietou nachadza nekompromisny firewall, odporuca sa pouzitie tychto pokrocilych
technik, inac by mohli hostitelske stanice chybat v pripade, ze firewall vyluci spusteny test alebo
odpovede hostitelskych stanic.
-
-P0 (Bez pingu)
Tento parameter kompletne preskoci fazu zistovania.
Nmap obvykle pouziva tuto fazu na zistenie aktivnych
pocitacov pred rozsiahlejsim scanovanim.
V predvolenom nastaveni vykonava Nmap len intenzivne testovanie ako
scanovania portov, detekciu verzie alebo detekciu OS pri zistenych aktivnych hostitelskych staniciach.
Zakazanie zistovania hostitelskych stanic parametrom -P0
sposobi, ze Nmap vykona pozadovanie funkcie scanovania na
kazdej specifikovanej IP adrese. Takze ak je v prikazovom riadku zadany
adresovy priestor triedy B (/16), bude sa scanovat vsetkych 65 536 IP adries.
Druhy znak v parametri -P0 je nula a nie pismeno O.
Riadne zistovanie hostitelskych stanic sa vynecha ako pri list scane, ale namiesto zastavenia a
zobrazenia cieloveho zoznamu, Nmap pokracuje vo vykonavani pozadovanych funkcii ako keby bola kazda cielova
IP adresa aktivna.
-
-PS [portlist] (Ping TCP SYN ) Tento parameter vysiela prazdny TCP paket s nastavenym flagom SYN. Predvoleny cielovy port
je 80 (konfigurovatelny v case kompilacie zmenou hodnoty premennej DEFAULT_TCP_PROBE_PORT v subore
nmap.h), no alternativny port moze byt
specifikovany ako parameter. Zoznam portov oddeleny ciarkou moze byt
dokonca specifikovany za parametrom
(napriklad -PS22,23,25,80,113,1050,35000), a v tomto pripade sa testy budu vykonavat
paralelne pre kazdy port. SYN flag vyjadruje pre vzdialeny system pokus o nadviazanie spojenia.
Za normalnych podmienok by bol cielovy port zatvoreny a spat by bol odoslany RST(reset) paket. Ak sa port zda
byt otvoreny, ciel vysle druhy stupen mechanizmu TCP 3-way handshake, a teda odpovie SYN/ACK TCP paketom. Pocitac
so spustenym Nmapom potom zrusi vznikajuce spojenie odpovedanim RST paketom namiesto ACK paketom, ktory by
dokoncil uplny mechanizmus 3-way-handshake a nadviazal plne spojenie. RST paket nie je odoslany Nmapom, ale
kernelom pocitaca, na ktorom je spusteny Nmap, ako odpoved na neocakavany paket SYN/ACK.
Nmap sa nestara o to, ci je port otvoreny alebo zatvoreny.
Odpoved s flagom RST alebo SYN/ACK opisana vyssie prezradi Nmapu, ci je hostitelska stanica dostupna a
ci odpoveda. Na pocitacoch s UNIXom moze vseobecne len privilegovany pouzivatel
root posielat a prijimat neupravene TCP pakety.
Pri neprivilegovanych pouzivateloch sa automaticky pouzije systemove volanie funkcie connect() na kazdy cielovy port.
Ma to za efekt odoslanie SYN paketu cielovej stanici ako pokusu o nadviazanie spojenia.
Ak funkcia connect() vrati rychlo uspesny vysledok alebo chybu ECONNREFUSED, zakladny TCP stack musel
prijat SYN/ACK alebo RST paket a hostitelska stanica je oznacena ako dostupna. Ak je pokus o spojenie
neukonceny az do dosiahnutia casoveho limitu, hostitelska stanica je oznacena ako nedostupna.
To sa pouziva aj pre spojenia pre protokol IPv6, kedze podpora neupravenych IPv6 paketov v Nmape este
nie je dostupna.
-
-PA [portlist] (Ping TCP ACK) Ping TCP ACK je dost podoba na prave rozobraty SYN ping.
Rozdiel je v tom, ze namiesto SYN flagu je nastaveny ACK flag.
Takyto ACK paket znaci potvrdenie dat nad vybudovanym TCP spojenim, ale pritom
ziadne taketo spojenie neexistuje, takze vzdialene hostitelske stanice by mali vzdy odpovedat
RST paketom, cim v tomto procese prezradia svoju existenciu.
Parameter-PA pouziva rovnaky predvoleny port ako test SYN (80)
a takisto moze spracovat zoznam cielovych portov v rovnakom formate. Ak sa o to pokusa
neprivilegovany pouzivatel alebo je specifikovany cielova stanica s protokolom IPv6,
pouzije sa obvykle systemove volanie funkcie connect(), co nie je bezchybne,
pretoze connect() vysiela SYN paket a nie ACK paket.
Pricinou moznosti zvolenia medzi testami SYN a ACK ping je
maximalizovat sancu obidenia firewallov. Vela administratorov nastavi
router a dalsie jednoduche firewally tak, ze blokuju prichadzajuce SYN pakety okrem
tych, ktore su urcene pre verejne sluzby ako napr. webova stranka spolocnosti alebo postovy server.
Toto brani pred dalsimi prichodzimi spojeniami k organizacii, zatial co
pouzivatelia mozu nadvazovat neobmedzene vychadzajuce spojenia na internet.
Tento bezstavovy pristup zabera malo systemovych prostriedkov na firewalle alebo routeri
a je siroko podporovany v hardwarovych a softwarovych filtroch.
Linuxovsky firewallovy software Netfilter/iptables ponuka
parameter
--syn na realizaciu tejto bezstavovej metody.
Ak su zavedene taketo bezstavove pravidla, je mozne, ze testy SYN ping
(-PS) pri zatvorenych cielovych portoch budu blokovane.
V takychto pripadoch sa velmi zide test ACK, pretoze je schopny prejst tymito pravidlami.
Dalsi bezny typ firewallu pouziva stavove pravidla, ktore odhadzuju neocakavane
pakety. Tato funkcia bola spociatku implementovana hlavne na high-endovych firewalloch,
hoci sa v poslednych rokoch stala beznejsou.
Linuxovsky system Netfilter/iptables podporuje tuto funkciu cez parameter
--state, ktory triedi pakety na zaklade stavu spojenia.
Test SYN bude v takychto podmienkach pravdepodobne fungovat,
zatial co ACK pakety budu vseobecne povazovane za falosne a budu zahodene.
Riesenim tohoto problemu je vykonat oba testy SYN a ACK zadanim parametrov.
-PS a -PA. -
-PU [portlist] (Ping UDP) Dalsou moznostou zistenia hostitelskych stanic je UDP ping, ktory vysiela
prazdny UDP paket
(v pripade, ze nie je specifikovany parameter --data_length )
na dane cielove porty. Zoznam portov ma rovnaky format ako pri predtym
rozoberanych parametroch
-PS a -PA. Ak nie je specifikovane inac,
predvoleny port je 31338, co je mozne zmenit v case kompilacie zmenou premennej
DEFAULT_UDP_PROBE_PORT v suborenmap.h.
V predvolenom nastaveni sa pouziva velmi neobvykly port, pretoze odosielanie na otvorene porty
je casto nevyziadane v tomto specialnom type scanovania.
Po zisteni zatvoreneho portu na cielovej stanici
by mal UDP test vratit spravu ICMP Port unreachable.
To indikuje Nmapu, ze pocitac je aktivny a dostupny.
Mnoho dalsich chybovych sprav ICMP ako host/network unreachable alebo TTL exceeeded
indikuje neaktivnu alebo nedosiahnutelnu hostitelsku stanicu.
Touto cestou sa interpretuje aj neobdrzanie ziadnej odpovede.
Ak sa dosiahne otvoreny port, vacsina sluzieb jednoducho
ignoruje prazdny paket a nevratia ziadnu odpoved.
To je dovod, preco je predvolenym portom testu port 31338, u ktoreho je vysoka pravdepodobnost, ze
sa nebude pouzivat.
Niekolko sluzieb, napr. sluzba chargen, odpovie na prazdny UDP paket a takto
prezradi Nmapu, ze pocitac je dostupny.
Hlavna vyhoda tohoto typu scanu je, ze obchadza
tie firewally a filtre, ktore presetruju len TCP protokol.
Niekedy som napriklad vlastnil bezdratovy broadbandovy router
Linksys BEFW11S4. Externe rozhranie tohoto zariadenia filtrovalo vsetky TCP porty v predvolenom nastaveni.
ale UDP testy stale dokazali zistit spravy port unreachable a takto prezradit zariadenie.
-
-PE;
-PP;
-PM (Typy ICMP Pingu ) Okrem neobvyklych, predtym rozoberanych typov
TCP a UDP testov, Nmap dokaze odoslat normalne pakety
odoslane vsade sa vyskytujucim programom
ping. Nmap odosiela
paket typu 8(echo request) na cielove IP adresy stanic,
ocakavajuc, ze dostupne hostitelske stanice odpovedia spravou typu 0 (Echo Reply).
Nanestastie pre sietovych badatelov, mnoho hostitelskych stanic a firewallov v
sucasnosti blokuje tieto pakety namiesto odpovede podla normy
RFC
1122. Z tohoto dovodu su samotne ICMP scany
zriedkavo spolahlive pri nasadeni proti neznamym cielovym staniciam na internete, no
pre systemovych administratorov monitorujucich vnutornu siet mozu byt praktickou
a efektivnou metodou.
Tato moznost sa povoli zadanim parametra -PE. Aj ked echo request je standardnou poziadavkou ICMP pingu,
Nmap pokracuje dalej. Standard ICMP (RFC
792) takisto specifikuje poziadavky timestamp request, information
request a address mask request ako spravy s kodmi 13, 15,
a 17. Aj ked zdanlivy ucel pre tieto dotazy moze byt ziskanie informacii
ako napr. masky adresy alebo momentalny cas, mozu byt lahko pouzite
na zistovanie hostitelskych stanic. System, ktory odpovie, je aktivny a dostupny.
Nmap v sucanosti neimplementuje poziadavky information request, pretoze nie su siroko
podporovane. RFC 1122 trva na tom, ze
“hostitelska stanica by NEMALA implementovat tieto spravy”.
Dotazy na casove razitko a masku adresy mozu byt odoslane parametrami
-PP a -PM.
Odpoved timestamp reply (ICMP kod 14) alebo odpoved
mask reply (kod 18) prezradi to, ze hostitelska stanica je dostupna.
Tieto dve dotazy mozu byt cenne, ked administrator specificky
zablokuje pakety poziadavky echo request a zabudne pritom, ze na tento
ucel sa daju pouzit dalsie ICMP dotazy. -
-PR (Ping ARP ) Jeden z najbeznejsich pouzivatelskych scenarov pouzitia Nmapu je scanovanie lokalnej ethernetovej
siete. Vo vacsine takychto sieti, hlavne tych pouzivajucich privatne adresove rozsahy podla
RFC1918, je vacsina IP adries nepouzivana v lubovolnom casovom okamihu.
Ak sa Nmap pokusi o odoslanie neupraveneho IP paketu ako napr. ICMP echo request, operacny system
musi urcit adresu cieloveho zariadenia
(ARP) oodpovedajucu cielovej IP adrese, aby sa mohol
odoslat ethernetovy ramec s prislusnou adresou. Tento proces je casto pomaly
a problematicky, pretoze operacne systemy neboli vytvorene s ocakavanim,
ze budu musiet v kratkom casovom intervale vykonat miliony ARP dotazov na nedostupne hostitelske stanice. ARP scan prenechava zodpovednost pri poziadavkach ARP request na
Nmap a jeho optimalizovane algoritmy a ak je ziskana spiatocna odpoved,
Nmap sa nezaujima o IP ping pakety, pretoze uz vie, ze prislusna hostitelska
stanica je aktivna. Preto je ARP scan omnoho rychlejsi a spolahlivejsi ako scany zalozene na IP.
Takto sa to aj bezne vykonava, ked sa scanuju ethernetove
hostitelske stanice, ktore Nmap detekuje v lokalnej ethernetovej sieti, a to aj ked su pouzite
odlisne typy pingov(napriklad -PE alebo
-PS). Ak sa chcete predsa vyhnut ARP scanu, pouzite parameter
--send_ip. -
-n (Bez prekladu DNS)
Indikuje Nmapu, aby
nikdy nevykonaval reverzny preklad DNS
aktivnych IP adries, ktore najde. Kedze DNS je casto pomale, proces sa urychli. -
-R (DNS preklad pre vsetky cielove stanice)
Indikuje Nmapu, aby
vzdy vykonaval reverzny preklad cielovych IP adries.
Za normalnych podmienok sa to vykonava len ak je pocitac povazovany
za aktivny. -
--system_dns (Pouzit systemovy prekladac DNS)
V predvolenom nastaveni preklada Nmap IP adresy tak, ze
odosiela dotazy priamo DNS serverom nastavenym v lokalnej host. stanici
a potom caka na odpovede. Vela dotazov (casto tucty) sa vykonava paralelne kvoli
vykonu. Specifikovanim toho parametra sa namiesto toho pouzije systemovy prekladac.
(jedna IP adresa sucasne prostrednictvom volania getnameinfo()). Je to pomalsie a malokedy
pouzivane -- v pripade, ze sa v DNS kode Nmapu vyskytuje chyba, kontaktujte nas prosim.
Systemovy prekladac sa vzdy pouziva pre scany IPv6 protokolu.
-
--dns_servers <server1[,server2],...>
(Servery, ktore sa maju pouzit pre reverzne DNS dotazy)
Za normalnych okolnosti sa Nmap pokusi
urcit DNS servery z konfiguracneho suboru (UNIX) alebo registrov (Win32)
lokalneho pocitaca, avsak alternativne je mozne pouzit tuto moznost na zadanie vlastnych serverov.
Tento parameter sa nedodrzuje, pri pouziti parametra
--system_dns alebo scanu protokolu IPv6. Pouzitie viacerych DNS serverov
je casto rychlejsie ako odoslanie dotazov na jeden server.
|
|