NMAP(1) Nmap - Referencna prirucka NMAP(1) MENO nmap - Nastroj na skumanie siete a scanner bezpecnosti/portov PREHLAD nmap [Typ scanu...] [Moznosti] {Specifikacia cielovej stanice} OPIS 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.Priklad 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. Priklad 1. Ukazkovy Nmap scan # nmap -A -T4 scanme.nmap.org playground Starting nmap ( https://nmap.org/ ) Interesting ports on scanme.nmap.org (205.217.153.62): (The 1663 ports scanned but not shown below are in state: filtered) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) 53/tcp open domain 70/tcp closed gopher 80/tcp open http Apache httpd 2.0.52 ((Fedora)) 113/tcp closed auth Device type: general purpose Running: Linux 2.4.X|2.5.X|2.6.X OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 Uptime 33.908 days (since Thu Jul 21 03:38:03 2005) Interesting ports on playground.nmap.org (192.168.0.40): (The 1659 ports scanned but not shown below are in state: closed) PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 389/tcp open ldap? 445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds 1002/tcp open windows-icfw? 1025/tcp open msrpc Microsoft Windows RPC 1720/tcp open H.323/Q.931 CompTek AquaGateKeeper 5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC TCP port: 5900) 5900/tcp open vnc VNC (protocol 3.8) MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) Device type: general purpose Running: Microsoft Windows NT/2K/XP OS details: Microsoft Windows XP Pro RC1+ through final release Service Info: OSs: Windows, Windows XP Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds Najnovsia verzia Nmapu sa nachadza na adrese https://nmap.org/. Najnovsia verzia manualu je k dispozicii na adrese https://nmap.org/man/. POZNAMKY O PREKLADE 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]. ZOZNAM MOZNOSTI Tento zoznam moznosti sa zobrazi, ak je Nmap spusteny bez parametrov a jeho najnovsia verzia je k dispozii na adrese https://nmap.org/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 : Pouzit ako vstup zoznam hostistelskych stanic alebo sieti -iR : Zvolit nahodne cielove stanice --exclude : Vynechat hostitelske stanice alebo siete --excludefile : 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 : 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 : Nastavit vlastne flagy scanu TCP scan -sI : Scan typu Idlescan -sO: Scan protokolu IP -b : Scan vyuzivajuci FTP bounce SPECIFIKACIA PORTOV A PORADIE SCANOVANIA: -p : 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 : Velkosti skupin paralelnych scanov --min-parallelism/max-parallelism : Paralelizacia testu --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout : Udava velkost hodnoty RTT testu --max-retries : Udava pocet retransmisii testu scanovania portov. --host-timeout : Po uplynuti tohoto casoveho limitu ukoncit test cielovej stanice --scan-delay/--max-scan-delay : Prisposobit oneskorenie medzi testami OBIDENIE FIREWALLU/IDS A FALSOVANIE: -f; --mtu : Fragmentovat pakety ( s pridanou moznostou fragmentovania podla velkosti MTU) -D : Ukryt scan pouzitim trikov -S : Sfalsovat zdrojovu adresu -e : Pouzit zadane rozhranie -g/--source-port : Pouzit dane cislo portu --data-length : Do odosielanych paketov vlozit nahodne data --ttl : Nastavit velkost polozky time-to-live protokolu IP --spoof-mac : Sfalsovat MAC adresu aktualneho pocitaca --badsum: Odoslat pakety s falosnym kontrolnym suctom TCP/UDP VYSTUP: -oN/-oX/-oS/-oG : Vystup scanu zadaneho suboru vo formate obycajnom, XML, s|: 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 : Pokracovat v prerusenom scane --stylesheet : 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 : 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 SPECIFIKACIA CIELOVEJ STANICE 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 (Vstup zo zoznamu) Nacita specifikacie cielovych stanic z inputfilename. Zadavanie velkeho zoznamu hostitelskych stanic do prikazoveho riadku je casto tazkopadne avsak casto ziadane. Napriklad vas DHCP server moze exportovat zoznam momentalnych 10000 pridelenych adries, ktore sa maju scanovat, alebo je mozne scanovat vsetky IP adresy okrem tychto na zistenie hostitelskych stanic pouzivajucich neopravnene staticke adresy. Vytvorite zoznam hostitelskych stanic, ktore sa maju scanovat a nazov suboru zadate ako argument k parametru-iL. Polozky v subore mozu byt v lubovolnom formate, ktory je akceptovany Nmapom v prikazovom riadku (IP adresa, hostitelsky nazov, IP adresa typu CIDR, IPv6, alebo rozsahy oktetov). Kazda polozka musi musi byt oddelena aspon jednou medzerou, tabulatormi alebo novym riadkom. Ak sa maju hostitelske stanice nacitavat zo standardneho vstupu a nie aktualneho suboru, je mozne pouzit spojitko (-) -iR (Vybrat nahodne cielove stanice) Pre rozsiahle internetove prieskumy a dalsi vyskum je mozne zvolit nahodne cielove stanice. Argument num hosts udava, kolko IP adries ma Nmap generovat. Automaticky sa preskocia adresy privatne, multicastove alebo nealokovane. Argument 0 udava scan, ktory sa nikdy neskonci. Je potrebne uvedomit si, ze niektori sietovi administratori s nevolou sleduju neopravnene scanovania sieti a mozu sa stazovat. Pouzitie tejto moznosti je na vlastne nebezpecie! Ak sa budete v jedno dazdive odpoludnie naozaj nudit, pokuste sa prikazom nmap -sS -PS80 -iR 0 -p 80 najst nahodne webove servery. --exclude (Vynechat hostitelske stanice alebo siete) Specifikuje zoznam cielovych stanic oddelenych ciarkou, ktore sa maju vynechat zo scanu, aj ked su castou celkoveho specifikovaneho sietoveho rozsahu. Zoznam pouziva obvyklu syntax Nmapu, to znamena hostitelske nazvy, bloky adries podla CIDR, rozsahy oktetov, atd. Tato moznost je uzitocna, ak sa v scanovanych sietach vyskytuju nedotknutelne kriticke servery, systemy s nepriaznivou reakciou na scanovanie portov, ci systemy spravovane dalsimi ludmi. --excludefile (Vynechat subor zo zoznamu) Ponuka podobnu funkcionalitu ako moznost --exclude s tym rozdielom, ze vynechane cielove stanice su namiesto prikazoveho riadku ulozene v exclude_file s polozkami oddelenymi novym riadkom, medzerou alebo tabulatorom. 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[3]. 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[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 ) 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 (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. ZAKLADY SCANOVANIA PORTOV 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 Aplikacia na tomto porte aktivne prijima TCP spojenia alebo UDP pakety. Zistenie tohoto faktu je casto hlavnym cielom scanovania portov. Ludia s bezpecnostou v mysli vedia, ze kazdy otvoreny port je pristupom pre utok. Utocnici a testeri preniknutia chcu vyuzivat otvorene porty, zatial co administratori sa pokusaju zatvorit ich alebo chranit ich firewallmi bez limitovania opravnenych pouzivatelov. Otvorene porty su zaujimave aj pre nebezpecnostne scany, pretoze ukazuju sluzby dostupne v sieti. zatvoreny Zatvoreny port je pristupny (prijima a odpoveda na pakety testu vykonavaneho Nmapom), ale ziadna aplikacia na nom nepocuva. Mozu sa zist pri zistovani ci je hostitelska stanica aktivna na IP adrese (zistenie hostitelskej stanice alebo ping scan) a ako cast detekcie OS. Pretoze zatvorene porty su dosiahnutelne, moze byt uzitocne vykonat neskorsi scan a niektore mozu byt neskor otvorene. Administratori mozu uvazovat o blokovani takychto portov prostrednictvom firewallu. Tie by sa potom objavili vo filtrovanom stave, ktory je rozobrany nizsie. filtrovany Nmap nedokaze urcite, ci je port otvoreny, pretoze filtrovanie paketov zabranuje testom dosiahnut tento port. Filtrovanie moze pochadzat z osobitneho firewalloveho zariadenia, pravidiel routera alebo hostitelskeho softwaroveho firewallu. Tieto porty frustruju utocnikov, pretoze poskytuju malo informacii. Niekedy odpovedia chybovou spravou ICMP ako napriklad typ 3, kod 13 (destination unreachable: communication administratively prohibited), ale filtre, ktore jednoducho zahodia test bez odpovede su ovela beznejsie. Tento jav prinuti Nmap zopakovat pokus niekolkokrat kvoli moznemu pripadu, ze test bol zahodeny kvoli zahlteniu siete. Toto dramaticky spomaluje scan. nefiltrovany Nefiltrovany stav znamena, ze port je pristupny, ale Nmap nedokaze urcite, ci je otvoreny alebo zatvoreny. Len ACK scan, pouzivany na zmapovanie pravidiel firewallu, klasifikuje porty do tohoto stavu. Scanovanie nefiltrovanych portov inymi typmi scanu ako napr. Window scan, SYN scan alebo FIN scan, moze pomoct rozlustit, ci je port otvoreny. otvoreny|filtrovany Nmap charakterizuje porty tymto stavom, ak nedokaze urcit, ci je port otvoreny alebo filtrovany. K tomu dochadza pri typoch scanov portov, kde otvorene porty neposkytuju odpoved, co moze tiez znamenat, ze paketovy filter zahodil test alebo vyvolanu odpoved, takze Nmap nedokaze naisto urcit, ci je port otvoreny alebo filtrovany. Protokoly UDP,IP a scany FIN, Null a Xmas vykonavaju takuto klasifikaciu portov. zatvoreny|filtrovany Tento stav je pouzity, ked Nmap nedokaze urcit ci je port zatvoreny alebo filtrovany. Pouziva sa len pri scane typu IPID Idle. SPOSOBY SCANOVANIA PORTOV 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 ) SYN scan je predvolenym a najoblubenejsim typom scanu a to z dobrych dovodov. Dokaze byt vykonany rychlo, scanujuc tisicky portov za sekundu tam, kde je rychla siet bez obmedzeni dotieravych firewallov. SYN scan je relativne nenapadny a tajny, pretoze nikdy nedokonci fazu nadvazovania TCP spojeni. Funguje aj proti akymkolvek TCP stackom a nezavisi teda na svojraznostiach konkretnych platform ako dalsie Nmapovske scany Fin, Null, Xmas, Maimon a Idle. Umoznuje takisto ciste a spolahlive rozlisenie medzi otvorenymi, zatvorenymi a filtrovanymi stavmi. 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()) Scan TCP Connect() je predvolenym typom TCP scanu, ak SYN scan nepatri medzi moznosti. K tomu dochadza, ak pouzivatel nema privilegia na odosielanie neupravenych paketov, alebo pri scanovani sieti s protokolom IPv6. Nmap namiesto vytvorenia neupravenych paketov, ako pri vacsine dalsich scanov, poziada operacny system o vytvorenie spojenia s cielovou stanicou a portom pomocou systemoveho volania connect(). Je to presne to iste volanie na vyssej urovni k vytvoreniu spojenia, ktore vyuzivaju webove prehliadace, klienti P2P a vacsina dalsich aplikacii vyuzivajucich siet a tvori cast programoveho rozhrania znameneho pod menom Berkeley Sockets API. Namiesto prijimania a spracovavania neupravenych odpovedi po sieti, Nmap pri kazdom pokuse o spojenie pouziva toto rozhranie API na ziskanie informacii o stave. 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) Zatial co vacsina oblubenych sluzieb na internete funguje na TCP protokole, UDP[5] sluzby su tiez siroko nasadzovane. Tri najbeznejsie z nich su DNS, SNMP a DHCP (registrovane porty 53, 161/162 a 67/68). Pretoze scanovanie UDP je vseobecne pomalsie a narocnejsie ako TCP, niektori spravcovia bezpecnosti si nevsimaju tieto porty a to je chyba, lebo zneuzitelne UDP sluzby su celkom bezne a utocnici iste nebudu ignorovat cely protokol. Nastastie, Nmap dokaze pomoct urobit supis tychto UDP portov. 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) Tieto tri typy scanov (dalsie sa daju vykonat pouzitim parametra --scanflags su opisane v dalsej casti) vyuzivaju malu dieru v standarde TCP RFC[6], aby rozlisili medziotvorenymi a zatvorenymi portmi. Na strane sa 65 hovori, ze "ak je [cielovy] port zatvoreny.... prichadzajuci segment, ktory neobsahuje flag RST sposobi, ze sa ako odpoved odosle RST segment." Dalsia strana potom rozobera pakety odosielane na otvorene porty bez nastavenych bitov SYN, RST ani ACK a tvrdi: "je nepravdepodobne, ze sa dostanete do tejto situacie, ale ak k nej dojde, zahodte segment a vratte sa." 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) Nenastavuje ziadne bity(tcp flag header je nastaveny na 0) FIN scan (-sF) Nastavi len bit TCP FIN. Xmas scan (-sX) Nastavi flagy FIN, PSH a URG, cim sa paket "rozsvieti" ako Vianocny stromcek. 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) Tento scan sa lisi od ostatnych doposial rozoberanych v tom, ze nikdy neurcuje porty v stave otvoreny (dokonca ani otvoreny|filtrovany). Pouziva sa na zmapovanie sad pravidiel firewallu, ci su stavove alebo bezstavove a ktore porty su filtrovane. 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) Window scan je presne taky isty ako ACK scan az na to, ze vyuziva implementacne detaily istych systemov na rozlisenie otvorenych a zatvorenych portov, namiesto prosteho vypisu nefiltrovany po navrate RST paketu. Realizuje sa to preskumanim polozky RST paketu s nazvom TCP Window. Na niektorych systemoch pouzivaju otvorene porty kladnu velkost okienka, dokonca aj pre RST pakety, kym, zatvorene porty maju nulovu velkost okienka, takze namiesto vypisu stavu portu ako nefiltrovany Window scan zobrazi port v staveotvoreny alebo zatvoreny podla velkosti okienka (kladna resp. nulova). 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) Maimon scan je pomenovany po svojom objavitelovi, Urielovi Maimonovi. Tuto techniku opisal v casopise Phrack, vydanie #49 (November 1996) Nmap s touto metodou bol vydany o dve vydania neskor. Metoda funguje presne ako scany Null, FIN a Xmas, ale test je typu FIN/ACK. Podla standardu RFC 793 (TCP), RST paket by mal byt generovany ako odpoved na tento test bez ohladu na otvoreny alebo zatvoreny port. Uriel vsak spozoroval, ze mnohe systemy odvodene od BSD jednoducho zahodia paket, ak je port otvoreny. --scanflags (Vlastny TCP scan) Naozaj pokrocili pouzivatelia Nmapu sa nemusia obmedzovat len na vopred ponuknute type scanov. Parameter --scanflags vzdy umozni zadanim lubovolnych TCP flagov vytvorit vlastny scan. Neobmedzujte svoju kreativitu pri vyhybani sa systemom IDS, ktorych vyrobcovia jednoducho prelisovali manual k Nmapu a pridali specificke pravidla. 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 (Scan naprazdno - Idlescan) Tato pokrocila metoda umoznuje naozaj slepy scan portov cielovej stanice s tym, ze z lokalnej skutocnej IP adresy nie su odosielane ziadne pakety. Namiesto toho sa pouzije utok po bocnom kanale, ktory vyuziva delenie na IP fragmenty a predpovedatelne tvorenie sekvencie ID cisel na zombie hostitelovi. Tym sa zhromazduju informacie o otvorenych portoch na cielovom pocitaci. IDS systemy zobrazia, ze scan pochadza z pocitaca zombie, ktory bol specifikovany, musi byt samozrejme aktivny a splnat urcite kriteria. Tento fascinujuci typ scanu je prilis zlozity na plny popis v tejto prirucke, takze som uplne detaily popisal neformalnym sposobom a ulozil na adresu https://nmap.org/book/idlescan.html. 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) Scan protokolu IP umoznuje urcite, ktore protokoly IP (TCP, ICMP, IGMP, atd.) su podporovane cielovymi pocitacmi. Technicky to nie je scan portov, pretoze prebieha roznymi cislami protokolov IP a nie cislami portov protokolov TCP a UDP. Aj napriek tomu pouziva parameter -p na vyber scanovanych cisel protokolov, oznamuje vysledky v normalnom formate tabulky portov a dokonca pouziva ten isty mechanizmus scanu ako prave metody scanovania portov, takze je dost blizko scanovaniu portov, a preto patri sem. 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 bounce scan) Zaujimavou funkciou protokolu FTP (RFC 959[7]) je podpora takzvanych proxy ftp spojeni, co umoznuje pouzivatelovi pripojit sa k jednemu FTP serveru a potom ziadat o to, aby sa subory posielali serveru tretej strany. Tato vlastnost je priam idealna pre zneuzitie na mnohych urovniach , takze mnohe servery ju prestali podporovat. Jednym z tychto zneuziti tejto funkcie je vyvolanie situacie, kde FTP server scanuje porty dalsich hostitelskych stanic. Je mozne zaradom jednoducho poziadat FTP server o zaslatie subor na kazdy zaujimavy port cieloveho hostitela. Chybova sprava opise, ci je port otvoreny alebo nie. To je dobry sposob ako obist firewally, pretoze FTP servery organizacii su casto umiestnovane tam, kde maju vacsi pristup k vnutornym hostitelskym staniciam ako kazda ina stanica na internete. Nmap podporuje ftp bounce scan pomocou parametra -b. Ako argumenty pouziva pouzivatelske meno:heslo@server:port. Server je nazvom IP adresy zranitelneho FTP servera. Tak ako aj pri normalnej URL adrese, aj tu sa moze vynechat pouzivatelske meno:heslo, pricom sa pouziju anonymne prihlasovacie udaje (pouzivatel: anonymous heslo:-wwwuser@). Cislo portu (a predchadzajuca dvojbodka ) mozu byt vynechane tiez, pricom sa vtedy pouzije povodny FTP port (21) na serveri. 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. SPECIFIKACIA PORTU A PORADIE SCANOV 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 (Scanovat len specifikovane porty) Tento parameter specifikuje, ktore porty sa maju scanovat a prepise povodne nastavenie. Mozu byt pouzite jednotlive cisla portov, ako aj rozsahy oddelene spojovnikom, napr. 1-1023. Zaciatocne a konecne hodnoty rozsahu mozu byt vynechane, cim budu Nmapom pouzite hodnoty 1 resp. 65535. Je teda mozne specifikovat parameter -p- cim sa budu scanovat porty od 1 po 65535. Po explicitnom specifikovani je mozne scanovat aj port 0. Pri scanovani protokolu IP ,(-sO), tento parameter specifikuje cisla protokolov, ktore sa maju scanovat (0-255). 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) Udava, ze je nutne scanovat len porty uvedene v subore nmap-services ktory je dodavany spolu s Nmapom(alebo subor s protokolmi pomocou parametra -sO). Tento sposob je ovela rychlejsi ako scannovanie vsetkych 655535 portov na hostitelskej stanici. Pretoze tento zoznam obsahuje viac ako TCP portov, nie je tu vyrazny rozdiel oproti povodnemu TCP scanu s okolo 1650 portmi. Rozdiel je dramaticky, ak specifikujete svoj vlastny maly subor nmap-services pouzitim parametru --datadir. -r (Nevyberat porty nahodne) V predvolenom nastaveni vybera Nmap poradie scanovanych portov nahodne (okrem toho, ze iste vseobecne pristupne porty su z dovodov efektivnosti na zaciatok). Tento proces randomizacie je za normalnych okolnosti ziadany, ale parametrom -r je mozne specifikovat sekvencne scanovanie portov. DETEKCIA SLUZBY A VERZIE 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 https://nmap.org/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) Umoznuje detekciu verziu ako bolo spomenute vyssie. Je mozne pouzit namiesto toho parameter -A, ktorym sa povoli aj detekcia OS. --allports (Pri detekcii verzie nevynechavat ziadne porty) V predvolenom nastaveni Nmap pri detekcii verzie vynechava TCP port 9100, pretoze niektore tlaciarne tlacia vsetko co pride na tento port a vedie to k hromade vytlacenych stran poziadaviek HTTP get request, poziadaviek SSL session request, atd.. Toto spravanie sa da zmenit upravenim alebo odstranenim direktivy Exclude v suborenmap-service-probes alebo mozete zadat parameter--allports, aby sa scanovali vsetky porty nehladiac na direktivu Exclude. --version-intensity (Nastavit intenzitu scanovania verzie) Ak sa vykonava scan verzie (-sV), Nmap odosiela seriu testov , pricom kazdemu z nich je priradena vynimocna hodnota medzi 1 az 9. Kym testy z nizsou hodnotou su ucinne na testovanie sirokej skalu beznych sluzieb, vyssie cisla su len zriedkavo uzitocne. Stupen intenzity udava, ktore testy sa maju pouzit. Cim vyssie je cislo, tym vacsia je pravdepodobnost, ze sluzba bude spravne indentifikovana, taketo scany vsak trvaju dlhsie. Predvolena hodnota je 7. Ak je test registrovany na cielovy port v subore nmap-service-probes pomocou direktivy ports, tento test sa vykona bez ohladu na stupen intenzity. Zaistuje to to, ze DNS testy sa budu vzdy robit vhladom na lubovolny otvoreny port 53, SSL skuska vzhladom na port 443, atd.. --version-light (Povolit light mod ) Je to pohodlny alias pre parameter --version-intensity 2. Tento light mod znacne urychluje scanovanie verzie, no znizuje sa pravdepodobnost spravnej identifikacie sluzieb. --version-all (Vyskusat kazdy test) Alias pre parameter --version-intensity 9, cim sa zaisti vykonanie kazdeho testu voci kazdemu portu. --version-trace (Sledovat cinnost scanovania verzie) Nmap zobrazi rozsiahle debugovacie informacie cinnosti scanovania verzie. Je to podmnozina vystupu pri zadani parametra --packet-trace. -sR (RPC scan) Tato metoda funguje v spojeni s rozlicnymi scanmi portov Nmapu, vsetky zistene otvorene TCP/UDP porty zahlti NULL prikazmi programu SunRPC za ucelom zistenia, ci su to porty sluzby RPC a ak ano, ktoremu programu a cisle verzii sluzia. Rovnake informacie sa daju efektivne ziskat pomocou parametru rpcinfo -p aj ked je mapovac portov cielovej stanice za firewallom alebo chraneny TCP wrappermi. Decoye momentalne nefunguju s RPC scanom. Toto je automaticky povolene ako cast scanu verzie pri zadani parametra (-sV). Kedze detekcie verzie obsahuje okrem tohoto este ovela viac veci, parameter -sR sa pouziva zriedka. DETEKCIA OS 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.https://nmap.org/osdetect/. Detekcia OS je povolovana a ovladana nasledujucimi moznostami parametrov: -O (Povolit detekciu OS) Umozni detekciu OS podla vyssie opisaneho rozboru. Alternativne sa pouzitim parametra -A umozni detekciu OS aj verzie. --osscan-limit (Obmedzit detekciu OS len na slubne cielove stanice) Detekcia OS je ovela efektivnejsie, ak je zisteny aspon 1 port otvoreny a 1 port zatvoreny. Po nastaveni tohoto parametra sa nebude vykonavat detekcia OS na pocitacoch, ktore nesplnaju tieto kriteria, cim sa da usetrit podstatny cas, hlavne pri scanoch s parametrom -P0 aplikovanych na mnohych hostitelskych staniciach, no je to dolezite len ak sa pre detekciu OS zada parameter -O alebo -A. --osscan-guess; --fuzzy (Odhadnut vysledky detekcie OS) Ak je Nmap nedokaze detekovat uplnu zhodu s OS, niekedy navrhne dalsie co najblizsie zhody ako moznosti. Nmap to normalne vykonava, len ak je zhoda velmi podobna. Kazda z tychto dvoch ekvivalentnych moznosti sposobi agresivnejsi odhad Nmapu. CASOVANIE A VYKON 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 ; --max-hostgroup (Prisposobit velkosti paralelnych skupin pri scanovani) Nmap ma schopnost sucasne scanovat porty alebo verzie viacerych hostitelskych stanic a to takym, sposobom, ze sa cielovy rozsah IP adries rozdeli do skupin a potom sa scanuje jedna skupina sucasne. Vo vseobecnosti su efektivnejsie vacsie skupiny, no nevyhodou je, ze vysledky nemozu byt poskytnute, kym nie je ukoncene cela skupina. cize ak Nmap zacne so skupinou velkosti 50, pouzivatel nedostane ziadnu spravu (okrem updatov v mode verbose) az kym nie je ukoncenych vsetkych 50 hostitelskych stanic. 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 ; --max-parallelism (Upravit paralelizaciu testov) Tieto parametre ovladaju absolutny pocet testov, co moze byt nedokoncene pre skupinu hostitelskych pocitacov. Pouzivaju sa pri scanovani portov a zistovenie hostitelskych pocitacov. V povodnom nastaveni pocita vzdy sa meniaci idealny stav paralelizmu v zavislosti na vykone siete. Ak su pakety zahadzovane, Nmap spomali a povoli menej neukoncenych scanov. Idealny pocet testov pri dobrych podmienkach v sieti pomaly stupa. Tieto parametre urcuju na tuto premennu minimalnu a maximalnu hranicu. V predvolenom nastaveni sa idealny paralelizmus moze znizit az na 1, ak sa sietove testy javia ako nespolahlive a na druhej strane idealizmus stupa pri vybornych podmienkach. 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