GNU/Linux >> Linux Esercitazione >  >> Linux

Come usare il comando nmap

Nmap è un potente strumento di scansione della rete per audit di sicurezza e test di penetrazione. È uno degli strumenti essenziali utilizzati dagli amministratori di rete per la risoluzione dei problemi di connettività di rete e la scansione delle porte.

Nmap può anche rilevare l'indirizzo Mac, il tipo di sistema operativo, la versione del servizio e molto altro.

Questo articolo spiega le basi di come usare nmap comando per eseguire varie attività di rete.

Installazione di Nmap #

Nmap è un programma multipiattaforma che può essere installato su tutti i principali sistemi operativi. Inizialmente è stato rilasciato come strumento solo per Linux e successivamente è stato portato su altri sistemi come BSD, Windows e macOS.

Se preferisci una GUI rispetto alla riga di comando, Nmap ha anche un'interfaccia utente grafica chiamata Zenmap.

I pacchetti binari ufficiali sono disponibili per il download dalla pagina di download di Nmap.

La procedura di installazione è semplice e varia in base al tuo sistema operativo.

Installazione di Nmap su Ubuntu e Debian #

Nmap è disponibile dai repository Ubuntu e Debian predefiniti. Per installarlo, esegui:

sudo apt updatesudo apt install nmap

Installazione di Nmap su CentOS e Fedora #

Su CentOS e altri derivati ​​di Red Hat esegui:

sudo dnf install nmap

Installazione di Nmap su macOS #

Gli utenti macOS possono installare Nmap scaricando il pacchetto di installazione “.dmg” dal sito Nmap o tramite Homebrew:

brew install nmap

Installazione di Nmap su Windows #

La versione Windows di Nmap ha alcune limitazioni ed è generalmente un po' più lenta della versione UNIX.

L'opzione più semplice per installare Nmap su Windows è scaricare ed eseguire il file exe di autoinstallazione.

Puoi eseguire Nmap su Windows sia dalla riga di comando che avviando il programma Zenmap. Per ulteriori informazioni su come utilizzare Nmap su Windows, controlla le istruzioni per l'uso dopo l'installazione.

Utilizzo di Nmap #

Nmap viene in genere utilizzato per controllare la sicurezza della rete, la mappatura della rete, identificare le porte aperte e cercare dispositivi online.

La sintassi semplificata di nmap il comando è il seguente:

nmap [Options] [Target...]

L'esempio più semplice dell'utilizzo di Nmap è la scansione di un singolo target come utente standard senza specificare alcuna opzione:

nmap scanme.nmap.org

Quando viene invocato come utente non root che non dispone dei privilegi del pacchetto raw, nmap esegue la scansione della connessione TCP. Il (-sT ) è attivato per impostazione predefinita in modalità non privilegiata.

L'output sarà simile a questo, comprese le informazioni di base sulla scansione e un elenco di porte TCP aperte e filtrate.

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

L'opzione di scansione più popolare è la scansione TCP SYN (-sS ) che è più veloce dell'opzione di connessione e funziona contro tutti gli stack TCP conformi.

-sS è attivato per impostazione predefinita quando nmap viene invocato come utente con privilegi di amministratore:

sudo nmap 192.168.10.121

Per un output più dettagliato, usa aumentare la verbosità con -v o -vv :

sudo nmap -vv 192.168.10.121

Per eseguire una scansione UDP, invocare il comando con (-sU ) opzione come utente root:

sudo nmap -sU 192.168.10.121

Per un elenco completo dei metodi di scansione delle porte, visita la pagina della documentazione di Nmap.

Nmap supporta anche gli indirizzi IPv6. Per specificare un host IPv6, utilizzare -6 opzione:

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

Specifica degli host di destinazione #

Nmap tratta tutti gli argomenti che non sono opzioni come host di destinazione.

Gli argomenti sono considerati opzioni se iniziano con un trattino singolo o doppio (- , -- ).

L'opzione più semplice è passare uno o più indirizzi di destinazione o nomi di dominio:

nmap 192.168.10.121 host.to.scan

Puoi utilizzare la notazione CIDR per specificare un intervallo di rete:

nmap 192.168.10.0/24

Per specificare un intervallo di ottetti, utilizzare il carattere trattino. Ad esempio, per scansionare 192.168.10.1 , 192.168.11.1 e 192.168.12.1 :

nmap 192.168.10-12.1

Un altro carattere che puoi usare per specificare gli obiettivi è la virgola. Il comando seguente ha come target gli stessi host di quello sopra:

nmap 192.168.10,11,12.1

Puoi combinare tutti i moduli:

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

Per assicurarti di aver specificato gli host corretti prima della scansione, utilizza l'opzione di scansione dell'elenco (-sL ), che elenca solo le destinazioni senza eseguire una scansione:

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

Se desideri escludere i target inclusi nell'intervallo specificato, utilizza --exclude opzione:

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

Specifica e scansione delle porte #

