GNU/Linux >> Znalost Linux >  >> Linux

Jak používat příkaz nmap

Nmap je výkonný nástroj pro skenování sítě pro bezpečnostní audity a penetrační testování. Je to jeden ze základních nástrojů, který používají správci sítě k řešení problémů s připojením k síti a skenování portů.

Nmap také dokáže zjistit adresu Mac, typ OS, verzi služby a mnoho dalšího.

Tento článek vysvětluje základy používání nmap příkaz k provádění různých síťových úloh.

Instalace Nmap #

Nmap je multiplatformní program, který lze nainstalovat na všechny hlavní operační systémy. Původně byl vydán jako nástroj pouze pro Linux a později byl portován na další systémy, jako je BSD, Windows a macOS.

Pokud dáváte přednost GUI před příkazovým řádkem, Nmap má také grafické uživatelské rozhraní zvané Zenmap.

Oficiální binární balíčky jsou k dispozici ke stažení ze stránky stahování Nmap.

Postup instalace je přímočarý a liší se v závislosti na vašem operačním systému.

Instalace Nmap na Ubuntu a Debian #

Nmap je dostupný z výchozích repozitářů Ubuntu a Debianu. Chcete-li jej nainstalovat, spusťte:

sudo apt updatesudo apt install nmap

Instalace Nmap na CentOS a Fedora #

Na CentOS a dalších derivátech Red Hat spusťte:

sudo dnf install nmap

Instalace Nmap na macOS #

Uživatelé macOS mohou nainstalovat Nmap stažením instalačního balíčku „.dmg“ ze stránky Nmap nebo přes Homebrew:

brew install nmap

Instalace Nmap v systému Windows #

Verze Nmap pro Windows má určitá omezení a je obecně o něco pomalejší než verze pro UNIX.

Nejjednodušší možností instalace Nmap na Windows je stažení a spuštění samoinstalačního exe souboru.

Nmap můžete v systému Windows spustit buď z příkazového řádku, nebo spuštěním programu Zenmap. Další informace o tom, jak používat Nmap v systému Windows, najdete v pokynech k použití po instalaci.

Použití Nmap #

Nmap se obvykle používá k auditu zabezpečení sítě, mapování sítě, identifikaci otevřených portů a vyhledávání online zařízení.

Zjednodušená syntaxe nmap příkaz je následující:

nmap [Options] [Target...]

Nejzákladnějším příkladem použití Nmap je skenování jednoho cíle jako standardní uživatel bez zadávání jakýchkoli možností:

nmap scanme.nmap.org

Při vyvolání jako uživatel bez oprávnění root, který nemá práva na nezpracované pakety, nmap spustí skenování TCP connect. (-sT ) je ve výchozím nastavení v neprivilegovaném režimu zapnuto.

Výstup bude vypadat nějak takto, včetně základních informací o skenování a seznamu otevřených a filtrovaných TCP portů.

Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-16 20:19 CET
Nmap scan report for cast.lan (192.168.10.121)
Host is up (0.048s latency).
Not shown: 981 closed ports
PORT     STATE    SERVICE
21/tcp   open     ftp
22/tcp   open     ssh
25/tcp   open     smtp
53/tcp   open     domain
80/tcp   open     http
110/tcp  open     pop3
143/tcp  open     imap
443/tcp  open     https
587/tcp  open     submission
993/tcp  open     imaps
995/tcp  open     pop3s
1025/tcp open     NFS-or-IIS
1080/tcp open     socks
8080/tcp open     http-proxy
8081/tcp open     blackice-icecap

Nmap done: 1 IP address (1 host up) scanned in 1.78 seconds

Nejoblíbenější možností skenování je skenování TCP SYN (-sS ), která je rychlejší než možnost připojení a funguje proti všem kompatibilním zásobníkům TCP.

-sS je ve výchozím nastavení zapnuto, když nmap je vyvolán jako uživatel s administrátorskými právy:

