Nmap nám pomáha zistiť, ktoré zariadenia sú dostupné v sieti, aké porty majú otvorené a aké služby na nich pravdepodobne bežia. Zenmap GUI je jeho oficiálne grafické rozhranie, v ktorom zadávame ciele, vyberáme profily a prezeráme výsledky bez nutnosti pamätať si každý prepínač. Oba nástroje využijeme pri správe siete, diagnostike aj etickom hackovaní. Hodnota skenu však vzniká až vtedy, keď rozumieme jeho nastaveniu a vieme správne interpretovať odpovede.
Predstavme si firemnú sieť, v ktorej pribudol nový server. Potrebujeme overiť, či sprístupňuje iba schválený web a vzdialenú správu, alebo aj zabudnutú databázu či testovaciu aplikáciu. Nmap nám poskytne pohľad zo siete a Zenmap pomôže nálezy usporiadať. Výsledok následne porovnáme s konfiguráciou servera, pravidlami firewallu a účelom jednotlivých služieb.
V článku si vysvetlíme Nmap príkazy, najpoužívanejšie prepínače, používateľské rozhranie Zenmap a praktické postupy. Ukážeme si aj modelové scenáre zneužitia, aby sme pochopili, aké informácie získava útočník pri prieskume a ako tieto informácie premeniť na ochranné opatrenia. Príklady sú určené pre vlastné zariadenia alebo vopred dohodnuté testovanie so súhlasom prevádzkovateľa.
Čo je Nmap a na čo slúži pri hackovaní
Nmap znamená Network Mapper. Ide o bezlatný nástroj na sieťový prieskum a bezpečnostný audit, ktorý odosiela vybrané sondy a vyhodnocuje odpovede. Podľa nastavenia zisťuje dostupnosť hostiteľov, stavy portov, identitu služieb alebo pravdepodobný operačný systém. Používa sa z terminálu a výsledky dokáže uložiť aj na ďalšie spracovanie.
Nmap a Zenmap GUI download na stiahnutie
Čo dokážeme zistiť pomocou Nmap
Najskôr môžeme overiť, ktoré adresy v dohodnutom rozsahu odpovedajú. Potom vyberieme porty a spôsob ich skenovania. Podrobnejšie sondy dokážu doplniť informácie o aplikácii, jej verzii alebo podporovaných protokoloch. Pomocou Nmap Scripting Engine môžeme spustiť aj konkrétne kontroly konfigurácie a vybraných zraniteľností.
Praktickým výsledkom je napríklad zistenie, že server prijíma spojenia na porte 22 cez TCP a na porte 443 cez TCP, pričom port 3306 je z daného miesta filtrovaný. Samotné číslo portu ešte nepotvrdzuje, ktorá aplikácia ho používa. Na presnejšiu identifikáciu slúži detekcia služby a jej odpovedí. Pri správe infraštruktúry takto overujeme aj zmeny po aktualizácii alebo úprave firewallu.
Aké miesto má Nmap v penetračnom teste
Pri etickom hackovaní patrí Nmap najmä do fázy prieskumu a overovania dostupných služieb. Nálezy pomáhajú rozhodnúť, čo má zmysel ďalej kontrolovať a aké dôkazy potrebujeme. Otvorený port, identifikovaná verzia, potvrdená zraniteľnosť a získaný prístup sú štyri odlišné výsledky. V správe ich musíme rozlišovať.
Napríklad nález služby SSH potvrdzuje dostupnosť príslušného rozhrania, nie znalosť hesla. Nález starej verzie aplikácie je podnetom na overenie podpory a opráv, nie automatickým dôkazom úspešného útoku. Niektoré distribúcie opravujú chyby spätným prenesením opráv bez výraznej zmeny verzie v banneri. Závažnosť preto posudzujeme spolu s konfiguráciou, dostupnosťou služby a podmienkami konkrétnej chyby.
Nmap prepínače voľby terminál CMD
Čo sú porty a prečo rozlišujeme TCP a UDP
IP adresa označuje sieťový cieľ a port pomáha rozlíšiť konkrétne komunikačné rozhranie na danom zariadení. Webový server môže napríklad počúvať na TCP porte 443 a SSH na TCP porte 22. TCP používa spojenie, zatiaľ čo UDP prenáša datagramy bez rovnakého postupu nadväzovania spojenia. Číslo portu preto čítame spolu s protokolom, pretože 53/tcp a 53/udp sú odlišné položky. Názvy služieb priradené k portom sú pomôckou, ktorú pri dôležitom náleze overíme odpoveďou aplikácie.
porty TCP UDP netstat
Čo je Zenmap GUI a ako súvisí s Nmap
Zenmap je oficiálne grafické rozhranie Nmap a prehliadač jeho výsledkov. Skenovanie vykonáva Nmap, zatiaľ čo Zenmap zostavuje príkaz a ponúka prehľadnejšie zobrazenie údajov. Umožňuje ukladať profily, prezerať hostiteľov a služby, pracovať s topológiou a porovnávať dva skeny. Je užitočný aj pri učení, pretože priebežne vidíme, aký príkaz zvolený profil vytvára.
| Nástroj | Hlavná úloha | Kedy ho využijeme |
|---|---|---|
| Nmap | Aktívny sieťový prieskum a skenovanie. | Presné príkazy, opakované kontroly a automatizácia. |
| Zenmap | Grafické ovládanie Nmap a prezeranie výsledkov. | Učenie, profily, filtrovanie a porovnávanie skenov. |
| Wireshark | Zachytávanie a analýza paketov dostupných na sieťovom rozhraní. | Vysvetlenie sieťovej komunikácie a overenie priebehu skenovania. |
| Skener zraniteľností | Vyhodnocovanie väčšieho súboru bezpečnostných kontrol. | Systematické hodnotenie zraniteľností podľa možností konkrétneho produktu. |
Nmap a Wireshark sa pri výučbe dopĺňajú. V prvom nástroji nastavíme sondu a v druhom môžeme sledovať jej sieťový priebeh. Zenmap nám zase pomáha premeniť textový výstup na prehľad hostiteľov a služieb. Kompletný bezpečnostný audit však zahŕňa aj overenie konfigurácie a oprávnení, ktoré samotný portový sken nevyrieši.
Aktuálne vydanie
K októbru 2026 oficiálna stránka ponúka stabilný Nmap 7.992 a príslušný balík Zenmap. Číslo nainštalovaného Nmap zistíme príkazom nmap --version.
Okno About Nmap and Zenmap s označením verzie Zenmap 7.97 vo Windows
Ako nainštalovať Nmap a pripraviť testovacie prostredie
Pred prvým skenom potrebujeme funkčný Nmap, známy cieľ a správne sieťové pripojenie. Administrátorské oprávnenia závisia od zvoleného typu skenovania (sondovania). V Linuxe sú potrebné najmä pri práci s priamo vytváranými paketmi, vo Windows zohráva úlohu aj ovládač Npcap. Najskôr overíme malý rozsah a až potom pridávame ďalšie kontroly.
Inštalácia vo Windows
Oficiálny inštalátor pre Windows zahŕňa aj Zenmap GUI a potrebné súčasti. Pri inštalácii skontrolujeme výber komponentov a nastavenie Npcap. Po dokončení otvoríme nové okno PowerShellu alebo príkazového riadka, aby sa načítala prípadná zmena premennej PATH. Príkazy na overenie sú rovnaké v oboch prostrediach.
nmap --version
nmap -h
Ak systém príkaz nenájde, overíme inštalačný priečinok a PATH. Ak Nmap hlási problém s prístupom k rozhraniu, preveríme Npcap a požadované oprávnenia. Pri SYN, UDP a detekcii operačného systému môže byť potrebné spustiť terminál alebo Zenmap ako správca. Samotné otvorenie grafického rozhrania potrebné oprávnenia nevytvorí.
Inštalácia v Ubuntu a Kali Linux
V distribúciách založených na Debiane môžeme Nmap nainštalovať cez správcu balíkov. Nasledujúce príkazy vykonáme v termináli so shellom Bash. Nainštalovaná verzia závisí od repozitára distribúcie a nemusí byť totožná s najnovším vydaním projektu. Dostupnosť Zenmap preverujeme samostatne, pretože balík Nmap nemusí grafické rozhranie obsahovať.
sudo apt update
sudo apt install nmap
nmap --version
V macOS vyberieme aktuálny podporovaný spôsob inštalácie z oficiálnej stránky. Pri Linuxe sa tiež vyhneme starým návodom, ktoré automaticky predpokladajú rovnaké závislosti Zenmap v každej distribúcii. Na základné skenovanie grafické rozhranie nepotrebujeme. Ak si potrebujeme upevniť prácu so shellom, pomôže článok Linux príkazy pre administráciu Ubuntu, Kali, openSUSE a Red Hat.
Modelové laboratórium pre praktické príklady
V príkladoch používame izolovanú testovaciu sieť 192.168.56.0/24. Pripravíme ju napríklad ako internú alebo host-only sieť vo virtualizačnom nástroji a overíme, ktoré zariadenia sú do nej pripojené. Privátna IP adresa sama osebe neznamená povolenie na skenovanie. Uvedené adresy nahradíme adresami vlastných testovacích zariadení.
| Adresa | Modelová úloha | Predpoklad pre príklad |
|---|---|---|
192.168.56.10 |
Počítač so skenerom. | Má prístup do testovacej siete. |
192.168.56.20 |
Linuxový server. | Podľa cvičenia má nastavené SSH alebo web. |
192.168.56.30 |
Windows alebo Samba server. | Pre cvičenie SMB má povolenú príslušnú službu. |
192.168.56.40 |
Testovací FTP server. | Obsahuje iba necitlivé ukážkové súbory. |
192.168.56.53 |
Testovací DNS server. | Odpovedá na povolené DNS požiadavky. |
Nie je potrebné pripraviť všetky servery naraz. Pri každom cvičení použijeme iba zariadenie s príslušnou službou. Ak služba nebeží, správnym výsledkom môže byť zatvorený alebo filtrovaný port. Všetky ukážky výstupov v článku sú modelové a nepredstavujú meranie konkrétnej siete.
Ako čítať Nmap príkazy v termináli a konzole
Pri bežnej práci spúšťame jeden program nmap a jeho správanie meníme prepínačmi a argumentmi. Zvolíme cieľ, spôsob zisťovania dostupnosti, typ skenu a rozsah portov. Podľa potreby pridáme identifikáciu služieb, konkrétny skript a uloženie výsledku. Takto zostavený príkaz vieme vysvetliť aj zopakovať.
nmap -sT -sV -p 22,80,443 --reason -oA kontrola-webu 192.168.56.20
| Časť príkazu | Význam |
|---|---|
nmap |
Spustí sieťový skener Nmap. |
-sT |
Použije TCP connect sken. |
-sV |
Pokúsi sa identifikovať sieťové služby a ich verzie. |
-p 22,80,443 |
Obmedzí skenovanie na tri uvedené TCP porty. |
--reason |
Doplní dôvod vyhodnoteného stavu portu alebo zariadenia. |
-oA kontrola-webu |
Uloží výsledky skenovania pod spoločným základom názvu do troch formátov: .nmap, .xml a .gnmap. |
192.168.56.20 |
Určí IP adresu cieľového zariadenia. |
Príkaz môžeme vložiť do PowerShellu, príkazového riadka aj bežného linuxového terminálu, ak je Nmap dostupný. Príkazy v článku zapisujeme na jeden riadok, aby sme sa vyhli rozdielom v pokračovaní riadka medzi shellmi. Pri kopírovaní zachováme obyčajné spojovníky. Veľkosť písmen je podstatná, pretože -v zvyšuje podrobnosť výpisu, kým -V vypíše verziu programu.
Ako zadávať ciele a zisťovať dostupné zariadenia
Rozsah cieľov určuje, kam bude Nmap posielať svoje požiadavky. Môžeme použiť jednu adresu, viac adries, rozsah alebo súbor so zoznamom. Pri názvoch vstupuje do postupu DNS, preto pred skenom preveríme aj správnosť prekladu. Zoznam cieľov si vieme pripraviť bez vykonania portového skenu.
| Zápis alebo prepínač | Čo znamená | Príklad použitia |
|---|---|---|
| Jedna IPv4 adresa | Určí jedno cieľové zariadenie. | nmap 192.168.56.20 |
| Viac adries | Cieľové IP adresy oddelíme medzerou. | nmap 192.168.56.20 192.168.56.30 |
| Rozsah v oktete | Určí adresy s posledným oktetom od 20 do 30. | nmap 192.168.56.20-30 |
| CIDR | Určí všetky IP adresy v zadanom sieťovom rozsahu. | nmap -sn 192.168.56.0/24 |
-iL |
Načíta zoznam cieľových zariadení zo súboru. | nmap -iL ciele.txt |
--exclude |
Vylúči zadanú IP adresu alebo rozsah zo skenovania. | nmap -sn 192.168.56.0/24 --exclude 192.168.56.1 |
--excludefile |
Načíta zoznam vylúčených cieľov zo súboru. | nmap -iL ciele.txt --excludefile vynechat.txt |
-sL -n |
Vypíše cieľové adresy bez odosielania skenovacích sond a bez DNS prekladu. | nmap -sL -n 192.168.56.20-30 |
-6 |
Zapne režim skenovania IPv6 adries. | nmap -6 -sT -p 8000 ::1 |
Rozsah /24 obsahuje 256 IPv4 adries, neznamená však 256 dostupných počítačov. Nmap pri CIDR vytvára celý rozsah vrátane jeho okrajových adries. Pri práci so zoznamom si do súboru môžeme uložiť jeden cieľ na riadok. Názvy a ich preklad podrobnejšie vysvetľuje článok Čo je DNS a ako fungujú DNS záznamy.
Rozdiel medzi prepínačmi sn a Pn
Prepínač -sn vypne portový sken a ponechá zisťovanie dostupnosti hostiteľov. Stále teda môže odosielať sieťové sondy. Prepínač -Pn preskočí bežné zisťovanie dostupnosti a zadané adresy považuje za aktívne pre nasledujúce kontroly. Bez ďalšieho obmedzenia tak pokračuje portovým skenom.
| Prepínač | Účel | Čo si nemýlime |
|---|---|---|
-sn |
Zisťovanie dostupnosti hostiteľov bez skenovania portov. | Neznamená nulovú sieťovú komunikáciu. |
-Pn |
Preskočenie bežného overovania dostupnosti hostiteľov. | Neznamená ping sken ani obídenie firewallu. |
-PE |
Použitie ICMP echo sond na zisťovanie dostupnosti hostiteľov. | Blokované ICMP nepreukazuje, že server je vypnutý alebo nedostupný. |
-PS443 |
TCP SYN discovery sonda na port 443. | Ide o zisťovanie dostupnosti hostiteľa, nie o výber všetkých skenovaných portov. |
-PA80 |
TCP ACK discovery sonda na port 80. | Odpoveď nemusí znamenať otvorenú webovú službu. |
-PU53 |
UDP discovery sonda na port 53. | Ide o inú fázu zisťovania dostupnosti než UDP skenovanie pomocou -sU. |
-n |
Vypnutie DNS prekladu názvov. | Nemení spôsob filtrovania ani vyhodnocovania stavov portov. |
-R |
Vynútenie reverzného DNS prekladu cieľových IP adries. | Pre získanie názvov vyžaduje dostupné a použiteľné DNS údaje. |
V lokálnej ethernetovej sieti Nmap typicky využíva ARP a pri IPv6 Neighbor Discovery. Aj pri použití -Pn môže potrebovať vyriešiť adresu susedného zariadenia. Tvrdenie, že tento prepínač odstráni všetku zisťovaciu komunikáciu, by preto bolo nepresné. Ak výsledky nesedia, kontrolujeme aj to, či skenujeme lokálny segment alebo vzdialený cieľ cez smerovač.
Typy skenovania TCP a UDP a ďalšie techniky
Typ skenu určuje, aké sondy odošleme a z čoho budeme odvodzovať stav portu. Pri TCP najčastejšie využijeme SYN alebo connect sken. Pri UDP musíme počítať s tým, že neprítomnosť odpovede nemusí jednoznačne vysvetliť stav služby. Niektoré pokročilé techniky skúmajú filtrovanie alebo správanie protokolu namiesto bežnej dostupnosti aplikácie.
TCP SYN sken a TCP connect sken
Prepínač -sS spustí TCP SYN sken. Nmap vyhodnocuje odpovede na úvodnú časť nadväzovania TCP spojenia a bežné spojenie nedokončuje. Pri jeho použití potrebujeme oprávnenia na prácu s príslušnými paketmi. Označenie stealth, ktoré sa pri tejto technike používa, nezaručuje neviditeľnosť pre sieťový monitoring.
sudo nmap -sS -p 22,80,443 192.168.56.20
Príklad vyššie je určený pre Linux alebo macOS so zodpovedajúcimi oprávneniami. Prepínač -sT využíva pripájanie cez operačný systém a pri otvorenom porte dokončí TCP spojenie. Pre prvé cvičenia je praktický aj bez oprávnení na vytváranie surových paketov. Ak chceme porovnávať dva výsledky, uložíme si použitý typ skenu.
nmap -sT -p 22,80,443 192.168.56.20
UDP sken a jeho nejednoznačné výsledky
UDP sken zapneme cez -sU. Odpoveď aplikácie môže potvrdiť otvorený port, zatiaľ čo vybrané ICMP správy upozornia na nedostupnosť. Ak odpoveď nepríde, výsledkom býva open|filtered. Príčinou môže byť filtrovanie aj služba, ktorá na danú sondu jednoducho nereaguje.
sudo nmap -sU -sV -p 53 192.168.56.53
V testovacom príklade predpokladáme vlastný DNS server a oprávnenie na UDP sken. Identifikácia verzie môže niektoré nejednoznačné výsledky spresniť, pretože používa vhodnejšie aplikačné sondy. Nepovažujeme ju však za záruku odpovede každej služby. UDP sken môže byť výrazne pomalší aj pre obmedzovanie frekvencie ICMP odpovedí.
Prehľad ďalších skenovacích prepínačov
Pokročilé techniky používame vtedy, keď vieme, akú otázku nimi overujeme. ACK sken napríklad pomáha skúmať filtrovanie, ale neurčuje otvorené porty rovnakým spôsobom ako SYN sken. FIN, NULL a Xmas závisia od reakcie TCP implementácie a filtrovania. Ich výsledky preto interpretujeme podľa konkrétnej metódy.
| Prepínač | Technika | Význam pre vyhodnotenie |
|---|---|---|
-sS |
TCP SYN | Rozlišovanie otvorených, zatvorených a filtrovaných portov. |
-sT |
TCP connect | Overenie spojenia cez rozhranie operačného systému. |
-sU |
UDP | Pri chýbajúcej odpovedi často zostáva neistota o stave portu. |
-sA |
TCP ACK | Skúma filtrovanie portov a môže vracať stav unfiltered. |
-sN |
TCP NULL | Používa sondu bez nastavených TCP príznakov. |
-sF |
TCP FIN | Používa sondu s nastaveným príznakom FIN. |
-sX |
TCP Xmas | Používa sondu s nastavenými príznakmi FIN, PSH a URG. |
-sO |
IP protocol scan | Skúma čísla IP protokolov, nie TCP alebo UDP porty. |
Výber portov a identifikácia služieb či operačného systému
Pri štandardnom TCP skene Nmap bežne kontroluje 1 000 najčastejších portov podľa svojej databázy. Nie je to to isté ako číselný rozsah od 1 do 1 000. Rozsah nastavujeme podľa účelu kontroly a protokolu. Až následne rozhodujeme, ktoré dostupné služby chceme identifikovať podrobnejšie.
| Prepínač | Účinok | Praktická poznámka |
|---|---|---|
-p 22 |
Skenovanie jedného portu. | Pri TCP skene overí TCP port 22. |
-p 22,80,443 |
Skenovanie zoznamu konkrétnych portov. | Vhodný pre kontrolu schválenej konfigurácie. |
-p 1-1000 |
Skenovanie číselného rozsahu portov. | Neznamená skenovanie 1 000 najčastejších portov. |
-p- |
Skenovanie portov 1 až 65535 pre zvolené protokoly. | Pri bežnom TCP skene nezapne automaticky UDP skenovanie. |
-p T:22,80,U:53 |
Rozlíšenie portov podľa TCP a UDP protokolu. | Vyžaduje aj zvolený TCP a UDP typ skenu, napríklad -sS -sU. |
--top-ports 20 |
Skenovanie dvadsiatich najčastejších portov. | Výber vychádza z databázy frekvencií portov. |
-F |
Rýchle skenovanie, štandardne 100 najčastejších portov. | Menší rozsah môže vynechať dôležitú sieťovú službu. |
--exclude-ports 9100 |
Vylúčenie konkrétneho portu zo skenovania. | Výnimku uvedieme aj v záverečnom reporte. |
-r |
Sekvenčné poradie skenovaných portov. | Mení poradie skenovania, nie rozsah portov. |
-sV |
Detekcia sieťových služieb a ich verzií. | Pridáva aplikačné sondy na identifikáciu služieb. |
--version-light |
Menej intenzívna detekcia verzií služieb. | Obmedzuje počet skúšaných sond. |
--version-all |
Použitie všetkých sond dostupných pre detekciu verzií. | Vyššia intenzita nemusí zaručiť presnú identifikáciu služby. |
-O |
Odhad operačného systému cieľového zariadenia. | Pracuje s odtlačkom sieťového správania zariadenia. |
--osscan-limit |
Obmedzenie detekcie operačného systému na vhodné ciele. | Pomáha vynechať málo perspektívne pokusy o identifikáciu systému. |
-A |
Aktivuje detekciu operačného systému, verzií služieb, predvolené NSE skripty a traceroute. | Nezapína automaticky skenovanie všetkých portov ani časovací profil -T4. |
Prečo A neznamená všetko
Prepínač -A je skratka pre viac pokročilých funkcií. Rozsah portov aj časovanie zostávajú samostatnými nastaveniami. Ak chceme pri TCP skene všetky bežné číselné porty, potrebujeme rozsah určiť samostatne. Funkcie vyžadujúce zvýšené oprávnenia zároveň závisia od možností spusteného procesu.
Odhad operačného systému býva presnejší, keď Nmap nájde aspoň jeden otvorený a jeden zatvorený TCP port. Firewall, NAT alebo neštandardné odpovede môžu odhad skresliť. Ak nástroj uvedie viac možností, do reportu neprepíšeme jednu z nich ako potvrdený fakt. Overíme ju aj lokálnou inventarizáciou alebo správcom systému.
Časovanie skenu a práca s výpisom a výsledkami
Rýchlosť skenovania ovplyvňuje trvanie kontroly aj kvalitu výsledku. Príliš krátke čakanie môže prehliadnuť odpoveď a vysoká frekvencia môže zaťažiť sieť. Preto najskôr obmedzíme rozsah na otázku, ktorú riešime. Ukladanie výsledkov nám umožní kontrolu zopakovať a preukázať, čo sa skutočne testovalo.
Časovacie šablóny a obmedzenie frekvencie
Nmap ponúka časovacie šablóny od -T0 po -T5. Predvolená je -T3 a -T4 predpokladá primerane rýchlu a spoľahlivú sieť. -T5 používa agresívnejšie hodnoty a môže znižovať presnosť. Pomalšie časovanie zase automaticky nezaručuje, že monitoring sken nezachytí.
| Prepínač | Význam | Na čo dávame pozor |
|---|---|---|
-T0, -T1 |
Veľmi pomalé časovacie šablóny. | Nie sú zárukou neodhaliteľnosti skenovania. |
-T2 |
Pomalšia časovacia šablóna polite. |
Dlhší čas skenovania nemusí byť vždy potrebný. |
-T3 |
Predvolené časovanie normal. |
Rozumné východisko pre prvú kontrolu. |
-T4 |
Rýchlejšia časovacia šablóna aggressive. |
Vyžaduje vhodné sieťové podmienky. |
-T5 |
Najagresívnejšia časovacia šablóna insane. |
Rýchlosť môže prevážiť nad presnosťou výsledkov. |
--max-rate 50 |
Nastaví horný limit frekvencie skenovacích sond. | Nejde o globálny limit všetkej komunikácie NSE skriptov a detekcie verzií. |
--min-rate |
Určuje požadovanú minimálnu frekvenciu odosielania sond. | Neslúži na šetrné obmedzenie zaťaženia siete. |
--max-retries |
Nastavuje limit opakovaných portových sond. | Príliš nízka hodnota zvyšuje riziko neúplných výsledkov. |
--host-timeout 5m |
Nastavuje časový limit skenovania jedného hostiteľa na päť minút. | Prekročenie limitu môže znamenať chýbajúce výsledky skenovania. |
--script-timeout 30s |
Nastavuje časový limit jednej inštancie NSE skriptu na 30 sekúnd. | Predčasne ukončený skript nemusí poskytnúť použiteľný záver. |
Výpis export a opakovateľnosť
Počas práce môžeme zobraziť dôvody stavov a priebežné štatistiky. Na archiváciu si vyberieme textový výstup alebo XML. Pri ďalšom strojovom spracovaní uprednostníme XML pred starším grepovateľným formátom. Do názvu súboru môžeme pridať dátum a účel kontroly.
| Prepínač | Čo poskytuje |
|---|---|
-v, -vv |
Podrobnejšie priebežné informácie o skenovaní. |
--reason |
Dôvody určenia stavu hostiteľa alebo portu. |
--stats-every 30s |
Pravidelné štatistiky priebehu skenovania každých 30 sekúnd. |
--open |
Obmedzí výpis na otvorené alebo potenciálne otvorené porty. |
-oN kontrola.nmap |
Uloží výsledky skenovania do bežného textového súboru. |
-oX kontrola.xml |
Uloží výsledky do štruktúrovaného XML súboru. |
-oA kontrola |
Uloží výsledky do troch súborov: kontrola.nmap, kontrola.xml a kontrola.gnmap. |
--webxml |
Do XML výstupu pridá odkaz na štýl XSL dostupný na webe. |
--iflist |
Zobrazí informácie o sieťových rozhraniach a smerovaní. |
-d |
Zobrazí ladiace informácie na podrobnejšiu diagnostiku skenovania. |
Prepínač --open je najmä filter výpisu a nemení rozsah cieľov na zoznam iba otvorených služieb. Pri nejednoznačných stavoch môže zobrazovať aj potenciálne otvorené porty. Prepínač --webxml zase sám nevytvorí HTML report a nenahrádza -oX. XML môžeme načítať do Zenmap alebo ďalej spracovať vhodným nástrojom.
Nmap Scripting Engine a výber konkrétnych kontrol
Nmap Scripting Engine, skrátene NSE, umožňuje rozšíriť skenovanie o skripty napísané v jazyku Lua. Skripty môžu získavať doplňujúce informácie, overovať konfiguráciu aj testovať konkrétne bezpečnostné chyby. Rozsah ich činnosti závisí od vybraného skriptu. Kategória preto nie je náhradou za prečítanie jeho dokumentácie.
| Prepínač | Význam |
|---|---|
-sC |
Spustí predvolenú sadu NSE skriptov. |
--script http-title |
Vyberie a spustí konkrétny NSE skript. |
--script http-title,http-headers |
Vyberie a spustí dva pomenované NSE skripty. |
--script-help http-title |
Zobrazí dokumentáciu a pomoc ku konkrétnemu NSE skriptu. |
--script-args |
Umožňuje nastaviť argumenty NSE skriptov podľa ich dokumentácie. |
--script-args-file |
Načíta argumenty NSE skriptov z externého súboru. |
--script-trace |
Zobrazí podrobný záznam sieťovej komunikácie vykonávanej NSE skriptmi. |
--script-updatedb |
Obnoví lokálny index NSE skriptov. Nesťahuje nové skripty ani ich aktualizácie. |
Predvolené skripty nie sú synonymom absolútne neškodných kontrol. Aj označenie safe opisuje zámer a charakter skriptu, nie záruku bezproblémového správania každého zariadenia. NSE skripty sa nevykonávajú v bezpečnostnom sandboxe. Spúšťame preto dôveryhodné skripty, ktorých funkcii a rozsahu rozumieme.
Prečo nepoužívať kategóriu vuln ako univerzálny dôkaz
Výber kategórie vuln spustí skupinu kontrol zameraných na zraniteľnosti podľa dostupných skriptov a ich pravidiel. Neznamená kompletný audit všetkých chýb aplikácie. Negatívny výsledok nevylučuje zraniteľnosť, ktorú použitá sada netestovala. Ani pozitívny výsledok bez ďalšieho overenia automaticky neurčuje skutočný dosah v konkrétnom systéme.
Pre prvé cvičenia preto vyberieme presne pomenované kontroly, napríklad http-title, http-headers, ssl-cert, smb-protocols alebo ftp-anon. Každá odpovedá na konkrétnu otázku a výsledok vieme porovnať s nastavením vlastnej služby. Skripty na hádanie hesiel, vyvolanie výpadku alebo vykonanie exploitu majú iný účel a nepatria do základného inventarizačného skenu. Takto udržíme kontrolu zrozumiteľnú aj vyhodnotiteľnú.
Používateľské rozhranie Zenmap GUI krok za krokom
Hlavné okno Zenmap spája zadanie cieľa, výber profilu a prezeranie výsledkov. Dôležité je sledovať pole Command, pretože ukazuje príkaz, ktorý sa bude vykonávať. Vlastný príkaz môžeme upraviť aj priamo. Pri čítaní výsledkov si zároveň overíme, ktorý hostiteľ a ktorý sken sú práve vybrané.
Hlavné okno Zenmap GUI s poľami Target Profile Command a kartami výsledkov skenovania
Polia Target Profile Command a tlačidlá Scan a Cancel
Do poľa Target zadáme cieľovú IP adresu, názov alebo povolený rozsah. V poli Profile vyberieme uložený postup a v poli Command skontrolujeme jeho skutočné parametre. Tlačidlo Scan spustí skenovanie a Cancel umožní prebiehajúcu úlohu zastaviť. Na dodanej snímke je vybraný Intense scan a príkaz obsahuje -T4 -A -v, ale cieľ ešte vyplnený nie je.
Pre prvú kontrolu vlastného servera môžeme do poľa Command zadať nmap -sT -p 22,80,443 --reason 192.168.56.20. V takom prípade ide o vlastný príkaz a nemusí zostať priradený pôvodnému profilu. Pred spustením preveríme cieľ, porty a prípadné skripty. Príkaz si môžeme skopírovať aj do terminálu a porovnať výsledok za rovnakých podmienok.
Ľavý panel Hosts Services a Filter Hosts
Režim Hosts usporiada výsledky podľa zariadení. Po výbere konkrétneho hostiteľa sa zameriame na jeho porty a detaily. Režim Services pomáha hľadať zariadenia podľa zistených služieb, napríklad všetky servery s HTTP. Ovládanie Filter Hosts slúži na zúženie už dostupného prehľadu, nie na spätnú zmenu rozsahu vykonaného skenu.
Karty Nmap Output Ports Hosts Topology Host Details a Scans
Každá karta zdôrazňuje inú časť rovnakých údajov. Textový výstup je vhodný na presnú kontrolu parametrov a hlásení, zatiaľ čo portový prehľad uľahčuje orientáciu. Topológia zobrazuje sieťové cesty podľa dostupných informácií a lepšie ju využijeme s traceroute. Pri viacerých skenoch v jednom okne musíme myslieť na to, že Zenmap dokáže ich výsledky agregovať.
| Karta | Čo v nej nájdeme | Praktické využitie |
|---|---|---|
| Nmap Output | Textový výstup Nmap a priebeh skenovania. | Kontrola chýb, použitého príkazu a podrobností konkrétneho skenu cez Details. |
| Ports / Hosts | Porty vybraného hostiteľa alebo hostiteľov poskytujúcich vybranú službu. | Hľadanie dostupných sieťových služieb a porovnávanie zariadení. |
| Topology | Grafické znázornenie sieťových ciest a hostiteľov. | Orientácia v dosiahnuteľnosti zariadení a počte sieťových skokov. |
| Host Details | IP adresy, stav zariadenia, porty a dostupné informácie o operačnom systéme. | Detailná kontrola konkrétneho zariadenia a súvisiacich poznámok. |
| Scans | Zoznam skenov zahrnutých v aktuálnom inventári. | Rozlíšenie jednotlivých behov skenovania a správa ich výsledkov. |
Topológiu nepovažujeme za automaticky úplnú fyzickú mapu prepínačov, kabeláže a VLAN. Vychádza zo získaných odpovedí a sieťových ciest. Ani grafické hodnotenie hostiteľa podľa počtu otvorených portov nenahrádza posúdenie zraniteľností. Jeden nesprávne sprístupnený administrátorský port môže byť dôležitejší než viac oprávnených služieb.
Ponuky Scan Tools Profile a Help
Ponuka Scan sústreďuje prácu so skenmi vrátane otvárania a ukladania. V ponuke Tools nájdeme nástroje na prácu s výsledkami, napríklad ich porovnanie. Ponuka Profile umožňuje vytvoriť alebo upraviť profil a Help poskytuje pomoc a informácie o aplikácii. Presné názvy a dostupné voľby overíme v používanej verzii a jazykovej lokalizácii.
Predvolené profily Zenmap a tvorba vlastného profilu
Profil je uložené nastavenie príkazu, ktoré môžeme použiť opakovane. Názov pomáha s orientáciou, ale skutočný rozsah práce určuje pole Command. Profily si môžeme upraviť, preto ich obsah nemusí byť v každej inštalácii totožný. Predvolený Intense scan zároveň nemusí byť najvhodnejšou prvou kontrolou citlivého zariadenia.
Rozbalená ponuka profilov Zenmap GUI s voľbami Intense scan Ping scan Quick scan a Regular scan
| Profil | Podstatné nastavenie | Čo si overíme |
|---|---|---|
| Intense scan | -T4 -A -v |
Pokročilé funkcie skenovania a predvolené NSE skripty. |
| Intense scan plus UDP | -sS -sU -T4 -A -v |
Kombináciu TCP a UDP skenovania a vyššie nároky na oprávnenia. |
| Intense scan, all TCP ports | -p 1-65535 -T4 -A -v |
Rozšírenie rozsahu skenovania na všetky TCP porty od 1 do 65535. |
| Intense scan, no ping | -T4 -A -v -Pn |
Preskočenie bežného zisťovania dostupnosti hostiteľov (host discovery). |
| Ping scan | -sn |
Zisťovanie dostupnosti hostiteľov bez skenovania portov. |
| Quick scan | -T4 -F |
Menší výber skenovaných portov a rýchlejšie časovanie. |
| Quick scan plus | -sV -T4 -O -F --version-light |
Detekciu verzií služieb a operačného systému nad menším rozsahom portov. |
| Quick traceroute | -sn --traceroute |
Zisťovanie dostupnosti hostiteľov a dostupné informácie o sieťovej trase. |
| Regular scan | Príkaz nmap bez ďalších volieb profilu. |
Predvolené správanie Nmap podľa oprávnení a sieťového prostredia. |
| Slow comprehensive scan | Kombinácia TCP, UDP, zisťovania dostupnosti hostiteľov a NSE skriptov. | Rozsiahly profil, ktorého konkrétny príkaz a všetky prepínače musíme pred spustením skontrolovať. |
Pri poslednom profile sa nespoliehame na slovo Slow ani na jeho všeobecný opis. V publikovanej konfigurácii projektu obsahuje aj časovanie -T4. O tom, či sa kontrolujú všetky porty, rozhoduje skutočný rozsah v príkaze, nie prísľub komplexnosti v názve. Pri auditnom reporte si preto zaznamenáme konkrétny príkaz a verziu, nie iba meno profilu.
Ako uložíme vlastný kontrolný profil
Otvoríme Profile → New Profile or Command, prípadne použijeme Ctrl + P. Nastavíme príkaz nmap -sT -sV -p 22,80,443 --reason a v časti Profile zadáme výstižný názov, napríklad Kontrola webového servera. Profil uložíme cez Save Changes. Pri použití doplníme konkrétny cieľ a ešte raz preveríme výsledné pole Command.
Editor priebežne prepája nastavenia s príkazovým riadkom, čo pomáha pochopiť význam volieb. V časti pre skripty môžeme vyberať jednotlivé kontroly a čítať ich argumenty. Profil nevnímame ako potvrdenie vhodnosti pre každý server. Rovnakú konfiguráciu používame tam, kde chceme porovnateľné meranie.
Ako správne interpretovať výsledky Nmap
Výsledok vždy opisuje pohľad z konkrétneho miesta a času. Rovnaká služba môže byť z administrátorskej siete otvorená a z hosťovskej siete filtrovaná. Do interpretácie vstupuje typ skenu, smerovanie aj pravidlá na hostiteľovi. Preto si k výsledku zapisujeme aj zdrojovú sieť a účel testu.
| Stav | Význam | Praktický záver |
|---|---|---|
open |
Sonda potvrdila prijímanie komunikácie príslušnou službou. | Overíme identitu služby, jej účel a pravidlá prístupu. |
closed |
Port je dosiahnuteľný, ale služba na ňom nepočúva. | Hostiteľ môže byť funkčný aj bez tejto služby. |
filtered |
Filtrovanie bráni jednoznačnému určeniu, či je port otvorený. | Kontrolujeme pravidlá firewallu, sieťovú cestu a dostupné dôvody vyhodnotenia. |
unfiltered |
Port je dostupný, ale použitá technika neurčila, či je otvorený alebo zatvorený. | Typický výsledok TCP ACK skenovania. |
open|filtered |
Nmap nedokáže rozlíšiť otvorený a filtrovaný port. | Častý výsledok pri UDP skenovaní a niektorých ďalších technikách. |
closed|filtered |
Nmap nedokáže rozlíšiť zatvorený a filtrovaný port. | Výsledok závisí od použitej techniky skenovania a jej nastavení. |
Modelový výstup a jeho vysvetlenie
Nasledujúca ukážka je skrátený modelový výpis. Nepredstavuje reálny sken a konkrétne verzie aplikácií zámerne nepredpisuje. Riadok s portom čítame spolu s protokolom, stavom a identifikáciou služby. Pri nejasnosti potrebujeme ďalší dôkaz, nie iba odhad podľa čísla portu.
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp closed https
3306/tcp filtered mysql
Otvorený port 22 nie je dôkazom slabého prihlasovania. Zatvorený port 443 môže byť správny stav testovacej aplikácie, ktorá HTTPS vôbec neposkytuje. Označenie mysql pri porte 3306 bez úspešnej detekcie služby nemusí potvrdzovať konkrétny databázový server. Filtrovanie navyše nepreukazuje, že na cieľovom zariadení žiadna databáza nebeží.
Praktické príklady použitia Nmap a Zenmap
Nasledujúce cvičenia odpovedajú na konkrétne administračné otázky. Používame vlastné laboratórium a predpoklady uvedené pri každom príklade. Očakávaný výsledok opisuje typ informácie, nie zaručený stav portu. Pri každom náleze si overíme aj lokálnu konfiguráciu služby.
Príklad 1 Overenie otvoreného portu na vlastnom počítači
Na počítači s Pythonom vytvoríme pracovný priečinok s necitlivým ukážkovým súborom. V tomto priečinku spustíme jednoduchý HTTP server viazaný iba na IPv4 loopback. Vo Windows môže byť namiesto príkazu python potrebný príkaz py. Server necháme bežať a otvoríme druhé okno terminálu.
python -m http.server 8000 --bind 127.0.0.1
nmap -sT -sV -p 8000 --reason 127.0.0.1
Očakávame otvorený TCP port 8000 a podľa úspešnosti sond aj identifikáciu HTTP služby. Server potom zastavíme cez Ctrl + C a rovnaký sken zopakujeme. Port by mal prestať byť otvorený, ak ho medzičasom neobsadil iný proces. Príklad ukazuje vzťah medzi bežiacou službou a výsledkom skenu bez práce s cudzím zariadením.
Príklad 2 Inventarizácia dostupných zariadení
V pripravenej laboratórnej sieti chceme zistiť, ktoré zariadenia odpovedajú. Nepotrebujeme zatiaľ zisťovať ich porty ani spúšťať skripty. Použijeme -sn a uložíme si bežný textový záznam. V lokálnom ethernetovom segmente môže byť výsledok založený na ARP komunikácii.
nmap -sn -n -oN inventar-hostitelov.nmap 192.168.56.0/24
Výpis porovnáme so zoznamom zapnutých virtuálnych strojov alebo vlastnou evidenciou. Rozdiel nemusí znamenať útok, preto preveríme aj VPN, viac sieťových kariet a odpovede virtuálneho smerovača. Neodpovedajúce zariadenie nemusí byť vypnuté. Tento sken poskytuje prehľad dostupnosti, nie zoznam všetkých služieb.
Príklad 3 Kontrola webového servera a administrácie
Na vlastnom serveri očakávame SSH a webové rozhranie. Sken zúžime na porty 22, 80 a 443 a pridáme detekciu verzie. Príkaz uloží tri výstupné formáty do aktuálneho pracovného priečinka. Pred opakovaním zvolíme nový názov, ak chceme zachovať starší výsledok.
nmap -sT -sV -p 22,80,443 --reason -oA web-pred-zmenou 192.168.56.20
Očakávame prehľad zvolených portov a prípadné údaje o službách. Ak výsledok nezodpovedá konfigurácii, overíme procesy, väzbu služby na IP adresu a pravidlá firewallu. Rovnaký príkaz môžeme vykonať v Zenmap cez pole Command. XML výstup potom otvoríme aj dodatočne.
Príklad 4 Hľadanie zabudnutej služby na inom TCP porte
Malý výber portov nemusí zachytiť vývojový server na porte 8080 alebo inom netypickom porte. Na jednom vlastnom testovacom zariadení preto môžeme skontrolovať celý rozsah TCP portov 1 až 65535. Pre prvý prehľad nepúšťame automaticky detekciu verzií na všetkých nálezoch. Výsledok následne zúžime na konkrétne otvorené porty.
nmap -sT -p- --reason -oN vsetky-tcp-porty.nmap 192.168.56.20
Očakávame rozsiahlejšie pokrytie TCP než pri predvolenom skene. Ak nájdeme napríklad port 8080, samostatne ho overíme cez nmap -sT -sV -p 8080 192.168.56.20. Úplný TCP rozsah stále neznamená kontrolu UDP. Trvanie závisí od siete, filtrovania a dostupných prostriedkov.
Príklad 5 Rozpoznanie webového rozhrania cez NSE
Na testovacom serveri s dostupným HTTP chceme zistiť titulok úvodnej stránky a vrátené hlavičky. Najskôr si môžeme zobraziť pomoc príkazom nmap --script-help http-title,http-headers. Potom vyberieme iba tieto dva skripty a konkrétne porty. Nevykonávame tým kompletný test bezpečnosti webovej aplikácie.
nmap -sT -sV -p 80,8080 --script http-title,http-headers 192.168.56.20
Výsledok môže pomôcť odlíšiť produkčný web od testovacieho administračného rozhrania. Hlavička Server alebo titulok stránky sú indície, ktoré môže aplikácia zmeniť alebo vynechať. Pri viacerých virtuálnych hostiteľoch nemusí sken IP adresy zobraziť rovnaký web ako návšteva jeho názvu v prehliadači. Overíme preto aj správny hostname a konfiguráciu aplikácie.
Príklad 6 Kontrola certifikátu testovacej HTTPS služby
Predpokladom je vlastná funkčná TLS služba na porte 443. Skript ssl-cert umožní získať údaje o predloženom certifikáte vrátane obdobia platnosti. Výsledok porovnáme s certifikátom, ktorý má server podľa konfigurácie používať. Pri službe vyberajúcej certifikát podľa SNI zadáme vlastný testovací názov.
nmap -sT -sV -p 443 --script ssl-cert 192.168.56.20
nmap -sT -p 443 --script ssl-cert --script-args tls.servername=web.lab.test 192.168.56.20
Druhý príkaz je alternatíva pre laboratórium nakonfigurované na názov web.lab.test. Údaj o platnosti sám osebe nepotvrdzuje úplnú dôveryhodnosť certifikátu ani bezpečnosť všetkých TLS nastavení. Kontrolujeme aj mená, vydavateľa a reálne použitie v aplikácii. Príklad nám pomáha zachytiť najmä nesprávne nasadený alebo neočakávaný certifikát.
Príklad 7 Kontrola podporovaných SMB protokolov
Na vlastnom Windows alebo Samba serveri s dostupným portom 445 môžeme overiť podporované dialekty SMB. Použijeme konkrétny skript smb-protocols. Výsledok nevypovedá o oprávneniach ku všetkým zdieľaným priečinkom. Pomáha však odhaliť podporu historického SMBv1.
nmap -sT -p 445 --script smb-protocols 192.168.56.30
Ak skript uvedie SMBv1, preveríme jeho potrebu a možnosti odstránenia závislostí. Vypnutie starej verzie naplánujeme s ohľadom na používané aplikácie a zariadenia. Po zmene zopakujeme rovnakú kontrolu a uložíme výsledok. Nález SMBv1 nepovažujeme za dôkaz konkrétnej úspešne zneužitej chyby.
Príklad 8 Overenie pravidiel po úprave firewallu
Najskôr uložíme výsledok z povoleného testovacieho bodu. Správca potom upraví pravidlo a my z rovnakého miesta zopakujeme rovnaký príkaz. Nemeníme pritom zoznam portov ani typ skenu. Tak znížime riziko, že porovnávame odlišné merania.
nmap -sT -p 22,80,443,3306 --reason -oX firewall-pred.xml 192.168.56.20
nmap -sT -p 22,80,443,3306 --reason -oX firewall-po.xml 192.168.56.20
Druhý riadok vykonáme až po plánovanej zmene konfigurácie. V Zenmap otvoríme Tools → Compare Results, prípadne použijeme Ctrl + D a vyberieme oba XML súbory v správnom poradí. Očakávanú zmenu overíme aj v pravidlách a logoch firewallu. Ak používame NAT, verejný preklad portov alebo inú zdrojovú sieť, tieto podmienky zaznamenáme samostatne.
Teoretické zneužitie Nmap a modelové bezpečnostné scenáre
Útočník môže pomocou sieťového prieskumu zúžiť zoznam potenciálnych cieľov a odhaliť nevhodne sprístupnené služby. Samotný sken ešte neznamená ovládnutie systému. Nasledujúce modelové situácie ukazujú cestu od zistenej informácie k možnému riziku. Overovacie príkazy spúšťame iba v pripravenom laboratóriu a výsledky používame na nápravu.
Scenár 1 Nechránené administračné rozhranie
Predstavme si testovací server, na ktorom zostal otvorený administračný web na porte 8080. Prieskum portov a titulku stránky môže prezradiť, že nejde o bežnú verejnú stránku. Útočník by tak získal konkrétnejší cieľ pre ďalšie pokusy o prihlásenie alebo hľadanie chyby. Nmap mu však samotným titulkom neposkytne platné prihlasovacie údaje.
nmap -sT -sV -p 8080,8443 --script http-title 192.168.56.20
V laboratóriu overíme, či sa rozhranie zobrazuje z miesta, z ktorého má byť neprístupné. Ochranným opatrením je obmedzenie administrácie na určenú sieť, VPN alebo schválené zdrojové adresy a správne zabezpečenie prihlasovania. Odstránime aj nepoužívanú testovaciu službu. Nápravu potvrdíme opakovaním kontroly zo správneho testovacieho bodu.
Scenár 2 Nadmerne sprístupnená vzdialená správa alebo databáza
Otvorené RDP, SSH alebo databázové rozhranie môže byť oprávnené v administrátorskej sieti a zároveň nevhodné v hosťovskom segmente. Útočník môže nález využiť na výber služby pre ďalší útok na prihlasovanie alebo známu chybu. Zoznam portov však ešte nepreukazuje úspešné prihlásenie. Rozhodujúce je, odkiaľ je služba dostupná a kto ju má používať.
nmap -sT -sV -p 22,3389,3306,5432 --reason 192.168.56.30
Pri cvičení pripravíme dva schválené testovacie body s odlišnými prístupovými pravidlami. Výsledky porovnáme s navrhnutou segmentáciou a účelom servera. Nežiaduce spojenia obmedzíme a ponecháme iba potrebné prístupy. Zmena čísla portu môže znížiť náhodný šum, ale nenahrádza autentifikáciu ani filtrovanie.
Scenár 3 Anonymný prístup na FTP server
Pri nesprávne nastavenej FTP službe môže byť povolené anonymné prihlásenie a čítanie adresára. Útočník by z takého nálezu mohol získať verejne nechcené dokumenty alebo informácie o organizácii. Dosah závisí od skutočných oprávnení a obsahu. V našom testovacom FTP používame iba necitlivé ukážkové súbory.
nmap -sT -sV -p 21 --script ftp-anon 192.168.56.40
Skript overuje anonymné prihlásenie a pri úspechu môže zobraziť obsah koreňového adresára. Výpis nepreukazuje oprávnenie čítať každý súbor ani potvrdený zápis do každého priečinka. Ak anonymný prístup nie je potrebný, vypneme ho a skontrolujeme prístupové práva. Opakovaný test potom musí potvrdiť očakávané obmedzenie.
Scenár 4 Identifikovaná služba a nesprávny záver o zraniteľnosti
Prieskum môže odhaliť produkt a verziu, podľa ktorých si útočník vyberá ďalšie verejne známe postupy. Administrátor potrebuje rovnakú informáciu na overenie podpory, záplat a konfigurácie. Rozdiel medzi detekovaným bannerom a skutočným stavom opráv môže byť podstatný. Nález preto porovnáme s údajmi výrobcu a evidenciou balíkov.
Pri tomto scenári využijeme výstup už vykonaného -sV skenu. Do nálezu zapíšeme, čo Nmap skutočne uviedol a čo sa následne potvrdilo nezávislým overením. Ak aplikácia obsahuje opravu prenesenú do staršej vetvy, pôvodný predpoklad upravíme. Cieľom je správne určiť riziko a nápravu, nie maximalizovať počet závažných hlásení.
| Stav | Význam | Praktický záver |
|---|---|---|
open |
Sonda potvrdila prijímanie komunikácie príslušnou službou. | Overíme identitu služby, jej účel a pravidlá prístupu. |
closed |
Port je dosiahnuteľný, ale služba na ňom nepočúva. | Hostiteľ môže byť funkčný aj bez tejto služby. |
filtered |
Filtrovanie bráni jednoznačnému určeniu, či je port otvorený. | Kontrolujeme pravidlá firewallu, sieťovú cestu a dostupné dôvody vyhodnotenia. |
unfiltered |
Port je dostupný, ale použitá technika neurčila, či je otvorený alebo zatvorený. | Typický výsledok TCP ACK skenovania. |
open|filtered |
Nmap nedokáže rozlíšiť otvorený a filtrovaný port. | Častý výsledok pri UDP skenovaní a niektorých ďalších technikách. |
closed|filtered |
Nmap nedokáže rozlíšiť zatvorený a filtrovaný port. | Výsledok závisí od použitej techniky skenovania a jej nastavení. |
Zápis rozsahu cieľov tiež nekopírujeme ako ľubovoľnú dvojicu úplných IP adries spojených pomlčkou. Použijeme podporovaný rozsah v oktete, CIDR alebo explicitný zoznam. Pri akomkoľvek ťaháku si overíme veľkosť písmen a význam dlhých volieb. Pomoc nmap -h a aktuálna dokumentácia majú prednosť pred skráteným obrázkom.
ťahák cheatsheet Nmap príkazov
Najčastejšie problémy pri Nmap a Zenmap
Neočakávaný výsledok často vzniká nesprávnym cieľom, obmedzeným oprávnením alebo odlišnou sieťovou cestou. Najskôr preveríme jednoduché predpoklady a až potom meníme typ sondovania. Viac prepínačov nemusí znamenať lepšiu diagnózu. Pomáha zmeniť vždy jednu podmienku a výsledok uložiť.
| Problém | Čo preveríme |
|---|---|
Príkaz nmap sa nenašiel |
Inštaláciu nástroja Nmap, systémovú premennú PATH a spustenie nového okna terminálu. |
| Chyba oprávnení alebo paketového rozhrania | Použitý typ skenovania, administrátorské oprávnenia alebo sudo a vo Windows správnu inštaláciu Npcap. |
| Hostiteľ sa javí ako nedostupný | Správnosť IP adresy, konfiguráciu siete virtuálneho počítača, smerovanie, firewall a vhodnosť sond na zisťovanie dostupnosti hostiteľa. |
Všetky UDP porty sú open|filtered |
Nejednoznačnosť odpovedí UDP služieb, konkrétnu testovanú službu a možnosť použitia povolenej aplikačnej sondy. |
| Výsledok sa líši od kontroly na serveri | Miesto, odkiaľ skenovanie vykonávame, použitie IPv4 alebo IPv6, NAT, sieťové rozhranie, na ktorom služba počúva, a čas merania. |
| Zenmap ukazuje staršie nálezy | Agregované výsledky viacerých skenovaní a výber konkrétneho behu na karte Scans. |
| Uložený textový súbor sa nedá opäť načítať | Na opätovné otvorenie výsledkov v Zenmap použijeme štruktúrovaný výstup Nmap vo formáte XML. |
| Skenovanie trvá príliš dlho | Rozsah skenovaných portov, použitie UDP, sieťové filtrovanie, opakovanie sond a potrebu detekcie verzií služieb. |
| NSE skript nič nevypísal | Podmienky spustenia skriptu, stav cieľovej služby, použité argumenty a prípadné prekročenie časového limitu. |
Pri údajnom vypnutom hostiteľovi môžeme na konkrétnom známom vlastnom zariadení skúsiť nmap -Pn -sT -p 443 --reason 192.168.56.20. Tým overíme vybraný port bez predchádzajúceho bežného discovery rozhodnutia. Ak cesta komunikáciu blokuje, prepínač -Pn blokovanie neodstráni. Pri výsledku stále potrebujeme rozlišovať technickú neistotu a potvrdený stav.
Ako výsledky Nmap využiť pri ochrane siete a vzdelávaní
Úlohou kontroly je zistiť rozdiel medzi schváleným a skutočne dostupným stavom. Ku každému podstatnému nálezu si zapíšeme cieľ, zdrojový bod, čas, príkaz a výsledok. Potom určíme vlastníka služby, dôvod dostupnosti a spôsob nápravy. Po zmene zopakujeme porovnateľnú kontrolu.
Sieťový monitoring môže zaznamenať sériu spojení na viac portov, postupné oslovovanie hostiteľov alebo aplikačné sondy. Pri dohodnutom teste si tieto záznamy porovnáme s priebehom skenu a overíme reakciu monitoringu. Neprítomnosť alertu nie je dôkazom bezpečnosti ani neviditeľnosti skenu. Môže znamenať nesprávne umiestnený senzor alebo pravidlo, ktoré daný vzor nevyhodnocuje.
Online kurzy a profesijné vzdelávanie VITA
Praktickú prácu s nástrojmi a bezpečnostnými súvislosťami rozvíja Online kurz Hacking v Praxi. Systematický úvod do plánovania a vyhodnocovania testov ponúka Online kurz Penetračné Testovanie I. Začiatočník. Pre prácu v testovacom Linuxe môžeme nadviazať na Online kurz Linux Kali – Penetračné testovanie.
Širšie súvislosti ochrany systémov, sietí a informačných aktív prepája Program MSc Odborník Kybernetickej Bezpečnosti. Pri ďalšom vzdelávaní sa oplatí prepájať ovládanie nástroja s porozumením protokolom a schopnosťou dokumentovať výsledok. Samotné zapamätanie prepínačov nenahrádza vysvetlenie nálezu. Dobrý výstup umožní správcovi vykonať konkrétnu a overiteľnú nápravu.
FAQ Často kladené otázky o Nmap a Zenmap
Pri prvých skenoch sa opakujú otázky o oprávneniach, rozsahu portov a význame výsledkov. Nasledujúce odpovede dopĺňajú postupy z článku. Pri konkrétnom probléme vždy prihliadame na verziu, operačný systém a sieťový kontext.
Je Nmap zadarmo
Nmap môžeme bežne bezplatne stiahnuť a používať podľa jeho licenčných podmienok. Projekt používa vlastné licenčné pravidlá a podmienky pre používanie nemožno automaticky zamieňať s neobmedzeným právom vložiť ho do iného produktu. Pri distribúcii alebo integrácii si preveríme aktuálnu licenciu.
Potrebujeme na Nmap Kali Linux
Nie. Nmap funguje aj vo Windows, macOS a ďalších linuxových distribúciách. Kali je jednou z možností pripraveného prostredia, nie podmienkou použitia.
Je Zenmap iný skener než Nmap
Zenmap je grafické rozhranie Nmap a prehliadač výsledkov. Skenovacie operácie vykonáva Nmap podľa zostaveného príkazu. Rozdielne výsledky preto porovnávame spolu s parametrami, oprávneniami a časom merania.
Čo znamená otvorený port
Znamená, že použitá kontrola potvrdila dostupnú službu prijímajúcu príslušnú komunikáciu. Neznamená automaticky slabé heslo alebo zraniteľnosť. Posudzujeme účel služby a povolený rozsah prístupu.
Skenuje Nmap automaticky všetkých 65535 portov
Pri štandardnom TCP skene bežne kontroluje 1 000 najčastejších portov. Rozsah 1 až 65535 zadáme cez -p-. UDP musíme zvoliť samostatne príslušným typom skenu.
Aký je rozdiel medzi sn a Pn
-sn vykonáva host discovery bez portového skenu. -Pn bežné discovery preskočí a umožní pokračovať v ďalších kontrolách zadaných cieľov. Ani jedna voľba nezaručuje nulovú sieťovú komunikáciu.
Je SYN sken neviditeľný
Nie. Nedokončenie TCP spojenia nie je zárukou, že sken nezachytí IDS, firewall alebo iný monitoring. Pri vyhodnocovaní potrebujeme poznať aj umiestnenie senzorov a ich pravidlá.
Odhalí A všetky zraniteľnosti
Nie. -A zapína konkrétnu kombináciu pokročilých funkcií. Nevykonáva úplný audit všetkých aplikácií ani automaticky nepokrýva všetky porty.
Prečo sa výsledky z dvoch počítačov líšia
Počítače môžu byť v odlišných segmentoch alebo používať inú cestu, IPv4 či IPv6. Úlohu zohrávajú aj oprávnenia a odlišné nastavenia skenu. Porovnávame preto celý kontext, nie iba IP adresu cieľa.
Dokáže Nmap sám hacknúť počítač
Základný portový sken poskytuje informácie o dostupných rozhraniach. NSE obsahuje aj kontroly s aktívnejším zásahom vrátane vybraných exploitov, čo však nie je univerzálne získanie prístupu. Konkrétne schopnosti vždy závisia od skriptu, konfigurácie a stavu cieľového systému.
V akom formáte ukladať výsledky pre Zenmap
Na opätovné otvorenie použijeme Nmap XML cez -oX alebo XML súbor vytvorený voľbou -oA. Textový záznam je vhodný na čítanie, ale nenahrádza XML inventár v Zenmap. Dôležité výsledky si uložíme samostatne a nespoliehame sa iba na históriu aplikácie.
Je súkromná IP adresa automaticky vhodným cieľom
Nie. Aj privátna adresa môže patriť cudzej organizácii alebo zariadeniu, ktoré nemáme povolené testovať. Pre príklady používame vlastné izolované laboratórium alebo jasne dohodnutý rozsah.
Záver a odporúčania pre prácu s Nmap a Zenmap
Nmap využijeme na mapovanie dostupných zariadení, kontrolu portov a získanie konkrétnych informácií o službách. Zenmap GUI nám pomôže zostaviť príkazy, usporiadať výsledky a porovnať opakované kontroly. Pri práci rozhoduje správny cieľ, primeraný rozsah a schopnosť vysvetliť, čo výsledok skutočne dokazuje. Začneme malou kontrolou a ďalšie funkcie pridávame podľa konkrétnej otázky.
Pri etickom hackovaní prepájame prieskum s overením rizika a nápravou. Uložíme si príkaz a výsledok, preveríme konfiguráciu a po zmene zopakujeme porovnateľný test. Tak sa z prehľadu otvorených portov stáva použiteľný podklad pre bezpečnejšiu sieť. Praktické postupy si môžeme ďalej rozvíjať v kurze Hacking v Praxi.
Viac informácií o programe MSc Odborník Kybernetickej Bezpečnosti.
Použité zdroje k Nmap a Zenmap
- Nmap Project. Downloading Nmap a aktuálne vydania. https://nmap.org/download.html
- Nmap Project. Nmap Reference Guide. https://nmap.org/book/man.html
- Nmap Project. Target Specification. https://nmap.org/book/man-target-specification.html
- Nmap Project. Host Discovery. https://nmap.org/book/man-host-discovery.html
- Nmap Project. Port Scanning Basics. https://nmap.org/book/man-port-scanning-basics.html
- Nmap Project. Port Scanning Overview. https://nmap.org/book/port-scanning.html
- Nmap Project. Port Scanning Techniques. https://nmap.org/book/man-port-scanning-techniques.html
- Nmap Project. Port Specification and Scan Order. https://nmap.org/book/man-port-specification.html
- Nmap Project. TCP SYN Scan. https://nmap.org/book/synscan.html
- Nmap Project. TCP Connect Scan. https://nmap.org/book/scan-methods-connect-scan.html
- Nmap Project. UDP Scan. https://nmap.org/book/scan-methods-udp-scan.html
- Nmap Project. Service and Version Detection. https://nmap.org/book/man-version-detection.html
- Nmap Project. OS Detection. https://nmap.org/book/man-os-detection.html
- Nmap Project. Timing and Performance. https://nmap.org/book/man-performance.html
- Nmap Project. Output. https://nmap.org/book/man-output.html
- Nmap Project. Miscellaneous Options. https://nmap.org/book/man-misc-options.html
- Nmap Project. Nmap Scripting Engine a Usage and Examples. https://nmap.org/book/man-nse.html
Nmap Project. NSEDoc pre použité skripty.
https://nmap.org/nsedoc/scripts/http-title.html
https://nmap.org/nsedoc/scripts/http-headers.html
https://nmap.org/nsedoc/scripts/ssl-cert.html
https://nmap.org/nsedoc/scripts/smb-protocols.html
https://nmap.org/nsedoc/scripts/ftp-anon.html - Nmap Project. Zenmap GUI Users Guide. https://nmap.org/book/zenmap.html
- Nmap Project. Scanning a Interpreting Scan Results. https://nmap.org/book/zenmap-scanning.html a https://nmap.org/book/zenmap-results.html
- Nmap Project. The Profile Editor a konfigurácia predvolených profilov. https://nmap.org/book/zenmap-profile-editor.html a https://svn.nmap.org/nmap/zenmap/zenmapCore/data/config/scan_profile.usp
- Nmap Project. Saving and Loading Scan Results a Comparing Results. https://nmap.org/book/zenmap-saving.html a https://nmap.org/book/zenmap-compare.html
- Nmap Project. Surfing the Network Topology. https://nmap.org/book/zenmap-topology.html
- Nmap Project. Inštalácia vo Windows a Linuxe. https://nmap.org/book/inst-windows.html a https://nmap.org/book/inst-linux.html
- Nmap Project. Legal Notices a licenčné podmienky. https://nmap.org/book/man-legal.html
- Python Software Foundation. http.server a parameter bind. https://docs.python.org/3/library/http.server.html