Per impostazione predefinita, Nmap esegue una scansione rapida delle 1000 porte più popolari. Queste porte non sono le prime 1000 porte consecutive, ma le 1000 porte più comunemente utilizzate che vanno da 1 a 65389.

Per cercare tutte le porte da 1 a 65535, usa il -p- opzione:

nmap -p- 192.168.10.121

Ciascuna porta può trovarsi in uno dei seguenti stati:

  • open - Il programma in esecuzione sulla porta risponde alla richiesta.
  • chiuso:nessun programma viene eseguito sulla porta e l'host risponde alle richieste.
  • filtrato - L'host non risponde alla richiesta.

Ad esempio, per scansionare solo la porta 443, dovresti usare il seguente comando:

nmap -p 443 192.168.10.121

Per specificare più di una porta, separa le porte di destinazione con una virgola:

nmap -p 80,443 192.168.10.121

Gli intervalli di porte possono essere specificati con il simbolo del trattino. Ad esempio, per eseguire la scansione di tutte le porte UDP comprese tra 1 e 1024, eseguire:

sudo nmap -sU -p 1-1024 192.168.10.121

Tutto combinato:

nmap -p 1-1024,8080,9000 192.168.10.121

Le porte possono anche essere specificate utilizzando il nome della porta. Ad esempio, per cercare la porta 22, ssh, puoi usare:

nmap -p ssh 192.168.10.121

Scansione ping #

Per eseguire una scansione ping o un'individuazione dell'host, invocare nmap comando con il -sn opzione:

sudo nmap -sn 192.168.10.0/24

Il -sn l'opzione dice a Nmap solo di scoprire host online e di non eseguire una scansione delle porte. Ciò è utile quando si desidera determinare rapidamente quale host specificato è attivo e funzionante.

Disabilitazione risoluzione nome DNS #

Il comportamento predefinito di Nmap è di eseguire la risoluzione DNS inversa per ogni host rilevato, il che aumenta il tempo di scansione.

Quando si scansionano reti di grandi dimensioni, è una buona idea disabilitare la risoluzione del DNS inverso e accelerare le scansioni. Per farlo, invoca il comando con -n opzione:

sudo nmap -n 192.168.10.0/16

Rilevamento sistema operativo, servizio e versione #

Nmap è in grado di rilevare il sistema operativo dell'host remoto utilizzando il fingerprinting dello stack TCP/IP. Per eseguire il rilevamento del sistema operativo, invoca il comando con -O opzione:

sudo nmap -O scanme.nmap.org

Se Nmap è in grado di rilevare il sistema operativo host, stamperà qualcosa come di seguito:

...
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

In genere, i servizi di sistema sono in ascolto su porte standard note e ad esse riservate. Ad esempio, se la porta 22 che corrisponde al servizio SSH è aperta, si presume che un server SSH sia in esecuzione sull'host. Tuttavia, non puoi essere assolutamente sicuro perché le persone possono eseguire servizi su qualsiasi porta desiderino.

Con il rilevamento del servizio e della versione, Nmap ti mostrerà quale programma è in ascolto sulla porta e la versione del programma.

Per cercare il servizio e la versione, usa il -sV opzione:

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
...

Puoi anche cercare OS, versioni ed eseguire traceroute in un comando usando il -A opzione:

sudo nmap -A 192.168.10.121

Uscita Nmap #

Per impostazione predefinita, Nmap stampa le informazioni sullo standard output (stdout).

Se esegui la scansione di una rete di grandi dimensioni o hai bisogno delle informazioni per un utilizzo successivo, puoi salvare l'output in un file.

Nmap fornisce diversi tipi di output. Per salvare l'output in formato normale, usa -oN opzione seguita dal nome del file:

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

L'opzione più popolare è salvare l'output in formato XML. Per farlo, usa -oX opzione:

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

Un altro formato utile è l'output grepable, che può essere analizzato con gli strumenti Unix standard come grep , awk e cut . L'output grepable è specificato con -oG opzione:

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

Motore di scripting Nmap #

Una delle caratteristiche più potenti di Nmap è il suo motore di scripting. Nmap viene fornito con centinaia di script e puoi anche scrivere i tuoi script in lingua Lua.

Puoi utilizzare gli script per rilevare malware e backdoor, eseguire attacchi di forza bruta e altro ancora.

Ad esempio, per verificare se un determinato host è compromesso puoi utilizzare:

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

Conclusione #

Nmap è uno strumento open source utilizzato principalmente dagli amministratori di rete per scoprire host e scansionare le porte.

Tieni presente che in alcuni paesi non è legale eseguire la scansione delle reti senza autorizzazione.


Linux
  1. Come usare il comando Linux grep

  2. Come usare il comando cronologia in Linux

  3. Come utilizzare il comando basename?

  4. Come usare il comando nmap in Linux

  5. Come utilizzare il comando id in Linux

Come utilizzare il comando fd sul sistema Linux

Come usare il comando nmap

Come utilizzare il comando wget in Linux?

Come usare il comando xargs in Linux?

Come utilizzare il comando RPM in Linux

Come utilizzare il comando which in Linux