Come utilizzare il comando nmap per scansionare la rete su Linux

17 dic 2020 7 min di lettura
Come utilizzare il comando nmap per scansionare la rete su Linux
Indice dei contenuti

Introduzione

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 nozioni di base su come utilizzare il comando nmap per eseguire varie attività di rete.

Installare 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 sulla 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 a seconda del sistema operativo.

Installare Nmap su Ubuntu e Debian

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

sudo apt update
sudo apt install nmap

Installare Nmap su CentOS e Fedora

Su CentOS e derivati ​​di Red Hat vengono eseguiti:

sudo dnf install nmap

Installare Nmap su macOS

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

brew install nmap

Installare 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 dalla riga di comando o avviando il programma Zenmap. Per maggiori informazioni su come usare Nmap su Windows, controlla le istruzioni di utilizzo post-installazione.

Utilizzare Nmap

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

La sintassi semplificata del comando nmap è la seguente:

nmap [Options] [Target...]

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

nmap scanme.nmap.org

Quando il comando nmap viene richiamato come utente non root che non dispone dei privilegi sul pacchetto, nmap esegue la scansione della connessione TCP. Il flag (-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.80 ( https://nmap.org ) at 2020-12-17 00:27 CET
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.16s latency).
Other addresses for scanme.nmap.org (not scanned): 2600:3c01::f03c:91ff:fe18:bb2f
Not shown: 996 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
9929/tcp  open  nping-echo
31337/tcp open  Elite

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

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

-sS è attivato per impostazione predefinita quando nmap viene richiamato come utente con privilegi amministrativi:

sudo nmap 192.168.11.11

Per un output più dettagliato, usa uno dei seguenti flag  -v o -vv:

sudo nmap -vv 192.168.11.11

Per eseguire una scansione UDP, invoca il comando con l'opzione -sU  come utente root:

sudo nmap -sU 192.168.11.11

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

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

sudo nmap -6 2a01:4f8:1c1c:c73d::1

Specificare gli 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.11.11 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 eseguire la scansione 192.168.10.1, 192.168.11.1, and 192.168.12.1:

nmap 192.168.10-12.1

Un altro carattere che puoi utilizzare 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 tutte le forme:

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, usa l'opzione list scan (-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 l'opzione --exclude:

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

Specificare e scansionare le porte

Per impostazione predefinita, Nmap esegue una scansione rapida per le 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, utilizzare l'opzione -p-:

nmap -p- 192.168.11.11

Ogni porta può trovarsi in uno dei seguenti stati:

  • open - Il programma in esecuzione sulla porta risponde alla richiesta.
  • closed - nessun programma viene eseguito sulla porta e l'host risponde alle richieste.
  • filtered - l'host non risponde alla richiesta.

Le porte e gli intervalli di porte vengono specificati con l'opzione -p.

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

nmap -p 443 192.168.11.11

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

nmap -p 80,443 192.168.11.11

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

Tutto combinato:

nmap -p 1-1024,8080,9000 192.168.11.11

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

Scansione ping

Per eseguire una scansione ping o un rilevamento host, richiamare il comando nmap con l'opzione -sn:

sudo nmap -sn 192.168.10.0/24

L'opzione -sn dice a Nmap solo di scoprire gli host online e di non fare una scansione delle porte. Ciò è utile quando si desidera determinare rapidamente quale host specificato è attivo e in esecuzione.

Disattivare DNS Name Resolution

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

Durante la scansione di reti di grandi dimensioni, è una buona idea disabilitare la risoluzione DNS inversa e accelerare le scansioni. Per farlo, richiama il comando con l' -nopzione:

sudo nmap -n 192.168.10.0/16

Identificare il Sistema operativo, i servizi la versione

Nmap può rilevare il sistema operativo dell'host remoto usando l'impronta digitale dello stack TCP/IP. Per eseguire il rilevamento del sistema operativo, richiamare il comando con l'opzione -O:

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 6.47 seconds

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

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

Per cercare servizio e versione, utilizza l'opzione -sV:

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 eseguire la scansione per OS, la versione ed eseguire traceroute in un unico comando utilizzando l'opzione -A:

sudo nmap -A 192.168.10.121

Output di Nmap

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

Se si esegue la scansione di una rete di grandi dimensioni o sono necessarie le informazioni per un utilizzo successivo, è possibile salvare l'output in un file.

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

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

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

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 viene specificato con l'opzione -oG:

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

Nmap Scripting Engine

Una delle caratteristiche più potenti di Nmap è il suo motore di scripting. Nmap viene fornito con centinaia di script, 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 le porte host e di scansione.

Si noti che in alcuni paesi non è legale eseguire la scansione di reti senza autorizzazione.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.