sudo nmap 192.168.10.121

Pro podrobnější výstup použijte zvýšení výřečnosti pomocí -v nebo -vv :

sudo nmap -vv 192.168.10.121

Chcete-li provést skenování UDP, vyvolejte příkaz s (-sU ) jako uživatel root:

sudo nmap -sU 192.168.10.121

Úplný seznam metod skenování portů naleznete na stránce dokumentace Nmap.

Nmap také podporuje adresy IPv6. Chcete-li zadat hostitele IPv6, použijte -6 možnost:

sudo nmap -6 fd12:3456:789a:1::1

Zadání cílových hostitelů #

Nmap zachází se všemi argumenty, které nejsou volbami, jako s cílovými hostiteli.

Argumenty jsou považovány za možnosti, pokud začínají jednoduchou nebo dvojitou pomlčkou (- , -- ).

Nejjednodušší možností je předat jednu nebo více cílových adres nebo doménových jmen:

nmap 192.168.10.121 host.to.scan

K určení rozsahu sítě můžete použít notaci CIDR:

nmap 192.168.10.0/24

Chcete-li zadat oktetový rozsah, použijte znak pomlčky. Chcete-li například skenovat 192.168.10.1 , 192.168.11.1 a 192.168.12.1 :

nmap 192.168.10-12.1

Dalším znakem, který můžete použít k určení cílů, je čárka. Následující příkaz cílí na stejné hostitele jako výše uvedený:

nmap 192.168.10,11,12.1

Všechny formy můžete kombinovat:

nmap 10.8-10.10,11,12.0/28  192.168.1-2.100,101

Abyste se ujistili, že jste před skenováním zadali správné hostitele, použijte volbu skenování seznamu (-sL ), který uvádí pouze cíle bez spuštění kontroly:

nmap -sL 10.8-10.10,11,12.0/28  192.168.1-2.100,101

Pokud chcete vyloučit cíle, které jsou zahrnuty ve vámi určeném rozsahu, použijte --exclude možnost:

nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12

Určení a skenování portů #

Ve výchozím nastavení Nmap provádí rychlé skenování 1000 nejoblíbenějších portů. Tyto porty nejsou prvních 1000 po sobě jdoucích portů, ale 1000 nejčastěji používaných portů v rozmezí od 1 do 65389.

Chcete-li vyhledat všechny porty od 1 do 65535, použijte -p- možnost:

nmap -p- 192.168.10.121

Každý port může být v jednom z následujících stavů:

  • otevřít – Program spuštěný na portu odpoví na požadavek.
  • zavřeno – Na portu neběží žádný program a hostitel odpovídá na požadavky.
  • filtrováno – hostitel na požadavek neodpovídá.

Například pro skenování pouze portu 443 byste použili následující příkaz:

nmap -p 443 192.168.10.121

Chcete-li zadat více než jeden port, oddělte cílové porty čárkou:

nmap -p 80,443 192.168.10.121

Rozsahy portů lze specifikovat pomlčkou. Chcete-li například zkontrolovat všechny porty UDP v rozsahu od 1 do 1024, spustili byste:

sudo nmap -sU -p 1-1024 192.168.10.121

Vše dohromady:

nmap -p 1-1024,8080,9000 192.168.10.121

Porty lze také zadat pomocí názvu portu. Chcete-li například vyhledat port 22, ssh, můžete použít:

nmap -p ssh 192.168.10.121

Skenování pingu #

Chcete-li provést skenování pomocí příkazu ping nebo zjišťování hostitele, vyvolejte nmap pomocí -sn možnost:

sudo nmap -sn 192.168.10.0/24

-sn Tato volba říká Nmapu, aby pouze objevil online hostitele a neprováděl skenování portů. To je užitečné, když chcete rychle zjistit, který ze zadaných hostitelů je v provozu.

Zakázání rozlišení názvů DNS č

Výchozí chování Nmap je provádět reverzní rozlišení DNS pro každého nalezeného hostitele, což prodlužuje dobu skenování.

