NMAP(1) | [FIXME: manual] | NMAP(1) |
nmap - Nastroj na skumanie siete a scanner bezpecnosti/portov
nmap [Typ scanu...] [Moznosti] {Specifikacia cielovej stanice}
Nmap (“Network Mapper”) je open-source nastrojom na skumanie siete a kontrolu bezpecnosti. Bol vyvinuty s ohladom na rychle scanovanie velkych sieti, hoci funguje vyborne aj pri nasadeni proti jednotlivym hostitelom. Nmap neobvyklymi sposobmi pouziva neupravene IP pakety na urcenie hostitelskych stanic v sieti, sluzieb, ktore (aplikacia Nmap neobvyklym sposobom pouziva neupravene IP pakety na urcenie cisla a verzie) tieto hostitelske stanice ponukaju, na akom operacnom systeme (a verziach OS) bezia, aky typ paketovych filtrov alebo firewallu je pouzity, a mnoho dalsich charakteristickych veci. Hoci sa Nmap bezne pouziva na vykonavanie kontrol bezpecnosti, mnoho systemovych a sietovych administratorov ho vyuzije aj pri obvyklych ulohach ako napriklad obsah siete, sprava casovych rozvrhnuti upgradeovania sluzby ci monitorovanie uptimu hostitelskej stanice alebo sluzby.
Vystup aplikacie Nmap je tvoreny zoznamom scanovanych cielovych stanic s dodatocnymi informaciami o kazdom z nich v zavislosti na pouzitych moznostiach. Klucovou medzi tymito informaciami je “tabulka zaujimavych portov ”. Tato tabulka obsahuje zoznam cisla portu a protokolu, nazov sluzby a stav. Stav moze byt bud otvoreny, filtrovany, zatvoreny, alebo nefiltrovany. Otvoreny Open znamena, ze aplikacia na cielovom pocitaci nacuva spojeniam alebo paketom na tomto porte. Filtrovany znamena, ze nejaky firewall, filter alebo sietova prekazka blokuje port takym sposobom, ze Nmap nedokaze urcit, ci je port otvoreny alebo zatvoreny. Zatvorene porty neobsahuju ziadne na nich nacuvajuce aplikaciu, aj ked by sa mohli kedykolvek otvorit. Porty su oznacovane ako nefiltrovane ak reaguju na testovanie Nmapom, no Nmap nedokaze urcit, ci su otvorene alebo zatvorene. Nmap ohlasi kombinaciu stavov otvoreny|filtrovany a zatvoreny|filtrovany ak nedokaze urcit, ktory z dvoch stavov zodpoveda portu. . Ak bola vyzadovana detekcia verzie, tabulka portov moze takisto obsahovat podrobnosti o verzii softwaru. Ak je vyzadovany scan protokolu IP (-sO), Nmap poskytne informacie namiesto nacuvajucich portov informacie o podporovanych protokoloch IP.
Okrem tabulky zaujimavych portov dokaze Nmap poskytnut dalsie informacie o cielovych staniciach, vratane reverznych nazvov DNS, odhadov operacneho systemu, typoch zariadeni a MAC adries.
Typicky Nmap scan je zobrazeny na tomto mieste.Príklad 1, “Ukazkovy Nmap scan”. Jedinymi parametrami Nmapu pouzitymi v tomto priklade su -A, na povolenie detekcie OS a verzie,-T4 kvoli rychlejsiemu behu programu, a dva hostitelske nazvy cielovych stanic.
Príklad 1. Ukazkovy Nmap scan
# nmap -A -T4 scanme.nmap.org playground Starting nmap ( http://www.insecure.org/nmap/ ) Interesting ports on scanme.nmap.org (205.217.153.62): (The 1663 ports scanned but not shown below are in state: filtered) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) 53/tcp open domain 70/tcp closed gopher 80/tcp open http Apache httpd 2.0.52 ((Fedora)) 113/tcp closed auth Device type: general purpose Running: Linux 2.4.X|2.5.X|2.6.X OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 Uptime 33.908 days (since Thu Jul 21 03:38:03 2005) Interesting ports on playground.nmap.org (192.168.0.40): (The 1659 ports scanned but not shown below are in state: closed) PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 389/tcp open ldap? 445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds 1002/tcp open windows-icfw? 1025/tcp open msrpc Microsoft Windows RPC 1720/tcp open H.323/Q.931 CompTek AquaGateKeeper 5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900) 5900/tcp open vnc VNC (protocol 3.8) MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) Device type: general purpose Running: Microsoft Windows NT/2K/XP OS details: Microsoft Windows XP Pro RC1+ through final release Service Info: OSs: Windows, Windows XP Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds
Najnovsia verzia Nmapu sa nachadza na adrese http://www.insecure.org/nmap/. Najnovsia verzia manualu je k dispozicii na adrese http://www.insecure.org/nmap/man/.
Tato slovenska verzia referencnej prirucky Nmapu bola prelozena z verzie 2991 povodnej anglickej verzie[1] Stanislavom Sivakom. Dufam sice, ze tento preklad viac spristupni Nmap slovensky hovoriacim ludom na celom svete, ale nemozem zarucit, ze preklad je taky uplny alebo aktualny ako oficialna anglicka verzia. Toto dielo moze byt modifikovane a siritelne podla podmienok licencie Creative Commons Attribution License[2].
Tento zoznam moznosti sa zobrazi, ak je Nmap spusteny bez parametrov a jeho najnovsia verzia je k dispozii na adrese http://www.insecure.org/nmap/data/nmap.usage.txt. Pomaha ludom zapamatat si najbeznejsie moznosti, ale nie je nahradou za podrobnu dokumentaciu v zostavajucej casti tohoto manualu. Na tomto mieste nie su dokonca uvedene niektore malo zname, nejasne moznosti.
Pouzitie: nmap [Typ(y) scanu] [Moznosti] {specifikacia cielovej stanice} SPECIFIKACIE CIELOVEJ STANICE:
Je mozne zadat hostitelsky nazov stanice, IP adresy, siete atd.
Priklad: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL <inputfilename>: Pouzit ako vstup zoznam hostistelskych stanic alebo sieti
-iR <num hosts>: Zvolit nahodne cielove stanice
--exclude <host1[,host2][,host3],...>: Vynechat hostitelske stanice alebo siete
--excludefile <exclude_file>: Vynechat zoznam zo suboru ZISTOVANIE HOSTITELSKEJ STANICE:
-sL: List Scan - zobrazit zoznam cielovych stanic, ktore sa maju scanovat
-sP: Ping Scan - nevykonat nic ine okrem zistenia, ci je hostitelska stanice online
-P0: Treat all hosts as online -- preskocit zistovanie hostitelskych stanic
-PS/PA/PU [portlist]: pre zadane porty vykonat zistenie protokolov TCP SYN/ACK alebo UDP
-PE/PP/PM: vyskusat ICMP echo, parameter timestamp a poziadavku na sietovu masku
-n/-R: Nikdy nevykonavat DNS preklad/Vzdy vykonavat preklad DNS [povodne nastavenie: niekedy]
--dns-servers <serv1[,serv2],...>: Zadat vlastne servery DNS
--system-dns: Pouzit prekladac DNS operacneho systemu SPOSOBY SCANOVANIA:
-sS/sT/sA/sW/sM: Scan typu TCP SYN/Connect()/ACK/Window/Maimon
-sN/sF/sX: Scany typu TCP Null, FIN a Xmas
--scanflags <flags>: Nastavit vlastne flagy scanu TCP scan
-sI <zombie host[:probeport]>: Scan typu Idlescan
-sO: Scan protokolu IP
-b <ftp relay host>: Scan vyuzivajuci FTP bounce SPECIFIKACIA PORTOV A PORADIE SCANOVANIA:
-p <port ranges>: Len specifikovane porty
Priklad: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
-F: Fast - Vykonat scan len na portoch zahrnutych v subore nmap-services
-r: Scanovat porty postupne a nie nahodne DETEKCIA SLUZBY/VERZIE:
-sV: Testovat otvorene porty na urcenie informacii o sluzbe/verzii
--version-light: Kvoli rychlejsej identifikacii sluzby/verzie vykonat len tie
najpravdepodobnejsie testy
--version-all: Vykonat vsetky mozne testy
--version-trace: Zobrazit podrobnosti o priebehu scanovanie verzie (pre ucely debugovania) DETEKCIA OS:
-O: Povolit detekciu OS
--osscan-limit: Zuzit detekciu OS len na slubne vyzerajuce cielove stanice
--osscan-guess: Pouzit agresivnejsiu detekciu OS CASOVANIE A VYKON:
-T[0-5]: Nastavit casovaciu sablonu (vyssie cislo zodpoveda rychlejsej sablone)
--min-hostgroup/max-hostgroup <size>: Velkosti skupin paralelnych scanov
--min-parallelism/max-parallelism <msec>: Paralelizacia testu
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msec>: Udava
velkost hodnoty RTT testu
--max-retries <tries>: Udava pocet retransmisii testu scanovania portov.
--host-timeout <msec>: Po uplynuti tohoto casoveho limitu ukoncit test cielovej stanice
--scan-delay/--max-scan-delay <msec>: Prisposobit oneskorenie medzi testami OBIDENIE FIREWALLU/IDS A FALSOVANIE:
-f; --mtu <val>: Fragmentovat pakety ( s pridanou moznostou fragmentovania podla velkosti MTU)
-D <decoy1,decoy2[,ME],...>: Ukryt scan pouzitim trikov
-S <IP_Address>: Sfalsovat zdrojovu adresu
-e <iface>: Pouzit zadane rozhranie
-g/--source-port <portnum>: Pouzit dane cislo portu
--data-length <num>: Do odosielanych paketov vlozit nahodne data
--ttl <val>: Nastavit velkost polozky time-to-live protokolu IP
--spoof-mac <mac address/prefix/vendor name>: Sfalsovat MAC adresu aktualneho pocitaca
--badsum: Odoslat pakety s falosnym kontrolnym suctom TCP/UDP VYSTUP:
-oN/-oX/-oS/-oG <file>: Vystup scanu zadaneho suboru vo formate obycajnom, XML, s|<rIpt kIddi3,
a Grep.
-oA <basename>: Vystup sucasne vo vsetkych troch hlavnych formatoch
-v: Zvysit uroven priebezneho vystupu (pre vacsi ucinok pouzit dvakrat)
-d[level]: Nastavit alebo zvysit uroven debugovania (Zmysel maju hodnoty do 9)
--packet-trace: Zobrazit vsetky odoslane a prijate pakety
--iflist: Vytlacit rozhrania hostitelskej stanice a trasy (pre ucely debugovania)
--append-output: Namiesto vymazania dat suborov pridat vystup k datam zadanych vystupnych suborov
--resume <filename>: Pokracovat v prerusenom scane
--stylesheet <path/URL>: Na prenesenie vystupu vo formate XML do formatu HTML pouzit stylesheet XSL
--webxml: Na ziskanie prenositelnejsieho formatu XML pouzit referencny stylesheet zo stranky Insecure.Org
--no-stylesheet: Nepouzivat stylesheet pre vystup v XML ROZNE:
-6: Povolit scan pre protokol IPv6
-A: Povolit detekciu OS a verzie
--datadir <dirname>: Zadat vlastne umiestnenie datoveho suboru pre Nmap
--send-eth/--send-ip: Odoslat pouzitim neupravenych ethernetovych ramcov alebo IP paketov
--privileged: Usudzovat, ze uzivatel ma plne opravnenia
-V: zobrazit cislo verzie
-h: zobrazit suhrn tejto stranky napovedy. PRIKLADY:
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
Vsetko v prikazovom riadku Nmapu co nie je parametrom (alebo argumentom parametra) sa povazuje za specifikaciu cielovej stanice. Najjednoduchsim pripadom je specifikovat cielovu IP adresu alebo hostitelsky nazov stanice, ktora sa ma scanovat.
Niekedy je potrebne scanovat celu siet susednych hostitelskych stanic. Pre tento ucel podporuje Nmap adresovanie typu CIDR. K IP adrese alebo hostitelskemu nazvu je mozne pripojit /numbits a Nmap vykona scan kazdej IP adresy, u ktorej sa zhoduju prve numbits s referencnou IP adresou alebo hostitelskym nazvom. Napriklad po zadani adresy v tvare 192.168.10.0/24 by sa scanovalo 256 hostitelskych stanic medzi 192.168.10.0 (v binarnom tvare: 11000000 10101000 00001010 00000000) a 192.168.10.255 (v binarnom tvare: 11000000 10101000 00001010 11111111), vratane. Zadanie adresy 192.168.10.40/24 by sposobilo presne to iste. Za predpokladu, ze nazov scanme.nmap.org je na IP adrese 205.217.153.62, specifikacia scanme.nmap.org/16 sposobi, ze by sa scanovalo 65,536 IP adries medzi adresami 205.217.0.0 a 205.217.255.255. Najmensia povolena hodnota je /1, co sposobi scanovanie polovice internetu. Najvacsia hodnota je 32, co ma za nasledok scanovanie len spomenutej hostitelskej stanice, pretoze vsetky bity IP adresy su pevne.
Zapis typu CIDR je sice kratky, no nie vzdy dostatocne flexibilny. Napriklad, ak je potrebne scanovat adresy v rozsahu 192.168.0.0/16, ale pritom preskocit vsetky adresy zakoncene .0 alebo .255, pretoze bezne su to broadcastove adresy. Nmap to podporuje pomocou pouzitia specifikacie jednotlivych oktetov adresy. Namiesto zadania obycajnej IP adresy je mozne specifikovat zoznam cisel alebo rozsah pre kazdy oktet, oddeleny ciarkou. Rozsah 192.168.0-255.1-254 napriklad preskoci vsetky adresy v zadanom rozsahu, ktore obsahuju na konci .0 alebo .255. Rozsahy sa nemusia viazat len na posledne oktety: specifikacia 0-255.0-255.13.37 vykona scan vsetkych adries na internete konciace oktetmi 13.37. Tento druh specifikacie sa moze hodit pri skumani internetu a vyskume.
Adresy protokolu IPv6 mozu byt specifikovane len plne urcenou IPv6 adresou alebo hostitelskym nazvom. Zapisy typu CIDR a rozsahy oktetov nie su podporovane pre IPv6, pretoze su zriedkavo uzitocne.
Nmap akceptuje viacnasobne specifikacie hostitelskych stanic v prikazovom riadku, ktore pritom nemusia byt rovnakeho typu. Prikaznmap scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.0-255 funguje podla ocakavania.
Zatial co su cielove stanice obvykle specifikovane v prikazovom riadku, je mozne tiez specifikovat nasledujuce moznosti, a tym riadit vyber cielovych stanic:
-iL <inputfilename> (Vstup zo zoznamu)
-iR <num hosts> (Vybrat nahodne cielove stanice)
--exclude <host1[,host2][,host3],...> (Vynechat hostitelske stanice alebo siete)
--excludefile <exclude_file> (Vynechat subor zo zoznamu)
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)
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)
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)
-PS [portlist] (Ping TCP SYN )
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)
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)
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 )
Aj ked echo request je standardnou poziadavkou ICMP pingu, Nmap pokracuje dalej. Standard ICMP (RFC 792[4]) 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 )
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)
-R (DNS preklad pre vsetky cielove stanice)
--system-dns (Pouzit systemovy prekladac DNS)
--dns-servers <server1[,server2],...> (Servery, ktore sa maju pouzit pre reverzne DNS dotazy)
Aj ked Nmap ziskal rokmi vacsiu funkcionalitu, zacinal ako efektivny scanovac portov a to aj zostava jeho hlavnou funkciou. Jednoduchy prikaz nmap target scanuje viac ako 1660 TCP portov cielovej stanice target. Zatial co mnoho scanovacov portov tradicne deli vsetky porty na otvorene alebo zatvorene, Nmap pouziva granularnejsi pristup. Deli porty do 6 stavov: otvoreny, zatvoreny, filtrovany, nefiltrovany, otvoreny|filtrovany, alebo zatvoreny|filtrovany.
Tieto stavy nie su pravymi vlastnostami samotneho portu, ale opisuju, ako ich vidi Nmap. Napriklad ak scan z tej istej siete, v akej sa nachadza cielova stanica moze odhalit port 135/tcp ako otvoreny, kym scan v rovnakom case a parametrami z internetu mozu odhalit, ze port je filtrovany.
Sest stavov portov rozpoznavanych Nmapom
otvoreny
zatvoreny
filtrovany
nefiltrovany
otvoreny|filtrovany
zatvoreny|filtrovany
Ako novacik pokusajuci sa opravit auto, mozem sa trapit dlhe hodiny, aby som nasiel vhodne zakladne naradie (kladivo, lepiaca paska, kluc, atd) na danu ulohu. Ked sa uz citim utrapene a odtiahnem svoj vrak ku naozajstnemu mechanikovi, ten stale obchadza auto s velkou debnou naradia, az kym nevylovi tu vecicku co z prace urobi hracku. Podobne je aj umenie scanovania. Experti ovladaju kopu metod scanovania a zvolia prislusnu (alebo kombinaciu) pre danu ulohu. Na druhej strane neskuseni pouzivatelia a rychlokvaseni majstri v praci so skriptom budu riesit kazdy problem predvolenym SYN scanom. Kedze Nmap je zadarmo, jedinou barierou pred majstrovstvom v scanovani portov je vedomost, co urcite poraza svet automobilov, kde zistenie potreby pruzinoveho kompresora stale vyzadujuce zaplatit zan tisice dolarov, moze vyzadovat velke zrucnosti.
Vacsina typov scanov je dostupna len pre privilegovanych pouzivatelov, z toho dovodu, ze posielaju a prijimaju neupravene pakety, co si na UNIXovych systemoch vyzaduje pristup roota. Na platforme Windows sa odporuca administratorsky ucet, hoci po nahrati kniznice WinPcap do OS funguje niekedy Nmap aj pre neprivilegovanych pouzivatelov. V roku 1997 po vydani Nmapu bola otazka privilegii roota dost vaznym obmedzenim, kedze mnohi pouzivatelia mali pristup len ku shared shell uctu. Svet sa vsak zmenil. Pocitace su lacnejsie, ovela viac ludi ma teraz neprestajny priamy pristup na internet a UNIXove systemy pre desktop (vratane Linuxu a MAC OS X) su rozsirene. Dostupna je aj verzia Nmapu pre Windows, co dovoluje spustit program na este viac desktopoch. Z tychto vsetkych dovodov nemaju pouzivatelia taku potrebu spustat Nmap z obmedzenych shared shell uctov. To je stastne, pretoze parametre vyzadajuce privilegia robia z Nmapu ovela mocnejsi a flexibilnejsi nastroj.
Nmap sa sice pokusa produkovat presne vysledky, ale je dolezite si uvedomovat, ze vsetko jeho chapania problemu su zalozene na paketoch odoslanych cielovymi pocitacmi alebo firewallmi pred nimi. Taketo hostitelske stanice mozu byt nedoveryhodne a posielat zamerne matuce odpovede a uviest Nmap do omylu. Ovela beznejsie su vsak hostitelske stanice nevyhovujuce standardu RFC, ktore neodpovedaju na testy Nmapom tak ako by mali. Specialne nachylne na tento problem su scany typu FIN, Null a Xmas. Taketo potiaze su specificke pre iste typy scanov a su rozobrate v zaznamoch o jednotlivych typoch scanov.
Tento cast dokumentuje asi tucet metod scanovania portov podporovanych Nmapom. Len jedna metoda moze byt pouzita sucasne, s vynimkou UDP scanu (-sU), ktory moze byt kombinovany s lubovolnym dalsim TCP scanom. Ako pomocka pre pamat, parametre typu scanovania portov su vo formate -sC, kde C predstavuje hlavny znak v nazve scanu, obycajne ten prvy. Vynimkou je uz odmietnuty FTP bounce scan (-b). V predvolenom nastaveni vykonava Nmap SYN scan, hoci ak pouzivatel nema dostatocne privilegia alebo ciele IPv6 neboli specifikovane, nahradzuje ho volanim Connect(), aby sa mohli odoslat neupravene pakety (to vyzaduje pristup roota na UNIXovych pocitacoch). Zo vsetkych spomenutych scanov mozu pouzivatelia bez privilegii spustit len scany connect() a ftp bounce.
-sS (Scan TCP SYN )
Na tuto metodu sa casto odkazuje ako na polootvorene scanovanie,pretoze nie je potrebne otvarat plne TCP spojenie. Odosle sa SYN paket ako keby sa nadvazovalo skutocne spojenie a potom sa caka na spojenie. Prichodzi SYN/ACK paket indikuje, ze port nacuva (je otvoreny), kym RST (reset) naznacuje, ze port nenacuva. Ak sa neodosle ziadna odpoved ani po niekolkych retransmisiach, port sa oznaci ako filtrovany. Taketo oznacenie sa pouzije, aj ked pride chybova sprava ICMP unreachable error (typ 3, kody 1,2, 3, 9, 10, alebo 13).
-sT (Scan TCP connect())
Ak je dostupny SYN scan, je obycajne lepsou volbou. Nmap ma mensiu kontrolu nad vysokourovnovym volanim connect() ako nad neupravenymi paketmi, co sposobuje horsiu efektivnost.Systemove volanie dokoncuje nadvazovanie spojeni k otvorenym portom cieloveho hostitela namiesto vykonania polootvoreneho resetu, ktory vykonava SYN scan. Tento postup nielenze trva dlhsie, ale takisto vyzaduje viac paketov na ziskanie tych istych informacii a cielove pocitace budu spojenie pravdepodobne zaznamenavat do logu. Poriadny IDS to sice tiez zachyti, ale vacsina pocitacov nema takyto system. Ked sa Nmap pripoji a potom zavrie spojenia bez odoslania dat, vacsina sluzieb na priemernom UNIXovom system prida poznamku do syslogu. Niektore fakt ubohe sluzby mozu pritom spadnut, ale to je nezvycajne. Administrator, ktory vidi v logu niekolko pokusov o spojenie od jedneho systemu by mal vediet, ze bol scannovany s ohladom na nadviazanie spojenia.
-sU (UDP scany)
UDP scan je mozne spustit parametrom -sU. Moze sa kombinovat s TCP scanom ako napr. SYN scan (-sS) a tak sa mozu skontrolovat oba protokoly pocas jedneho spustenia.
UDP scan funguje tak, ze odosle kazdemu cielovemu portu prazdnu hlavicku UDP header bez dat. Ak sa vrati chybova sprava ICMP port unreachable error (typ 3, kod 3) port je zatvoreny. Ostatne chybove spravy ICMP (typ 3, kody 1, 2, 9, 10 alebo 13) oznacuju port ako filtrovany. Prilezitostne moze sluzba odpovedat UDP paketom a tym dokaze, ze port je otvoreny. Ak sa po opakovanych retransmisiach neobjavi ziadna odpoved, port je oznaceny ako otvoreny|filtrovany. To znamena, ze port by mohol byt otvoreny alebo mozno paketove filtre blokuju komunikaciu. Na pomoc pri odliseni otvorenych a filtrovanych portov sa moze pouzit parameter (-sV).
Velkou vyzvou pre scanovanie UDP je rychlost. Otvorene a filtrovane porty malokedy posielaju odpoved a tak pre vyprsi casovy limit, co vyusti v dalsie retransmisie pre pripad, ze sa test alebo odpoved mohli v sieti stratit. Zatvorene porty su casto vacsim problemom. Obycajne odosielaju spat chybovu spravu ICMP port unreachable error, no na rozdiel od RST paketov odosielanych zatvorenymi TCP portmi ako odpoved na SYN alebo Connect scan, , mnoho hostitelskych stanic standardne pouziva limit takychto odoslanych chybovych sprav. Specialne prisne na tento fakt su Linux a Solaris. Napriklad linuxove jadro 2.4.20 dava obmedzenie na spravy typu destination unreachable v pocte jedna sprava za sekundu (v subore net/ipv4/icmp.c).
Nmap detekuje obmedzenie v pocte a podla toho sa spomali, aby sa vyhol zaplaveniu siete nepotrebnymi paketmi, ktore by cielova stanica zahodila. Linuxovske obmedzenie 1 paket za sekundu nanestastie sposobuje, ze by scan 65536 portov trval 18 hodin. Napady ako tento proces urychlit su napr.scanovanie viacerych hostov sucasne , vykonat najprv rychly scan popularnych portov, scanovat spoza firewallu alebo pouzitie parametru --host-timeout na preskocenie pomalych hostitelskych stanic.
-sN; -sF; -sX (TCP Null, FIN a Xmas scany)
Ak sa scanuju systemy zodpovedajuce tomuto textu RFC, lubovolny paket neobsahujuci nastavene bity SYN, RST ani ACK vyvola odpoved s RST bitom, ak bol port zatvoreny a ziadnu odpoved, ak je port zatvoreny. Pokial nie su zahrnute ziadne z tychto troch bitov, je v poriadku lubovolna kombinacia flagov (FIN, PSH a URG). Nmap ich vyuziva pomocou tychto troch typov scanov:
Null scan (-sN)
FIN scan (-sF)
Xmas scan (-sX)
Tieto tri typy scanov maju rovnake spravanie az na to nastavenie TCP flagov. Ak dojde ako odpoved RST paket, port sa povazuje za zatvoreny, kym ziadna odpoved znaci otvoreny|filtrovany. Port sa oznaci ako filtrovany ak dorazi chybova sprava ICMP unreachable (typ 3, kod 1, 2, 3, 9, 10 alebo 13).
Klucovou vyhodou tychto typov scanov je, ze sa dokazu pretlacit cez iste bezstavove firewally a routre s filtrovanim paketov. Okrem toho su este viac tajnejsie ako SYN scan, no neda sa na to spoliehat -- vacsina modernych IDS sa da nastavit tak, aby ich detekovala. Velkou nevyhodou je, ze cely rad systemov sa nedrzi do pismena standardu RFC 793, posielaju odpovede RST bez ohladu na to, ci je port otvoreny alebo zatvoreny. Preto su vsetky taketo porty oznacovane ako closed. Hlavne operacne systemy s takymto spravanim su Microsoft Windows, mnohe zariadenia Cisco , BSDI a IBM OS/400. Tento scan vsak funguje na mnohe UNIXovske systemy. Dalsim hacikom tychto scanov je, ze nedokazu rozlisit otvorene porty od istychfiltrovanych, takze vyvolaju odpoved otvoreny|filtrovany.
-sA (Scan TCP ACK)
Testovaci ACK Paket ma nastaveny len ACK flag (ak nie je pouzity parameter --scanflags). Ak sa scanuju nefiltrovane systemy, stavy portov otvoreny a zatvoreny vratia zhodny RST paket. Nmap ich potom oznaci ako nefiltrovane, co znamena, ze su dostupne pomocou ACK paketu , ale nie je rozpoznane, ci su otvorene alebo zatvorene. Porty, ktore neodpovedia ci odoslu spat nejaku chybovu spravu ICMP (typ 3, kod 1,2,3,9,10 alebo 13) su oznacene ako filtrovane.
-sW (Scan TCP Window)
Tento typ scanu sa spolieha na implementacny detail mensiny systemov na internete, takze mu nie je mozne vzdy doverovat. Systemy ktore to nepodporuju obycajne vratia vsetky porty v stave zatvoreny. Je samozrejme mozne, ze pocitac nema ziadne otvorene porty. Ak je vacsina scanovanych portov zatvorena, ale niekolko beznych portov (napr. 22, 25, 53) je v stave filtrovany system je pravdepodobne nachylny na tento scan. Zriedkavo mozu systemy vykazat presne opacne spravanie. Ak je scan ukaze, ze je 1000 otvorenych portov a 3 zatvorene alebo filtrovane , tieto tri porty mozu byt pokojne tie otvorene.
-sM (Scan TCP Maimon)
--scanflags (Vlastny TCP scan)
Argumentom parametru--scanflags moze byt hodnota cisla flagu ako napr. 9 (PSH a FIN), no je jednoduchsie pouzivat nazvy, staci zlepit dokopy lubovolnu kombinaciu flagov URG, ACK, PSH, RST, SYN a FIN. Napriklad --scanflags URGACKPSHRSTSYNFIN nastavi vsetko, hoci to nie je prilis uzitocne pre scanovanie. Poradie nazvov nie je dolezite.
Okrem specifikovanie ziadanych flagov je mozne zadat typ TCP scanu (napriklad-sA alebo -sF), co Nmapu napovie ako interpretovat odpovede. Napriklad SYN scan povazuje absenciu odpovede za port so stavom filtrovany, kym FIN scan odpovie na rovnaku situaciu otvoreny|filtrovany. Nmap bude postupovat presne tak ako pri zakladnych typoch scanu, no pouzije TCP flagy, ktore budu zadane. Ak nie je zadany zakladny typ scanu, pouzije sa SYN scan.
-sI <zombie host[:probeport]> (Scan naprazdno - Idlescan)
Okrem toho, ze tento scan je vynimocne nenapadny (kvoli svojej slepej povahe), umoznuje zmapovat doveryhodne vztahy medzi pocitacmi zalozene na IP adrese. Zoznam portov zobrazuje otvorene porty z pohladu zombie hostitela. Takze je mozne pokusit sa o scan cielovej stanice pouzitim roznych zombie pocitacov, o ktorych si myslite, ze su doveryhodne (pomocou pravidiel routra alebo paketoveho filtra).
Ak sa ma na strane zombie pocitaca testovat specificky port kvoli zmenam hodnoty IPID, pridajte dvojbodku nasledovanu cislom portu. Inak Nmap pouzije povodny port urceny na tcp pingovanie - 80.
-sO (Scan protokolu IP)
Okrem toho, ze je uzitocny vo vlastnom zmysle, scan protokolov demonstruje silu open-source softwaru. Zatial co zakladna myslienka je dost jednoducha, nerozmyslal som nad jej pridanim ani som nedostal poziadavky o takuto funkcionalitu. Potom vsak v lete roku 2000 dostal Gerhard Rieger tento napad, napisal excelentny patch, ktory to implementoval a poslal ho do mailing listu skupiny hackerov nmapu. Tento patch som vlozil do stromu Nmapu a na dalsi den vydal novu verziu. Len malo zastupcov komercneho softwaru ma nadsenych uzivatelov, ktori vytvaraju a prispievaju svojimi vylepseniami.
Scan protokolu funguje podobne ako UDP scan. Namiesto iterovania cez cisla portov v policku UDP paketu vysiela Nmap hlavicky IP paketu a iteruje cez 8-bitove policko IP protokolu. Hlavicky su zvycajne prazdne, neobsahuju data a ani patricnu hlavicku pre vyhlaseny protokol. Troma vynimkami su protokoly TCP, UDP a ICMP. Tu je patricna hlavicka protokolu zahrnuta, pretoze niektore systemy ich inak neodoslu a pretoze uz Nmap obsahuje funkcie na ich vytvorenie. Namiesto pozorovania sprav ICMP port unreachable protocol sa scan zaujima o spravy ICMP protocol unreachable. Ak Nmap prijme od cieloveho hostitela akukolvek odpoved akehokolvek protokolu, Nmap oznaci protokol ako otvoreny. Chybova sprava ICMP protocol unreachable(typ 3, kod 2) sposobi, ze sa protokol oznaci ako zatvoreny Dalsie chybove spravy ICMP unreachable (typ 3, kod 1, 3, 9, 10 alebo 13) sposobia stav protokolu ako filtrovany (hoci v rovnakom momente dokazuju, ze je otvoreny). Ak sa neobdrzi ziadna odpoved po retransmisiach, protokol sa oznaci ako otvoreny|filtrovany.
-b <ftp relay host> (FTP bounce scan)
Tato zranitelnost bola siroko rozsirena v roku 1997, ked bol Nmap vydany, no bola do velkej miery opravena. Zranitelne servery su stale naokolo, takze stoji to za to vyskusat ich. Ak je cielom obist firewall, je mozne scanovat cielovu siet s cielovym portom 21 (alebo aj akekolvek ftp sluzby ak sa scanuju vsetky porty s detekciou verzie) a potom vyskusat spustit scan bounce scan ftp. Nmap prezradi, ci je hostitelska stanica zranitelna alebo nie. Ak sa pokusate len zakryt svoje stopy, nie je nevyhnutne (a v skutocnosti by sa ani nemalo) obmedzovat sa na hostitelske stanice v cielovej sieti. Pred scanovanim nahodnych internetovych adries na zistenie zranitelnych FTP serverov zoberte do uvahy, ze systemovym administratorom sa nemusi pacit zneuzitie ich serverov takymto sposobom.
Okrem vyssie rozoberanych scanov ponuka Nmap moznosti na specifikaciu scanovanych portov a ci ma byt poradie scanov nahodne alebo sekvencne. V predvolenom nastaveni scanuje Nmap vsetky porty do a vratane 1024 tak ako aj vyssie cisla portov zobrazenych pre scanovane protokoly v subore nmap-services.
-p <port ranges> (Scanovat len specifikovane porty)
Ak sa scanuju TCP aj UDP porty, mozete prislusny protokol charakterizovat pismenami T: alebo U: predchadzajucimi cislo portu. Toto pismeno plati az kym nespecifikujete dalsie pismeno. Napriklad argument -p U:53,111,137,T:21-25,80,139,8080 bude scanovat UDP porty 53,111 a 137 a takisto spomenute TCP porty. Na to, aby sa scanovali TCP aj UDP, je potrebne zadat parameter -sU a aspon jeden typ TCP scanu (napriklad -sS, -sF alebo -sT). Ak nie je zadane ziadne urcujuce pismeno, cisla portov su pridane do zoznamu vsetkych protokolov.
-F (Rychly scan s limitovanym poctom portov)
-r (Nevyberat porty nahodne)
Pouzite Nmap na vzdialeny pocitac a ten potom moze prezradit, ze porty 25/tcp, 80/tcp a 53/udp su otvorene. Pouzitim svojej databazy nmap-services s obsahom okolo 2,200 znamych sluzieb, by dokazal Nmap oznamit, ze tieto porty pravdepodobne patria postovemu serveru (SMTP) webovemu serveru (HTTP) a DNS serveru (DNS). Toto vyhladanie je obycajne presne - drviva vacsina daemonov nacuvajucich na TCP porte 25 su v skutocnosti postove servery, no urcite sa na tomto neda stavit bezpecnost, ludia mozu mat spustene sluzby na zvlastnych portoch.
Aj ked ma Nmap pravdu a hypoteticky server ma spustene servery SMTP, HTTP a DNS, neznamena to vela informacii. Ked vykonavate odhady zranitelnosti alebo hoci aj jednoduche supisy siete vasich firiem alebo klientov, chcete naozaj vediet aj to, ake mailove a DNS servery a ich verzie su spustene. Ziskanie presneho cisla verzie pomaha dramaticky urcit, pred akymi zneuzitim je server zranitelny. Detekcia verzie pomaha zistit tuto informaciu.
Po zisteni TCP alebo UDP portov pomocou jednej z metod scanu, detekcia verzie skuma tieto porty, aby zistila, co na nich bezi.Subor s databazou nmap-service-probes obsahuje testy na dotazovanie rozlicnych sluzieb a zodpovedajucih vyrazov na rozpoznanie a vykonanie rozboru odpovedi. Nmap sa pokusa urcit protokol sluzby (napriklad ftp, ssh, telnet, http), nazov aplikacie (napriklad ISC Bind, Apache httpd, Solaris telnetd), cislo verzie, hostitelsky nazov, typ zariadenia(napr. tlaciaren, router), skupinu OS (napr. Windows, Linux) a niekedy rozlicne podrobnosti ako napr. ci je X server otvoreny spojeniam verziu SSH protokolu alebo pouzivatelske meno v programe KaZaA). Samozrejme, ze vacsina sluzieb neposkytuje tieto informacie. Ak bol Nmap kompilovany s podporou OpenSSL , pripoji sa k SSL serverom, aby urcil sluzbu nacuvajucu za zasifrovanou vrstvou. Ked su objavene RPC sluzby, automaticky sa pouzije Nmap RPC grinder (-sR) na urcenie RPC programu a cisla verzie. Po tom, co scan UDP portov nie je schopny urcit, ci je port otvoreny alebo zatvoreny, niektore UDP porty su oznacene v stave otvoreny|filtrovany. Detekcia verzie sa bude snazit vyvolat odpoved tychto portov (presne tak ako aj pri otvorenych portoch) a stav sa moze zmenit na otvoreny, ak tato detekcia uspeje. Pri otvorenych|filtrovanych TCP portoch sa postupuje tou istou cestou. Je potrebne si vsimnut, ze parameter Nmapu -A medzi inym ponuka detekciu verzie. Dokument opisujuci priebeh, pouzitie a vlastne prisposobenie detekcie verzie je dostupny na adrese http://www.insecure.org/nmap/vscan/.
Ak Nmap dostane odpovede od sluzby, ale nevie ju priradit ziadnej polozke v databaze, zobrazi specialny fingerprint a takisto adresu URL, kde mozete odoslat odpoved, ak ju poznate. Venujte prosim tejto operacii niekolko minut, aby bola na prospech kazdemu. Vdaka tymto odpovediem ma Nmap okolo 3,000 zodpovedajucich vzorov pre viac ako 350 protokolov napr. smtp, ftp, http, atd.
Detekcia verzie sa povoli a da sa ovladat nasledujucimi parametrami:
-sV (Detekcia verzie)
--allports (Pri detekcii verzie nevynechavat ziadne porty)
--version-intensity <intensity> (Nastavit intenzitu scanovania verzie)
--version-light (Povolit light mod )
--version-all (Vyskusat kazdy test)
--version-trace (Sledovat cinnost scanovania verzie)
-sR (RPC scan)
Jedna z najznamejsich funkcii Nmapu je vzdialena detekcia OS pomocu fingerprintingu stacku TCP/IP. Nmap odosiela vzdialenej hostitelskej stanici rad TCP a UDP paketov a potom skuma kazdy bit odpovedi. Po vykonani serie testov ako napr. sampling TCP ISN, poradie a podpora moznosti TCP, sampling IPID a pociatocna kontrola velkosti okienka porovnava Nmap vysledky so databazou nmap-os-fingerprints skladajucej sa z viac ako 1500 znamych odtlackov OS a pri zhode zobrazi podrobnosti o OS. Kazdy fingerprint zahrna textovy popis OS vo volnom formate a klasifikaciu poskytujucu nazov vyrobcu OS (napr. Sun), zakladny typ OS Each fingerprint includes a freeform textual description of the (napr. Solaris), generacia OS (napr. 10) a typ zariadenia (bez specialneho ucelu, router, switch, herna konzola, atd).
Ak Nmap nedokaze odhadnut OS pocitaca a podmienky su pritom dobre (napr. zistilo sa, ze aspon 1 port je otvoreny a aspon 1 zatvoreny), Nmap poskytne adresu URL, na ktorej mozete zadat fingerprint, ak ste si isty OS beziacom na vasom pocitaci. Tymto prispievate do mnoziny operacnych systemov znamych Nmapu a proces sa spresnuje pre kazdeho dalsieho.
Detekcia OS umoznuje vykonanie niekolko dalsich testov, ktore vyuzivaju informacie vzdy nadobudnute tymto procesom. Jednym z nich je merania uptimu, ktore na odhadnutie casu od posledneho restartovania pocitaca vyuziva moznost TCP timestamp (RFC 1323). Parameter sa oznamuje len pre pocitace, ktore poskytuju tuto informaciu. Dalsim z nich je TCP Sequence Predictability Classification - Klasifikacia predvidatelnosti TCP sekvencie. Toto meranie zistuje, ake je narocne nadviazat falosne TCP spojenie so vzdialenou hostitelskou stanicou a je uzitocne na zistovanie slabin relacii, ktore stavaju doveru na zdrojovej IP adrese (rlogin, firewall, filtre, atd.) alebo takisto je uzitocne kvoli moznosti ukryvania zdroja utoku. Tento typ falsovania sa dnes vykonava zriedkavo, no mnohe pocitace su na to stale zranitelne. Vlastne cislo obtiaznosti je zalozene ne statistickom vzorkovani a moze sa menit. Vseobecne je lepsie pouzit anglicku klasifikaciu, napr. “worthy challenge” - hodne vyzvy alebo “trivial joke” - jednoduchy zabava. Normalne sa to oznamuje len v mode verbose (-v). Ak sa povoli verbose mod sucasne z parametrom -O, oznamuje sa aj Vytvaranie sekvencie IPID. Vacsina pocitacov sa nachadza “inkrementalnej” triede, co znamena, ze zvysuju cislo policka ID v IP hlavicke kazdeho odoslaneho paketu, co z nich robi zranitelne ciele pre niektore pokrocile utoky, ktore su zalozene na zbere informacii a falsovani.
Dokument popisujuci cinnost, pouzitie a priposobenie detekcie verzie je dostupny vo viacerych jazykoch na adrese.http://www.insecure.org/nmap/osdetect/.
Detekcia OS je povolovana a ovladana nasledujucimi moznostami parametrov:
-O (Povolit detekciu OS)
--osscan-limit (Obmedzit detekciu OS len na slubne cielove stanice)
--osscan-guess; --fuzzy (Odhadnut vysledky detekcie OS)
Jednou z mojich najvyssich priorit pri vyvoji Nmapu bol vzdy vykon. Predvoleny scan (nmap hostname) hostitelskej stanice v mojej lokalnej sieti trva patinu sekundy. Trva to sice menej ako zmrknutie oka, ale pridava to na vyzname, ak sa scanuju stovky alebo tisice hostitelskych stanic. Navyse urcite moznosti scanov ako UDP scanovanie a detekcia verzie mozu podstatne zvysit cas vykonanavania scanu, tak ako aj urcite nastavenia firewallu, zvlast obmedzenie poctu odpovedi. Nmap sice na zrychlenie scanov vyuziva paralelizmus a mnohe pokrocile algoritmy, je to pouzivatel, kto ma absolutnu kontrolu nad tym, ako Nmap pracuje. Ak je cas obmedzenim, pouzivatelia na urovni expertov sikovne produkuju prikazu, aby ziskali len informacie, o ktore maju zaujem.
Metody zlepsujuce casy scanov zahrnuju vynechanie nekritickych testov a prechadzanie na poslednu verziu Nmapu (zdokonolanie vykonu sa vykonava casto). Optimalizovanie casovych parametrov dokaze takisto sposobit markantny rozdiel. Tieto parametre su spomenute nizsie:
--min-hostgroup <numhosts>; --max-hostgroup <numhosts> (Prisposobit velkosti paralelnych skupin pri scanovani)
V predvolenom nastaveni riesi Nmap tento konflikt kompromisom. Zacne skupinou o pocte 5, takze prve vysledky sa dostavia rychlo a potom sa velkost skupiny zvysi na 1024. Presne predvolene cisla zavisia od zadanych parametroch. Z dovodov efektivity pouziva Nmap rozsiahle skupiny pre UDP scany alebo malo portove TCP scany.
Po zadani maximalnej velkosti skupiny pomocou parametra --max-hostgroup Nmap nikdy neprokroci tuto hodnotu. Po zadani minimalnej velkosti skupiny parametrom --min-hostgroup nebude Nmap pouzivat mensie skupiny ako bolo zadane. Ak vsak nie je dostatok hostitelskych stanic, Nmap moze pracovat s mensimi skupinami ako specifikovane parametrom. Aj ked je to zriedkavo vyuzivane, oba parametre mozu byt pouzite sucasne na specifikovanie rozsahu skupiny.
Hlavne pouzitie tychto parametrov je specifikacia vacsieho minima velkosti skupiny, takze plny scan pobezi rychlejsie. Vseobecna volba velkosti minima na scan porcii siete triedy C je cislo 256. Nie je obvykle prilis uzitocne zvysovat toto cislo, ak sa jedna o scan s mnohymi portmi. Pri scanoch s par cislami portov je velkost skupiny hostitelskych pocitacov rovna 2048 alebo viac prospesna.
--min-parallelism <numprobes>; --max-parallelism <numprobes> (Upravit paralelizaciu testov)
Najcastejsim pouzitim je nastavenie parametra --min-parallelism na vyssiu hodnotu ako je 1 kvoli urychleniu scanovania pomalych hostitelskych stanic alebo sieti. Je to riskantny parameter na zabavu, pretoze prilis vysoka hodnota moze ovplyvnit presnost a takisto schopnost Nmapu ovladat paralelizmus dynamicky podla sietovych podmienok. Hodnota desat moze byt rozumna, hoci tuto hodnotu nastavujem len ako poslednu moznost.
Parameter --max-parallelism je niekedy nastaveny na 1, aby sa predislo odosielaniu viac ako jedneho testu sucasne. Moze sa to hodit v kombinacii s parametrom --scan-delay (rozoberanom nizsie), hoci tento druhy parameter je dostatocne silny, aby sam sluzil svojmu ucelu.
--min-rtt-timeout <time>, --max-rtt-timeout <time>, --initial-rtt-timeout <time> (Nastavit casovy interval testu)
Tieto parametre maju hodnotu v milisekundach alebo je mozne pridat argument jednotky s, maleboh to a takto sa cas specifuje v sekundach, minutach alebo hodinach. Specifikovanie nizsich hodnot parametrov--max-rtt-timeout a --initial-rtt-timeout ako predvolene hodnoty moze vyznamne skratit casy scanov, co plati hlavne pre scany bez pingu (-P0) a dalej pre velmi filtrovane siete, nie je vsak dobre zadavat prilis kratke hodnoty, pretoze potom moze scan pozadovat viac casu ako je specifikovane a pre vela testov vyprsi casovy interval, zatial co odpoved je stale na ceste.
Ak su vsetky hostitelske stanice v lokalnej sieti, rozumna hodnota intervalu je 100 milisekund --max-rtt-timeout. Ak je zahrnute routovanie, je potrebne najprv vykonat ping hosta bud pomocnym programom ICMP ping alebo prisposobenym programom pre tvorenie paketov ako napr. hping2, ktory sa pravdepodobnejsie dostane cez firewall. Vsimnite si maximalny cas hodnoty RTT (Maximum Round Trip) asi 10 paketov. Tuto hodnotu mozete zdvojnasobit pre --initial-rtt-timeout a stroj- alebo stvornasobit pre parameter--max-rtt-timeout. Vseobecne nenastavujem tento parameter maximum rtt pod 100ms, bez ohladu na hodnoty pingov, a ani ich nezvysujem nad 1000ms.
Parameter --min-rtt-timeout je malokedy pouzivany. Moze sa zist, ked je siet taka nespolahliva, ze aj predvolena hodnota Nmapu je prilis agresivna. Kedze vsak Nmap pri spolahlivej sieti znizuje casovy interval na minimum, tento parameter nie je potrebny a jeho pouzitie by sa malo nahlasit ako bug do mailingu listu nmap-dev.
--max-retries <numtries> (Specifikovat maximalny pocet retransmisii testov scanovania portov)
Predvolena hodnota (bez parametru-T) je 10 ten retransmisii. Ak sa siet zda byt spolahliva a cielove stanice neobmedzuju pocet odpovedi, Nmap obycajne vykona len jednu retransmisiu, takze vacsina scanov ani nie je ovplyvnena, ak sa parameter --max-retries znizi na 3. Tieto hodnoty dokazy podstatne zrychlit scany pomalych (s obmedzenim poctu odpovedi) hostitelskych stanic. Ak Nmap prilis skoro zanechava testy portov, obycajne sa stracaju nejake informacie, hoci moze to stale moze byt uprednostnovane pred situaciou, kde uplynie interval parametru --host-timeout a stratia sa vsetky informacie o cielovej stanici.
--host-timeout <time> (Zanechat pomale cielove stanice)
--scan-delay <time>; --max-scan-delay <time> (Nastavit oneskorenie medzi testami)
Ak Nmap prisposobuje oneskorenie scanu smerom nahor pri obmedzeni rychlosti odpovedi, scan sa dramaticky spomali. Parameter--max-scan-delay specifikuje najvacsie oneskorenie, ktore povoli Nmap. Nastavenie prilis nizkej hodnoty moze pri zavedenej obmedzenej rychlosti odpovedi viest k zbytocnym retransmisiam paketov a moznym vynechanym portom.
Dalsie pouzitie parametra --scan-delay je vyhnut sa systemom detekcie (IDS) a narusenia (IPS) zalozenych na prahovej hodnote.
-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> (Nastavit casovu sablonu)
Tieto sablony dovoluju pouzivatelovi specifikovat agresivitu, zatial co, Nmap sam vyberie presne hodnoty casovania. Sablony takisto vykonavaju male prisposobenia rychlosti, na ktore momentalne neexistuju jemne ovladacie parametre. Napriklad moznost -T4 zakazuje, aby dynamicke oneskorenie scanu prekrocilo 10ms pre TCP porty a-T5 ohranici tuto hodnotu 5 milisekundami. Pokial sa sablona specifikuje ako prva, moze byt pouzita v kombinacii s jemnym ovladanim, inak sa povodne hodnoty pre sablony prepisat vami specifikovanymi hodnotami. Odporucam pouzitie parametra -T4 ak sa scanuju moderne a spolahlive siete. Aj ked zadate dalsie jemne ovladanie kvoli dodatocnym malym povolenym optimalizaciam, zachovajte tento parameter (na zaciatok prikazoveho riadku).
Ak ste na poriadnej sieti s broadbandovym alebo ethernetovym pripojenim, vzdy by som odporucal pouzitie parametra-T4. Niektori ludia preferuju moznost -T5, hoci pre mna je prilis agresivna. Ini zasa niekedy zadaju -T2, pretoze si myslia, ze tymto je mensia pravdepodobnost sposobenia spadnutia pocitaca alebo pretoze sa sami vo vseobecnosti povazuju za zdvorilych. Casto si pritom neuvedomuju, za moznost -T Polite je skutocne velmi pomala. Takyto scan moze trvat desatkrat viac ako povodny scan. Spadnutia pocitacov a problemy so sirkou pasma su zriedkave pri pouziti predvoleneho parametra casovania (-T3) a tak ho normalne odporucam pre pozornych scannerov. Vynechanie detekcie verzie je vsak casovo ovela ucinnejsie ako hranie sa s hodnotami casovania.
Zatial co moznosti -T0a-T1 mozu byt uzitocne pre vyhnutie sa upozorneni systemov IDS, scanovanie tisicov portov pocitacov bude trvat vynimocne dlho. Pri takomto dlhom scane je mozno lepsie nastaveni presnych hodnot casovania namiesto spolahnutia sa na vopred pripravene moznosti-T0a-T1 .
Hlavnymi nasledkami pouzitia parametruT0 je serializacia scanovania portov, takze sa sucasne scanuje len jeden port, a pred vyslanim dalsieho testu sa caka 5 minut. Moznosti T1 a T2 su podobne, ale medzi jednotlivymi testami cakaju len 15 resp. 0.4 sekund. MoznostT3 je predvolenou pre Nmap a zahrna paralelizaciu. Moznost T4 je ekvivalentna zadaniu--max-rtt-timeout 1250 --initial-rtt-timeout 500 --max-retries 6 a nastavuje maximalne oneskorenie TCP scanu na 10 ms. MoznostT5 je ekvivalentna zadaniu --max-rtt-timeout 300 --min-rtt-timeout 50 --initial-rtt-timeout 250 --max-retries 2 --host-timeout 900000 a takisto nastavenia maximalneho oneskorenia TCP scanu na 5ms.
Mnohi priekopnici internetu si predstavovalo globalnu otvorenu siet s univerzalnym priestorom IP adries umoznujucim vykonavat virtualne spojenia medzi lubovolnymi dvoma uzlami. To umoznuje hostitelskym staniciam posobit ako ozajstni peers, poskytujuc a ziskavajuc informacie od kazdeho jedneho. Ludia mohli pristupovat na vsetky domace systemy z prac a tak zmenit nastavenie ovladania klimy alebo otvorenia dveru pre skorych hosti. Tato vizia univerzalnej konektivity je vsak potlacena nedostatkom priestoru IP adries a obavami z bezpecnosti. Na zaciatku 90.rokov zacali organizacie nasadzovat firewally na rychly ucel obmedzenia konektivity. Obrovske siete boli uzavrete pred nefiltrovanym intenernetom pomocou aplikacnych proxy serverov, prekladu NAT a paketovych filtrov. Neobmedzeny tok informacii dal zelenu uzkej regulacii odsuhlasenych komunikacnych kanalov a obsahu, ktory cez ne prechadza.
Sietove prekazky ako firewally vedia velmi stazit zmapovanie siete. Nezjednodusi sa to, pretoze potlacenie neplanovaneho skumania siete ja casto klucovym cielom implementovania tychto zariadeni. Napriek tomu obsahuje Nmap mnohe funkcie, ktore pomahaju pochopit tieto zlozite siete a overit, ze filtre funguju podla ocakavania, dokonca podporuje aj mechanizmy obidenia pre slabo implementovane obrany. Jednou z najlepsich metod pochopenia situacie vasej sietovej bezpecnosti je pokusit sa ju prelomit. Predstavte si seba ako utocnika a nasadte proti vasim sietam metody z tejto sekcie. Spustite scan FTP bounce ftp, Idle scan, utok pomocou fragmentacie alebo sa pokuste pretunelovat cez jeden z vasich proxy serverov.
Okrem obmedzovania sietovej aktivity spolocnosti stale viac monitoruju traffic v sieti pomocou systemov na detekciu preniknutia (IDS). Vsetky hlavne systemy IDS sa dodavaju s pravidlami vytvorenymi na detekciu scanov Nmapu, pretoze tieto scany su niekedy pociatkom pre utoky. Vela tychto produktov sa casom vyvinulo do systemov s prevenciou preniknutia (IPS), ktore aktivne blokuju traffic, ktory sa zda byt skodlivy. Spolahlive detekovanie zlych umyslov pomocou analyzy dat v paketoch je nanestastie pre sietovych administratorov a vyrobcov systemov IDS tazky problem. Utocnici s trpezlivostou, zrucnostou a pomocou urcitych parametrov Nmapu mozu obycajne zabranit detekcii systemu IDS. Na druhej strane sa administratori musia popasovat s velkym mnozstvom falosnych pozitivnych vysledkov, kde sa nespravne diagnizuje nevinna aktivita a je v stave pohotovosti alebo je blokovana.
Niekedy ludia navrhuju, ze by Nmap nemal ponukat funkcie na vyhnutie sa pravidlam firewallu alebo prejdenia cez systemy IDS. Zdovodnuju, ze tieto funkcie mozu byt tak vyuzite administratormi na zvysenie bezpecnosti ako aj utocnikmi. Problemom toho je, ze tieto metody by sa stale vyuzivali utocnikmi, ktori by si namiesto toho nasli dalsie nastroje alebo patche, ktore by fungovali s Nmapom. Na druhej strane, pre administratorov by bolo ovela tazsie vykonavat si svoju pracu. Nasadzovanie len modernych, opravenych FTP serverov je ovela mocnejsia obrana, ako snaha predist rozsireniu nastrojov implementujucich utok FTP bounce.
Neexistuje ziadne specialne magicke kuzlo(alebo parameter Nmapu) na detekciu a podkopanie firewallov a systemov IDS. Vyzaduje si to zrucnost a skusenost. Tutorial je za mimo rozsahu tejto referencnej prirucky, ktora len podava zoznam relevantnych parametrov a opisuje, co robia.
-f (fragmentovat pakety); --mtu (pouzitim specifikovanej velkosti jednotky MTU)
-D <decoy1 [,decoy2][,ME],...> (Zakryt scan pomocou decoys)
Adresu kazdej decoy je potrebne oddelit ciarkami a je mozne pouzit parameter ME urcujuci, ktora z decoys reprezentuje vasu realnu IP adresu. Ak sa ME ME vlozi na vzdialenejsiu ako 6.poziciu, niektore bezne detektory scanov portov (napr. vyborny scanlogd spolocnosti Solar Designer) by nemali byt vobec dokazat zobrazit vasu IP adresu. Ak pouzijete ME , nmap vlozi vasu IP adresu na nahodnu poziciu.
Vsimnite si, ze hostitelske stanice pouzite ako falosne scannery teda decoys by mali byt aktivne, inak mozete nahodne zahltit cielove stanice SYN paketmi. Ak bude aktivna len jedna hostitelska stanica, bude velmi jednoduche zistit, ktora z decoys vykonala scan. Namiesto DNS nazvov moze byt uzitocne pouzit IP adresy (takze vas siete pocitacov decoys nebudu vidiet v logu nameserveru.)
Decoys su pouzivane pri pociatocnom ping scane (pouzijuc ICMP, SYN, ACK alebo ine) tak ako aj pocas samotnej fazy scanovania, a pouzivaju sa aj pri detekcii vzdialeneho OS (-O). Decoys nefunguju pri detekcii verzie alebo scane typu TCP connect().
Prilis mnoho decoys moze spomalit scan a potencialne ho znepresnit. Niektori internetovi provideri mozu filtrovat falosne pakety, no mnohi ich vobec neobmedzuju.
-S <IP_Address> (Falosna zdrojova IP adresa)
Dalsim moznym sposobom pouzitia tohoto flagu je falsovanie scanu, cim sa cielove stanice budu domnievat, ze ich scanuje niekto iny. Predstavte si firmu, ktora je opakovane scanovana konkurencnou firmou. Parameter -e bude pre tento typ pouzitia vsobecne vyzadovany a parameter -P0 je tiez vhodny.
-e <interface> (Pouzit specifikovane rozhranie)
--source-port <portnumber>; -g <portnumber> (Falsovat zdrojove cislo portu)
Bezpecnymi rieseniami na tieto problemy su casto vo forme proxy serverov na aplikacnej urovni alebo firewallove moduly skumajuce protokoly. Existuju nanestastie aj jednoduchsie a nebezpecne riesenia. Vediac, ze DNS odpovede prichadzaju z portu 53 a aktivne ftp z portu 20, vela administratorov sa chytilo do pasce a jednoducho povolilo prichadzajuci traffic z tychto portov, pricom castu beru do uvahy, ze to ziadny utocnik nespozoruje a ani nezneuzije tuto dieru vo firewalle. V inych pripadoch to administrator povazuje za kratkodobe opatrenie az kym sa neimplementuje bezpecnejsie riesenie, a potom na tento upgrade zabudnu.
Prepracovani sietovi administratori vsak nie su jedinymi, kto sa chyti do tejto pasce. Mnohe produkty sa dodavaju s tymito nebezpecnymi pravidlami, dokonca aj Microsoft bol vinny. Filtre protokolu IPsec dodavane so systemami Windows 2000 a Windows XO obsahuju implicitne pravidlo, ktore povoluje cely neobmedzeny TCP a UDP traffic z portu 88 (Kerberos). Dalsim dobre znamym pripadom povolovali verzie osobneho firewallu Zone Alarm az do verzie 2.1.25 vsetky prichadzajuce UDP pakety so zdrojovym portom 53(DNS) alebo 67 (DHCP).
Nmap ponuka na objavenie tychto zranitelnosti ekvivalentne parametere-g a --source-port. Jednoducho zadate cislo portu a Nmap z neho odosle pakety. Pri niektorych testoch detekcie OS kvoli ich spravnej funkcii musi Nmap pouzivat odlisne cisla portov a DNS poziadavky ignoruju parameter --source-port, pretoze Nmap ich nechava na pleciach systemovych kniznic. Vacsina TCP scanov vratane SYN scanu ako aj UDP scan podporuju tento parameter uplne.
--data-length <number> (Do odosielanych paketov pripojit nahodne data)
--ttl <value> (Nastavit pole IP time-to-live)
--randomize-hosts (Nahodne vybrat poradie cielovych pocitacov)
--spoof-mac <mac address, prefix, or vendor name> (Vytvorit falosnu MAC adresu)
--badsum (Odoslat pakety s falosnym kontrolnym suctom TCP/UDP)
Kazdy bezpecnostny nastroj je len tak uzitocny, ako uzitocny je vytvarany vystup. Zlozite testy a algoritmy maju malu hodnotu, ak nie su prezentovane v organizovanej a zrozumitelnej forme. Pri pohlade na pocet sposobov, akymi je Nmap pouzivany ludmi a dalsim softwarom, neexistuje jednotlivy format, ktory by vyhovoval kazdemu, takze preto Nmap ponuka niekolko formatov vratane interaktivneho modu citatelneho pre ludi a XML formatu lahko spracovavaneho softwarom.
Okrem ponukania rozlicnych vystupnych formatov poskytuje Nmap parametre na ovladanie miery mnozstva vystupu tak ako aj debugovacie spravy. Vystupne typy mozu byt odoslane na standardny vystup alebo do nazvaneho suboru, do ktoreho moze Nmap data pripojit k existujucim alebo premazat subor a vlozit data. Vystupne subory mozu byt tiez pouzite na pokracovanie zachytavania vystupu z prerusenych scanov.
Nmap ponuka vystup v piatich moznych formatoch. Predvolenym je interactive output a je odosielany na standardny vystup (stdout). Existuje aj normal output podobny interactive s tou vynimkou, ze zobrazuje menej runtimeovych informacii a upozorneni pri behu Nmapu, pretoze sa od neho ocakava, ze bude analyzovany az po skonceni scanu a nie interaktivne.
Vystup vo formate je jednym z najdolezitejsich vystupnych typov a moze byt konvertovany na HTML format, lahko rozobraty dalsimi programami napr. grafickymi rozhraniami Nmapu, alebo importovany do databaz.
Dva zostavajuce typy vystupov su jednoduchy grepable output obsahujuci vacsinu informacii o cielovej stanici na jednom riadku , asCRiPt KiDDi3 0utPUt pre pouzivatelov povazujucich sa za |<-r4d.
Zatial co interaktivny vystup je predvoleny a nema ziadne suvisiace parametre prikazoveho riadku, dalsie styri formaty maju tu istu syntax. Pouzivaju jeden argument, ktorym nazov vystupneho suboru. Mozu byt zadane aj viacere formaty, ale vzdy len raz. Ak napriklad chcete ulozit normalny vystup pre seba a zaroven ho ulozit do XML formatu kvoli analyze programu, mozete pouzit parametre -oX myscan.xml -oN myscan.nmap. Tato kapitola sice pouziva kvoli strucnosti jednoduche nazvy suborov ako myscan.xml, ale odporuca sa pouzit popisnejsie nazvy. Zvolene nazvy su otazkou osobnych preferencii, hoci ja pouzivam dlhe nazvy zahrnujuce datum scanu a par slov opisujucich scan, ktory je umiestneny v adresari podla scanovej spolocnosti.
Kym tieto parametre ukladaju vysledky do suborov, Nmap stale zobrazuje interaktivny vystup na stdout ako obycajne. Napriklad prikaz nmap -oX myscan.xml target zobrazi XML vystup do suboru myscan.xml a standardny vystup zobrazi presne tie iste interaktivne vysledky, ako keby parameter -oX nebol vobec specifikovany. Zmenit to mozete zadanim spojovnika ako argumentu pre jeden z typov formatov, co sposobi, ze Nmap deaktivuje interaktivny vystup a namiesto toho posle vysledky len do zadaneho formatu, cize prikaz nmap -oX - target odosle do stdout len vystup v XML. Vazne chyby mozu byt stale zobrazovane do normalneho chyboveho streamu s nazvom stderr.
Na rozdiel od niektorych argumentov Nmapu, medzera medzi parametrom logovacieho suboru (napr. -oX) a nazvom suboru alebo spojovnikom je povinna. Ak vynechate flagy a zadate argumenty ako napr. -oG- alebo -oXscan.xml funkcia spatnej kompatibility Nmapu sposobi, ze sa vytvori vystupnych suborov v normal format s nazvom G-, resp. Xscan.xml .
Nmap takisto ponuka parametre na ovladanie mnozstva vystupu scanu a ci sa maju vystupne subory prepisat alebo sa ma pokracovat v pripajani dat. Vsetky tieto parametre su opisane nizsie.
Vystupne formaty Nmapu
-oN <filespec> (Normalny vystup)
-oX <filespec> (XML vystup)
XML ponuka stabilny format lahko spracovatelny softwarom. Volne XML parsery su dostupne vo vsetkych hlavnych programovacich jazykoch vratane C/C++,Perl, Python a Java. Su ponukane napojenia pre vacsinu tychto jazykov tak, ze si vedia specificky poradit s vystupom a behom Nmapu. Prikladmi su Nmap::Scanner[8] a Nmap::Parser[9] v Perl CPAN. Skoro vo vsetkych pripadoch rozhrania netrivialnej aplikacie s Nmapom, XML je preferovanym formatom.
XML vystup sa odkazuje na XSL stylesheet, ktory moze byt pouzity na formatovanie vysledkov do HTML. Najjednoduchsim sposobom ako ho pouzit je jednoducho nahrat vystup v XML do weboveho prehliadaaca akym je Firefox alebo IE. Za normalnych okolnosti to bude fungovat len na pocitaci, na ktorom bezi Nmap (alebo na podobne nastavenom) kvoli napevno zadanej ceste suboru nmap.xsl suboroveho systemu. Zadanim parametrov --webxml alebo --stylesheet vytvorite prenosne XML subory, ktore sa na kazdom pocitaci s webovym prehliadacom zobrazia v HTML formate.
-oS <filespec> (ScRipT KIdd|3 oUTpuT)
-oG <filespec> (Vystup typu Grep)
Aj tak je vsak tento format stale dost oblubeny. Je to jednoduchy format, ktory zobrazuje kazdy hostitelsku stanicu na jeden riadok a moze byt jednoducho prehladavany a parsovany standardnymi UNIXovymi nastrojmi ako grep, awk, cut, sed, diff ci Perl. Aj ja ho dokonca pouzivam pre jednorazove testy na prikazovom riadku. Najst vsetky hostitelske stanice s otvorenym portom ssh alebo s beziacim systemom Solaris si vyzaduje jednoduchy grep na identifikaciu hostitelskych stanic, napojeny rurou - pipe na prikaz awk alebo cut, cim sa zobrazia pozadovane polia.
Vystup vo formate Grep sa sklada z komentara (riadky zacinajuce sa znakom) a riadkami cielov. Riadok ciela zahrnuje kombinaciu 6 oznacenych poli, oddelenych tabulatorom a nasledovanym dvojbodkou, Host, Ports, Protocols, Ignored State, OS, Seq Index, IPID a Status.
Najdolezitejsim z tychto poli je vo vseobecnosti Ports, ktore poskytuje podrobnosti o kazdom zaujimavom porte a obsahuje zoznam poloziek portov oddelenenych ciarkou, pricom kazda polozka reprezentuje jednotlivy port a zaujima podobu siedmych mensich poli oddelenych znakom /. Su nimi: Port number, State, Protocol, Owner, Service, SunRPC info a Version info.
Tak ako pri vystupe XML, ani tento manual nemoze pokryvat dokumentaciu celeho formatu. Podrobnejsi pohlad na format typu grep Nmapu je dostupny z adresy http://www.unspecific.com/nmap-oG-output.
-oA <basename> (Vystup vo vsetkych formatoch)
Miera vypisu a moznosti debugovania
-v (Zvysit stupen miery vypisu)
Vacsina zmien ovplyvnuje len interaktivny vystup a niektore tiez normalny a script kiddie format vystupu. Ostatne typy vystupov su spracovavane pocitacmi, takze Nmap poskytuje podstatne podrobnosti predvolene bez unavovania cloveka. Existuje vsak niekolko zmien v dalsich modoch, kde sa moze velkost vystupu podstatne zmensit vynechanim niektorych podrobnosti. Napriklad riadok s komentarom vo formate grep poskytujuci vsetkych scanovanych portov sa zobrazi len v mode verbose - s velkou mierou vypisu - pretoze moze byt dost dlhy.
-d [level] (Zvysit alebo nastavit uroven debugovania)
Vystup debugovania je uzitocny, ak je podozrive, ze Nmap obsahuje bug, alebo ak ste proste zmateni, co Nmap robi a preco. Riadky debuggovania nie su prilis samo vysvetlujuce, kedze su urcene pre vyvojarov. Je mozne dopracovat sa k niecomu takemu: Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000. Ak nerozumiete ani jednemu riadku, jedinym riesenim je ignorovat vypis alebo si ho vyhladat v zdrojovom kode, pripadne si vyziadat pomoc zo development listu (nmap-dev). Niektore riadku su samovysvetlujuce, no zvysovanim stupna debugovania sa straca prehlad.
--packet-trace (Sledovat odosielane a prijimane pakety a data)
--iflist (Zobrazit zoznam rozhrani a ciest)
Rozne moznosti vystupu
--append-output (Pripojit vystup namiesto vymazania predchadzajucich dat)
--resume <filename> (Pokracovat v prerusenom scane)
--stylesheet <path or URL> (Nastavit XSL stylesheet na prevod XML vystupu)
--webxml (Nahrat stylesheet z adresy Insecure.Org)
--no-stylesheet (Vynechat zadanie XSL stylesheetu z XML)
Tato cast opisuje niektore dolezite a menej dolezite moznosti, ktore nikam inam nezapadaju.
-6 (Povolit scanovanie IPv6)
Aj ked sa IPv6 stale nerozsiril poriadne, pouziva sa vyznamne v niektorych krajinach, zvycajne azijskych, a vacsina modernych operacnych systemov ho podporuju. Ak chcete pouzit Nmap s protokolom IPv6, musia byt zdrojovy aj cielovy pocitac scanu nastavene na tento protokol. Ak vam vas ISP, ako vacsina, nepriradi IPv6 adresy, su zdarma dostupne tunelovacie programy pre IPv6 a dobre spolupracuju s Nmapom. Jeden z tych lepsich je BT Exact. Pouzil som aj jeden poskytovany spolocnostou na adresehttp://ipv6tb.he.net/. Dalsou metodou zdarma su tunely IPv6 na IPv4.
-A (Parametre agresivneho scanu)
--datadir <directoryname> (Specifikovat vlastne datoveho suboru Nmapu)
--send-eth (Posielat neupravene pakety na ethernetovej vrstve)
--send-ip (Posielat neupravene pakety na vrstve IP)
--privileged (Predpokladat, ze pouzivatel je plne privilegovany)
-V; --version (Zobrazit cislo verzie)
-h; --help (Zobrazi obsah napovedy)
Funkcia interakcie s behom programu este na systemoch Windows nie je plne podporovana.
Pocas behu Nmapu sa zachytavaju vsetky stlacenie klucovych klavesov, co dovoluje komunikovat s programom bez jeho zastavenia a restartovania. Iste specialne klavesy zmenia parametre, zatial co ine klavesy zobrazia stavovu spravu informujucu o scane. Konvencia je taka, ze male pismena zvysuju mnozstvo zobrazovanych udajov a velke pismena ho znizuju.
v / V
d / D
p / P
Cokolvek ine
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)
Na tomto mieste je niekolko prikladov pouzitia Nmapu, od jednoduchych a rutinnych az po zlozitejsie a tajuplne. Pouzite su niektore vlastne IP adresy a nazvy domen, aby bol proces konkretny, no namiesto nich by sme mali pouzit nahrady vasej vlastnej siete.. Aj ked si nemyslim, ze scanovanie portov dalsich sieti je alebo by malo byt nelegalne, administratori niektorych sieti nijak neocenuju nevyziadane scanovanie svojich sieti a mozu sa stazovat. Najlepsie je najprv ziskat opravnenie.
Pre testovacie ucely mate opravnenie scanovat pocitac na adrese scanme.nmap.org. Toto opravnenie vsak obsahuje len scanovanie pomocou Nmapu a nie testovanie exploitov alebo utokov typu Denial of service. Aby sa nevycerpala sirka pasma, nespustajte viac ako 12 scanov na tento pocitac za jeden den. Ak je tato sluzba volneho scanovania cieloveho pocitaca zneuzita, zrusi sa a Nmap oznami Failed to resolve given hostname/IP: scanme.nmap.org. Tieto opravnenia sa tiez vztahuju na hostitelske pocitace scanme2.nmap.org, scanme3.nmap.org atd., hoci tieto stanice momentalne neexistuju.
nmap -v scanme.nmap.org
Tento parameter spusti scan vsetkych rezervovanych TCP portov na pocitaci scanme.nmap.org . Parameter-v umoznuje tzv. verbose mode.
nmap -sS -O scanme.nmap.org/24
Spusti SYN scan proti kazdemu aktivnemu pocitacu v sieti triedy “class C” s nazvom Scanme. Takisto sa pokusi urcit spustene operacne systemy aktivnych pocitacov. K tymto parametrom sa vyzaduju privilegia roota.
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
Spusti vypocet hostitelskych stanic a TCP scan na prvu polovicu z 255 moznych 8-bitovych subnetov v adresnom priestore 198.116 triedy B. Zaroven sa testuje, ci na systemoch bezia sluzby sshd, DNS, pop3d, imapd alebo port 4564. Pre kazdy z najdenych otvorenych portov sa pouzije detekcia verzia na urcenie spustenych aplikacii.
nmap -v -iR 100000 -P0 -p 80
Nmap zvoli nahodne 100 000 hostitelskych pocitacov a scanuje ich port 80. Vypocet hostitelskych stanic je zakazany parametrom -P0, pretoze je zbytocne najprv posielat test na zistenie, ci je hostitelska stanica aktivna, ak sa bude aj tak testovat len jeden port.
nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20
Scanuje 4096 IP adries kvoli najdeniu webserverov (bez ich pingnutia) a vystup ulozi vo formatoch grep a XML.
host -l company.com | cut -d -f 4 | nmap -v -iL -
Vykona preklad domeny DNS, cim sa najdu hostitelske pocitace na adrese company.com a potom Nmap pouzije tieto IP adresy. Tieto prikazy sa mozu pouzit pre pocitac so systemom GNU/Linux - dalsie systemy maju odlisne prikazy na vykonavanie prekladu domeny.
Tak ako autor, ani Nmap nie je dokonaly, no mate moznost pomoct pri jeho vylepsovani tym, ze zaslete spravu o bugoch alebo dokonca napisete patch. Ak sa Nmap nechova podla ocakavania, vykonajte najprv upgrade na najnovsiu verziu dostupnu z adresy http://www.insecure.org/nmap/. Ak problem pretrvava, preskumajte, ci uz nebol objaveny a adresovany. Vyskusajte pouzit google s vyrazom chybovej spravy alebo prehladajte archivy Nmap-dev na adrese http://seclists.org/. Precitajte si aj tento plny manual. Ak nenajdete nic podobne, poslite mail o bugu na adresu <dev@nmap.org>. Zahrnte vsetko, co ste sa dozvedeli o probleme spolu s verziou Nmapu a operacnym systemom. Spravy o problemoch a otazky na pouzivanie Nmapu budu ovela pravdepodobnejsie zodpovedane, ak budu odoslane na dev@nmap.org namiesto odosielania priamo Fyodorovi.
Patche s kodom na opravu bugov su este lepsie ako samotne spravy o bugoch. Zakladne instrukcie na tvorbu suborov patchov s vasimi zmenami su dostupne na http://www.insecure.org/nmap/data/HACKING. Patche mozu byt odoslane prednostne na nmap-dev alebo priamo Fyodorovi.
Fyodor <fyodor@nmap.org> (http://www.insecure.org)
Za posledne roky stovky ludi vyznamne prispeli pre Nmap. Podrobnosti o nich su obsiahnute v suboreCHANGELOG, ktory sa dodava s Nmapom a je dostupny z adresyhttp://www.insecure.org/nmap/changelog.html.
This is an unnofficial translation of the Nmap license details[10] into Slovak. 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 Slovak speakers understand the Nmap license better.
Toto je len neoficialny prekladlicencnych podrobnosti Nmapu[10] do slovenciny. Nebol vytvoreny spolocnostou Insecure.Com LLC a ani legalne nevyjadruje podmienky distribucie pre Nmap; to ma za ulohu len povodny anglicky text. Aj tak vsak dufame, ze tento preklad pomoze slovensky hovoriacim ludom lepsie pochopit licenciu pre Nmap.
Program Nmap Security Scanner je produktom (C) 1996-2005 Insecure.Com LLC. Nmap je tiez registrovana obchodna znacka spolocnosti Insecure.Com LLC. Tento program je free softwarom; je mozne ho redistribuovat alebo modifikovat podla podmienok licencie GNU General Public License 2 uverejnenou zdruzenim Free Software Foundation. Zarucuje pravo na pouzivanie, modifikaciu a redistribuciu tohoto softwaru za istych podmienok. Ak mate zaujem o zaclenenie technologie Nmapu do proprietarneho softwaru, mozeme predat alternativne licencie (kontakt <sales@insecure.com>). Vela vyrobcov bezpecnostnych scannerov uz licencuju technologiu Nmapu, napr. zistovanie hostitelskych stanic, scanovanie portov, detekcia OS a detekcia sluzby/verzie.
Je nutne poznamenat, ze GPL uvaluje dolezite obmedzenia na “odvodene diela”, no neposkytuje podrobnu definiciu tohoto pojmu. Aby sa predislo nedorozumeniam, za ucelom tejto licencie povazujeme aplikaciu za “odvodene dielo (derivative work)” ak vykonava lubovolnu z nasledujucich veci:
Pojem “Nmap” by sa mal pouzit aj pri zahrnuti akychkolvek casti alebo diel odvodenych od Nmapu. Tento zoznam nie je vyhradny, no jeho zamerom je objasnit nasu interpretaciu odvodenych diel pomocou niekolkych beznych prikladov. Tieto obmedzenia vlastne platia len pri redistribucii Nmapu. Napriklad vas nic nemoze zastavit od napisania a predavania proprietarnej celnej aplikacie k Nmapu, mozete to sami distribuovat a zverejnit pre verejnost adresu http://www.insecure.org/nmap/ na stiahnutie Nmapu.
Nepokladame to za dodatocne restrikcie ku GPL, ale len ako objasnenie toho ako interpretujeme “odvodene diela” podla vztahu k nasmu produktu s licenciou GPL. Je to nieco podobne, ako ked Linus Torvalds oznamil svoju interpretaciu ako sa vztahuju “odvodene diela” k modulom linuxovskeho kernelu. Nasa intepretacia sa odkazuje len na Nmap - nehovorime za ine GPL produkty.
Ak mate otazky tykajuce sa obmedzeni licencii GPL ohladom pouzivania Nmapu v dielach nelicencovanych GPL, radi pomozeme. Ako uz bolo spomenute vyssie, tiez ponukame alternativne licencie na zahrnutie Nmapu do proprietarnych aplikacii a zariadeni. Tieto zmluvy uz boli predane mnohym vyrobcom zaoberajucich sa bezpecnostou a vseobecne zahrnuju trvalu licenciu tak ako aj poskytovanie prioritnej podpory a updateov a pomoc financne podporovat pokracujuci vyvoj technologie Nmapu. Na ziskanie dalsich informacii zaslite e-mail na adresu <sales@insecure.com>.
Ako vynimku ku terminom licencie GPL, spolocnost Insecure.Com LLC udeluje povolenie spajat kod tohoto programu s lubovolnou verziou kniznice OpenSSL, ktora je distribuovana pod licenciou identickou k tej zmienenej v zahrnutom subore Copying.OpenSSL, a distribuovat suvisiace kombinacie vratane tychto dvoch. Musite dodrziavat GNU GPL vo vsetkych ohladoch pre kod iny ako OpenSSL. Ak pozmenite tento subor, je mozne nezavazne rozsirit tuto vynimku na vasu verziu tohoto suboru.
Ak ste tieto subory ziskali s pisomnou licencnou zmluvou alebo sa zmluva zmienuje o inych pojmoch ako su vyssie uvedene, ma prednost pred tymito podmienkami.
Tato prirucka Nmapu je chranena copyrightom spolocnosti (C) 2005 Insecure.Com LLC a je preto umiestnena pod verziou licenciou Creative Commons Attribution License[2] verzie 2.5, co dovoluje redistribuovat a modifikovat dielo podla ziadosti, pricom sa odkazete na povodny zdroj. Alternativne je mozne vybrat si, ze tento dokument sa bude povazovat, ze spada pod tu istu licenciu ako sam Nmap (predtym rozobrata).
K tomuto softwaru je poskytovany kod, pretoze si myslime, ze pouzivatelia maju pravo poznat pred jeho spustenim, co presne program vykona. To umoznuje aj vam skumat software kvoli bezpecnostnym dieram, aj ked zatial neboli ziadne najdene.
Zdrojovy kod vam tiez dovoluje portovat Nmap na nove platformy, opravovat bugy, a pridavat nove funkcie. Ste vrelo podporovani zasielat vase modifikacie pre pripadne zaclenenie do hlavnej distribucie na adresu <fyodor@nmap.org>. Zaslatim tychto zmien Fyodorovi alebo na niektory z vyvojarskych mailing listov Insecure.Org sa predpoklada, ze poskytujete Fyodorovi a firme Insecure.Com LLC nelimitovane, nevylucne pravo na pouzivanie, modifikaciu a opatovne licencovanie kodu. Nmap bude vzdy dostupnym Open Source programom, ale tato zmienka je dolezita, pretoze nemoznost prelicencovat kod uz sposobila obrovske problemy dalsim projektom Free Software (napr. KDE a NASM). Prilezitostne relicencujeme kod tretim stranam podla hore spomenuteho. Ak si prajete specifikovat specialne podmienky licencie vasich prispevkov, uvedte to pri ich zasielani.
Tento program je distribuovany s vierou, ze bude uzitocny, ale BEZ AKEJKOLVEK ZARUKY; dokonca aj bez naznacenej zaruky PREDAJNOSTI a VHODNOSTI NA URCITY UCEL. Dalsie podrobnosti mozete najst na adresehttp://www.gnu.org/copyleft/gpl.html, alebo v subore COPYING zahrnutym v Nmape.
Je takisto dolezite poznamenat, ze Nmap je znamy tym, ze obcas sposobi zrutenie slabo naprogramovanych aplikacii, stackov TCP/IP a dokonca aj operacnych systemov. Aj ked sa to stava velmi zriedkave, je na to potrebne mysliet. Nmap by sa nikdy nemal spustat na testovanie kritickych systemov , kym nie ste pripraveny trpiet ich vypadky. Na tomto mieste uznavame, ze Nmap moze sposobit spadnutie vasich systemov alebo sieti a zriekame sa vsetkych zavazkov za akukolvek skodu alebo problemy pripadne zapricinene Nmapom.
Kvoli istemu riziku padov systemov a niekolkym trufalcom, ktori pouzivaju Nmap na prieskum pred napadnutim systemov existuju administratori, ktori su znepokojeni a mozu sa stazovat pri zisteni scanovania systemu. Je preto doporuceniahodne vyziadat si povolenie pred podniknutim co i len lahkeho scanu siete.
Nmap by nikdy nemal byt z bezpecnostnych dovodov instalovany so specialnymi privilegiami (napr. suid root)
Tento produkt zahrnuje software vyvinuty organizaciou Apache Software Foundation[11]. Modifikovana verzia kniznice Libpcap portable packet capture library[12] sa dofavat spolu s nmapom. Verzia Nmapu pre Windows namiesto toho vyuziva od tejto kniznice odvodenu WinPcap library[13]. Podpora regularnych vyrazov je poskytovana kniznicouPCRE library[14], ktora je open source softwarom a jej autorom je Philip Hazel. Niektore neupravene sietove funkcie pouzivaju sietovu kniznicu s nazvomLibdnet[15] vytvorena autorom Dug Song. Jej pozmenena verzia sa dodava s Nmapom. Nmap moze byt volitelne spojeny s toolkitomOpenSSL cryptography toolkit[16] na podporu detekcie verzie protokolu SSL. Kazdy z tu spomenuteho softwaru tretich stran je volne siritelny pod softwarovymi licenciami typu BSD.
Klasifikacia riadenia exportu z USA: Insecure.Com LLC sa domnieva, ze Nmap spada pod americky ECCN (export control classification number) 5D992. Tato kategoria sa nazyva “Information Security software not controlled by 5D002”. Jedinym obmedzenim tejto klasifikacie je AT (anti-terorizmus), ktory sa vztahuje na skoro vsetky tovary a odmieta exportovat do par nebezpecnych krajin ako su Iran a Severna Korea, preto exportovanie Nmapu nevyzaduje ziadnu specialnu licenciu, povolenie alebo ine splnomocnenie vladou.
15. marca 2018 | [FIXME: source] |