Vystup

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)

Sposobi, zenormal output sa presmeruje do suboru so zadanym nazvom. Ako bolo rozobrate vyssie, tento vystup sa mierne lisi od interaktivneho - interactive output.

-oX <filespec> (XML vystup)

Sposobi, ze XML output sa presmeruje do suboru so zadanym nazvom. Nmap zahrna definiciu typu dokumentu (DTD), co umoznuje XML parserom vytvarat korektny XML vystup Nmapu. Je to sice urcene hlavne pre programove ucely, moze takisto pomoct ludom interpretovat XML vystup Nmapu. DTD definuje platne prvky formatu a casto vymenuva atributy a hodnoty, ktore mozu nadobudat. Posledna verzia je dostupna z adresy https://nmap.org/data/nmap.dtd.

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 a Nmap::Parser 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)

Vystup formatu Script kiddie je podobny interaktivnemu, no dodatocne sa spracuvava, aby vyhovoval skupine l33t HaXXorZ, ktori predtym opovrhovali Nmapom kvoli jeho doslednemu formatovaniu velkych pismen a hlaskovaniu. Ludia s nedostatkom zmyslu pre humor by si mali uvedomit, ze tento parameter je mysleny ako vtip pre script kiddies, predtym ako ma zacnu flamovat za to, ze im udajne pomaham.

-oG <filespec> (Vystup typu Grep)

Tento format vystupu je spomenuty ako posledny, pretoze je zastaraly. Vystup vo formate XML je ovela mocnejsi a takmer tak isto vhodny a pohodlny pre skusenych pouzivatelov. XML je standardom, pre ktory je dostupnych mnoho excelentnych parserov, kym vystup typu grep je len moj vlastny vymysel. XML je rozsiritelne na podporu novych vydanych funkcii Nmapu, zatial co tieto funkcie musim casto vynechat pri vystupe formatu grep kvoli nedostatku miesta na ich umiestnenie.

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)

Pre ucel pohodlnosti je mozne zadat -oA <basename>, cim sa vysledky scanu naraz ulozia v normalnom, XML a grep formate. Ulozia sa do suborov v tvare are stored in <basename>.nmap, <basename>.xml a <basename>.gnmap. Tak ako pri vacsine programov je aj tu mozne pridat predponu adresarovej cesty, napr. ~/nmaplogs/foocorp/ na UNIXovych systemoch alebo c:\hacking\sco na Windows.

Miera vypisu a moznosti debugovania
-v (Zvysit stupen miery vypisu)

Zvysi stupen miery vypisu, cim Nmap zobrazi viac informacii o vykonavanom scane. Otvorene porty su zobrazovane hned pri ich najdeni. Ak Nmap odhaduje, ze scan zabere viac ako niekolko minut, zobrazi tento odhad. Pri dvojnasobnom pouziti parametru sa este viac zvysi miera vypisu. Viacnasobne pouzitie nema ziadny efekt.

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)

Ak ani mod verbose neposkytuje dostatocne udaje, je vhodne pouzit debugovanie, cim sa doda omnoho viac informacii. Tak ako pri parametri stupna urovne vypisu, (-v), debugovanie sa povoli riadkovym parametrom(-d) a jeho stupen sa da zvysit jeho niekolkonasobnym zadanim. Alternativne je mozne nastavit stupen debugovania dosadenim argumentu za parameter -d, napriklad -d9 nastavi uroven na devat, co predstavuje najvyssi platny stupen a v pripade, ze sa nevykonava velmi jednoduchy scan s par portmi a cielovymi stanicami vyprodukuje tisicky riadkov.

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)

Nmap zobrazi obsah kazdeho odoslaneho alebo prijateho paketu. Casto sa to pouziva pre debugovanie, ale zide sa tiez novacikom, ktori su presne rozumiet, co sa deje pod pokryvkou Nmapu. Ak chcete predist zobrazovaniu tisicov riadkov, je mozne specifikovat obmedzeny pocet portov na scanovanie, napr.-p20-30. Ak vas zaujima len priebeh detekcie verzie, zadajte --version-trace.

--iflist (Zobrazit zoznam rozhrani a ciest)

