Nmap je zkratka pro Network Mapper, je to bezplatný a open-source nástroj pro zjišťování a průzkum sítě používaný pro zjišťování hostitelů a shromažďování podrobných informací o hostiteli. Nmap, napsaný v C, C++ a Pythonu a původně vydaný v září 1997, se stal integrálním nástrojem pro profesionály v oblasti kybernetické bezpečnosti a digitální forenzní techniky, kteří na něj spoléhají při odhalování podrobných informací o cílových hostitelích a odhalování potenciálních zranitelností. Nmap odhaluje informace, jako jsou aktivní hostitelé v síti, otevřené porty, detekce OS a služeb a provádění tajných skenů, abychom zmínili jen některé.
V této příručce zdůrazňujeme některé užitečné příkazy Nmap, které můžete použít k získání co největšího množství informací z hostitelských systémů.
Jak nainstalovat nmap
Než se podíváme na různé způsoby, jak lze použít příkaz nmap, podívejme se, jak můžete nainstalovat tento užitečný nástroj příkazového řádku. Univerzální a nejjednodušší způsob instalace nmap je pomocí balíčků snap. Snaps jsou předpřipravené softwarové balíčky, které se dodávají s knihovnami a závislostmi. Jsou snadno dostupné ve všech hlavních linuxových distribucích. Ve snapstore najdete spoustu snapů. Než však nainstalujete Nmap z balíčků snap, musíte nejprve povolit démona snapd. To vám umožní stahovat a instalovat balíčky snap.
Chcete-li nainstalovat Nmap pomocí snaps, spusťte níže uvedený příkaz.
$ sudo snap install nmap
Alternativně se můžete rozhodnout nainstalovat Nmap pomocí správců balíčků jedinečných pro každou rodinu distribucí Linuxu.
Pro Ubuntu a Debian
Pro distribuce založené na Ubuntu/Debian/Mint použijte správce balíčků APT, jak je znázorněno.
$ sudo apt -y install nmap
Pro CentOS 8 / RHEL 8 / Fedora 22 a novější verze
Pro CentOS 8 / RHEL 8 a Fedora 22 a novější použijte správce balíčků dnf.
$ sudo dnf -y install nmap
Pro CentOS 7 a RHEL 7
Pro CentOS 7 / RHEL 7 a starší verze použijte správce balíčků yum.
$ sudo yum -y install nmap
Pro Arch Linux / Manjaro
Pro systémy založené na Arch použijte správce balíčků pacman, jak je znázorněno.
$ sudo pacman -S nmap
Když jsme se podívali na instalaci nmap, pojďme nyní pokračovat a podívat se na 20 úžasných příkladů příkazů nmap v Linuxu
1) Příkaz Nmap pro skenování jednoho hostitele
Ve své základní podobě lze příkaz nmap použít ke skenování jednoho hostitele bez předávání jakýchkoli argumentů. Syntaxe je následující:
$ nmap target-ip
Například;
$ nmap 192.168.2.102
Alternativně můžete místo zadání IP adresy zadat název domény, jak je uvedeno:
$ nmap scanme.nmap.org
2) Prohledat více hostitelů
Skenování více hostitelů najednou je zvláště užitečné pro rozsáhlé sítě, kde chcete skenovat několik hostitelů najednou. Je to pohodlný způsob skenování hostitelů jediným příkazem namísto skenování každého hostitele zvlášť. Můžete například skenovat 10 nebo více hostitelů nebo celou podsíť, když pracujete na něčem jiném. Existují různé způsoby, jak toho dosáhnout.
Za prvé, můžete zadat více IP adres nebo domén v řadě oddělených mezerou, jak je znázorněno;
$ nmap 192.168.2.1 192.168.2.103
Namísto zadávání celých IP adres můžete konce oddělit čárkou, jak je znázorněno.
$ nmap 192.168.2.1,102,103
Také můžete zadat rozsah IP adres pomocí pomlčky. Například níže uvedený příkaz prohledává hostitele od 192.168.2.1 do 192.168.2.100
$ nmap 192.168.2.1-100
3) Prohledejte podsíť pomocí nmap
Navíc můžete použít zástupný znak k prohledání celé podsítě, jak je znázorněno:
$ nmap 192.168.2.* OR $ nmap 192.168.2.0/24
Chcete-li upřesnit kontrolu a objevit pouze živé hostitele v podsíti, použijte volbu -sP, jak je znázorněno.
$ nmap -sP 192.168.2.*
4) Získejte více informací pomocí možnosti podrobných informací
Chcete-li získat robustnější výstup během skenování nmap, použijte volbu -v. Tato možnost vytiskne podrobnosti o skenování, jako je povaha skenování a otevřené porty, které byly objeveny.
$ nmap -v 192.168.2.1
5) Vyloučit hostitele z kontroly Nmap
Při skenování řady hostitelů se můžete rozhodnout vyloučit z kontroly jednoho hostitele. Chcete-li toho dosáhnout, použijte možnost –exclude. V níže uvedeném příkladu jsme z kontroly vyloučili hostitele 192.168.2.20.
$ nmap 192.168.2.0/24 --exclude 192.168.2.20
Chcete-li z kontroly Nmap vyloučit více hostitelů, určete hostitele, kteří mají být vyloučeni v souboru, a propojte příkaz se souborem, jak je znázorněno:
$ nmap 192.168.2.* --excludefile exclude.txt
Výše uvedený příkaz vyloučí všechny hostitele obsažené v souboru exclude.txt.
6) Proveďte rychlé skenování
Jak název napovídá, můžete provést mnohem rychlejší skenování pomocí nmap předáním příznaku -F, jak je znázorněno:
$ nmap -F 173.82.202.201
Nicméně vyloučení odpovědnosti – Toto skenování poskytuje méně portů než běžné skenování.
7) Prohledat aktivní hostitele v síti
Tohle je spíš ping scan. Detekuje aktivní hostitele v podsíti. Chcete-li vyhledat aktivní hostitele, předejte volbu -sn následovanou adresou IP a podsítí. Například:
$ nmap -sn 192.168.2.0/24
8) Skenovat hostitele obsažené v souboru
Pokud máte segmentovanou síť, zejména síť s VLAN, je pravděpodobné, že máte hostitele v různých podsítích. Snadný způsob jejich skenování je definovat jejich IP adresy v textovém souboru a předat soubor jako argument pomocí volby -iL.
$ nmap iL hosts.txt
Zde je ukázka hostitelského souboru
$ cat hosts.txt 192.168.2.100 192.168.2.102 192.168.20.5-50
9) Proveďte kontrolu a zjistěte bránu firewall
Detekce firewallu je užitečná zejména při provádění testů zranitelnosti nebo etického hackování. Umožňuje správci systému zjistit, zda je brána firewall cílového hostitele povolena nebo ne. Chcete-li zjistit stav brány firewall, použijte příznak -sA, jak je znázorněno.
$ nmap -sA 192.168.2.1
To zahájí skenování ACK, které prověří, zda pakety mohou projít nefiltrované. Použijte parametr -n, abyste zabránili zpětnému překladu DNS na cílovém hostiteli.
10) Proveďte detekci OS pomocí nmap
Nmap může také poskytnout informace o operačním systému nebo operačním systému cílového systému a také zjišťování verzí. Pro detekci OS předejte volbu -O, jak je znázorněno. Budeme skenovat cloudové VPS hostované v systému Linux a uvidíme, co nám nmap poskytne.
POZNÁMKA: Pokud jste běžný uživatel, musíte vyvolat příkaz sudo, protože detekce OS vyžaduje oprávnění sudo.
$ sudo nmap -O 173.82.202.201
Nmap dělá vše, co je v jeho silách, aby identifikoval operační systém a jeho verzi, avšak výsledky nemusí vždy představovat přesný výsledek.
11) Proveďte skenování portů
Jedním ze základních úkolů nástroje nmap je skenování portů na hostitelském systému. Pomocí parametru -p následovaného číslem portu, jak je znázorněno, můžete určit port, který se má skenovat:
$ nmap -p 80 173.82.202.201
Kromě toho můžete vyhledat více portů tak, že je oddělíte čárkou, jak je znázorněno:
$ nmap -p 80,443 192.168.2.1
Můžete také definovat rozsah portů, které mají být skenovány, tím, že je oddělíte pomlčkou.
$ nmap -p 80-443 192.168.2.1
12) Vyhledejte porty TCP/UDP
Můžete se zúžit na skenovací porty, které jsou buď TCP nebo UDP. Chcete-li skenovat porty TCP, použijte volbu -sT, jak je uvedeno.
$ nmap -sT 173.82.202.201
Pro konkrétní port TCP, jako je port 80, spusťte:
$ nmap -p T:80 173.82.202.201
Pro porty UDP použijte volbu -sU.
$ nmap -sU 173.82.202.201
Pro konkrétní port UDP, jako je port 69, spusťte:
$ nmap -p U:69 173.82.202.201
13) Objevte verzi služby
Při skenování možných zranitelností je zásadní detekce spuštěných služeb a jejich verzí a také portů, na kterých naslouchají. To vám umožní zjistit, které služby může útočník využít ke kompromitaci vašeho systému. Znalosti o verzích služeb a portů vám umožňují rozhodnout se, zda aktualizovat služby na nejnovější verze nebo je úplně odinstalovat.
Ke shromažďování informací o službách a portu použijte parametr -sV.
$ nmap -sV 173.82.202.201
14) Proveďte tajnou kontrolu
Skenování nmap je obvykle „hlučné“ a zanechává stopy, které lze označit pomocí robustního IDS (systém detekce narušení) a případně je zpětně vysledovat. Chcete-li zůstat v anonymitě , můžete provést tajnou kontrolu pomocí možnosti -sS.
$ nmap -sS 173.82.202.201
15) Určete podporované protokoly IP
Informace o protokolech podporovaných cílovým systémem (ICMP, TCP, UDP atd.) můžete získat pomocí parametru -sO.
$ sudo nmap -sO 173.82.202.201
16) Proveďte agresivní kontrolu
Když je použita volba -A, nmap poskytuje velmi podrobné výsledky skenování včetně otevřených portů a verzí spuštěných služeb, detekce OS a dokonce provádí traceroute cílového hostitele (hostitelů).
$ nmap -A 173.82.202.201
17) Uložte výstup nmap do souboru
Ve výchozím nastavení nmap vytiskne výsledky skenování na terminálu. Pokud však potřebujete uložit výsledky do textového souboru pro další analýzu, můžete použít operátor přesměrování, jak je znázorněno.
$ nmap 173.82.202.201 > scanme.txt
Chcete-li ověřit, že byly výsledky skenování uloženy, použijte příkaz cat, jak je znázorněno.
$ cat scanme.txt
Navíc můžete předat volbu -oN následovanou výstupním souborem a hostitelem.
$ nmap -oN scanme.txt scanme.nmap.org
18) Vytiskněte si hostitelská rozhraní a trasy
Někdy můžete najít potřebu najít rozhraní a cesty hostitelského systému pro účely ladění. Toho lze snadno dosáhnout předáním možnosti –iflist.
$ nmap --iflist
19) Získejte pomoc s nmap
Chcete-li ukojit svou zvědavost na další možnosti nmap, použijte příznak -h. To je synonymum pro získání nápovědy s příkazy nmap.
$ nmap -h
20) Zkontrolujte verzi nmap
Chcete-li zkontrolovat verzi nmap, kterou používáte, spusťte příkaz:
$ nmap -v
To je jen 20 základních příkazů Nmap, které můžete použít k výčtu různých hostitelských systémů. Stále existuje spousta možností nmap, které můžete použít k získání upřesněných podrobností o cílovém systému, ale příklady, které jsme uvedli, jsou dobrým místem pro začátek. Doufáme, že vám tato příručka pomohla při seznámení s nástrojem nmap a různými příklady příkazů.
Přečtěte si také :9 příkladů příkazů tee v Linuxu