Při skenování velkých sítí je dobré deaktivovat zpětné rozlišení DNS a urychlit skenování. Chcete-li to provést, vyvolejte příkaz s -n možnost:

sudo nmap -n 192.168.10.0/16

Detekce OS, služby a verze #

Nmap dokáže detekovat vzdálený hostitelský operační systém pomocí otisku zásobníku TCP/IP. Chcete-li spustit detekci OS, vyvolejte příkaz s -O možnost:

sudo nmap -O scanme.nmap.org

Pokud Nmap dokáže detekovat hostitelský OS, vytiskne něco jako níže:

...
Device type: general purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.4
Network Distance: 18 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.47 seconds

Systémové služby obvykle naslouchají na standardních portech, které jsou dobře známé a jsou pro ně vyhrazeny. Pokud je například otevřený port 22, který odpovídá službě SSH, budete předpokládat, že na hostiteli běží server SSH. Nemůžete si však být absolutně jisti, protože lidé mohou provozovat služby na jakýchkoli portech, které chtějí.

S detekcí služby a verze vám Nmap ukáže, jaký program poslouchá na portu a verzi programu.

Chcete-li vyhledat službu a verzi, použijte -sV možnost:

sudo nmap -sV scanme.nmap.org
...
PORT      STATE    SERVICE      VERSION
19/tcp    filtered chargen
22/tcp    open     ssh          OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
80/tcp    open     http         Apache httpd 2.4.7 ((Ubuntu))
135/tcp   filtered msrpc
139/tcp   filtered netbios-ssn
445/tcp   filtered microsoft-ds
9929/tcp  open     nping-echo   Nping echo
31337/tcp open     tcpwrapped
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
...

Můžete také vyhledat OS, verze a spustit traceroute v jednom příkazu pomocí -A možnost:

sudo nmap -A 192.168.10.121

Výstup Nmap #

Ve výchozím nastavení Nmap tiskne informace na standardní výstup (stdout).

Pokud skenujete velkou síť nebo potřebujete informace pro pozdější použití, můžete výstup uložit do souboru.

Nmap poskytuje několik typů výstupů. Chcete-li uložit výstup v normálním formátu, použijte -oN možnost následovaná názvem souboru:

sudo nmap -sU -p 1-1024 192.168.10.121 -oN output.txt

Nejoblíbenější možností je uložit výstup ve formátu XML. K tomu použijte -oX možnost:

sudo nmap -sU -p 1-1024 192.168.10.121 -oX output.xml

Dalším užitečným formátem je výstup grepable, který lze analyzovat pomocí standardních unixových nástrojů, jako je grep , awk a cut . Výstup grepable je specifikován pomocí -oG možnost:

sudo nmap -sU -p 1-1024 192.168.10.121 -oG output

Nmap Scripting Engine #

Jednou z nejvýkonnějších funkcí Nmapu je jeho skriptovací engine. Nmap se dodává se stovkami skriptů a můžete také psát své vlastní skripty v jazyce Lua.

Pomocí skriptů můžete detekovat malware a zadní vrátka, provádět útoky hrubou silou a další.

Chcete-li například zkontrolovat, zda je daný hostitel kompromitován, můžete použít:

nmap -sV --script http-malware-host scanme.nmap.org

Závěr č.

Nmap je nástroj s otevřeným zdrojovým kódem, který používají především správci sítě k zjišťování hostitelů a skenování portů.

Upozorňujeme, že v některých zemích není legální skenovat sítě bez oprávnění.


Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz basename?

  3. Jak používat příkaz nmap v Linuxu

  1. Jak používat příkaz historie v Linuxu

  2. Jak používat příkaz id v Linuxu

  3. Jak používat příkaz „screen“ v Linuxu

  1. Jak používat příkaz vmstat

  2. Jak používat příkaz historie Linuxu

  3. Jak používat příkaz Bash read