Zobrazi zoznam rozhrani a systemovych ciest tak ako boli detekovane Nmapom, co sa hodi pre debugovanie problemov s routovanim alebo nespravnou charakterizaciou zariadenia, napr. ak Nmap povazuje pripojenie PPP za ethernetovske. .

Rozne moznosti vystupu
--append-output (Pripojit vystup namiesto vymazania predchadzajucich dat)

Pri specifikacii nazvu suboru za parametrom formatu vystupu napr. -oX alebo -oNsa v predvolenom nastaveni subor prepise. Ak chcete zachovat obsah suboru a pripojit nove vysledky, zadajte parameter --append-output a vsetky zadane nazvy suborov sa namiesto prepisovania budu rozsirovat o nove data. Nefunguje to pre data scanu pre format XML(-oX), pretoze sa vysledny subor nespracuje spravne, az kym ho neopravite rucne.

--resume <filename> (Pokracovat v prerusenom scane)

Niektore rozsiahle scany trvaju Nmapu velmi dlho - radovo aj dni. Taketo scany nebezia stale do konca. Mozu existovat obmedzenia, ze Nmap nesmie byt spusteny pocas pracovneho casu, mohla by spadnut siet, pocitac so spustenym Nmapom by mohol planovane ci neplanovane restartovat alebo by Nmap sam mohol zhavarovat. Administrator ho moze zrusit takisto a to stlacenim kombinacie ctrl-C. Restartovat cely scan od zaciatku moze byt neprijatelne. Nastastie, ak sa uchovavali logovacie zaznamy typu normal (-oN) alebo grep (-oG) , pouzivatel moze pokracovat v scanovani s tymi istymi cielovymi stanicami ako predtym pred prerusenim scanu. Docieli sa to zadanim parametra --resume a vystupneho suboru vo formate normal/grep ako argumentu. Ziadne dalsie argumenty nie su povolene, pretoze Nmap spracuvava subor pomocou predchadzajucich parametrov. Je teda potrebne zadat nmap --resume <logfilename>. Nmap pripoji nove vysledky do suborov specifikovanych v predchadzajucom vykonavani scanu. Taketo obnovenie scanu nepodporuje vystup v XML formate, pretoze miesanie vysledkov dvoch spusteni scanu do jedneho spolocneho spravneho XML suboru by bolo narocne.

--stylesheet <path or URL> (Nastavit XSL stylesheet na prevod XML vystupu)

Nmap je dodavany s XSL stylesheetom nazvanym nmap.xsl na prezeranie a preklad XML formatu do HTML. Vystup XML zahrna direktivu xml-stylesheet , ktora ukazuje na subor nmap.xml, kde bola pocitatocne nainstalovana Nmapom (vo Windowse aktualnym pracovnym adresarom). Nahrajete XML vystup Nmapu do moderneho weboveho prehliadaca a ten by mal zo suboroveho systemu najst subor nmap.xsl a pouzit ho na preklad vysledkov. Ak si zelate pouzit odlisny stylesheet, zadajte ho ako argument za parametrom --stylesheet. Je nutne zadat plnu cestu alebo adresu URL. Jednym z beznych prikladov je --stylesheet https://nmap.org/data/nmap.xsl, co sposobi, ze browser nahra najnovsiu verziu stylesheetu z adresy Insecure.Org. Parameter --webxml robi to iste bez tolkeho pisania a memorovania. Nahratie XSL stylesheetu z Insecure.Org ulahcuje prezeranie vysledkov na pocitaci, ktory nema Nmap (a preto ani nmap.xsl). URL je teda casto uzitocnejsia, ale ulozenie suboru v lokalnom suborovom systeme sa pouziva predvolene kvoli bezpecnosti.

--webxml (Nahrat stylesheet z adresy Insecure.Org)

Tento pohodlny parameter je jednoducho alternativou k zadaniu --stylesheet https://nmap.org/data/nmap.xsl.

--no-stylesheet (Vynechat zadanie XSL stylesheetu z XML)

Tento parameter zabrani Nmapu spajat XSL stylesheet s XML vystupom. Vynecha sa direktiva xml-stylesheet.