Nmap è l'acronimo di Network Mapper, è uno strumento di ricognizione e ricognizione di rete gratuito e open source utilizzato per il rilevamento di host e la raccolta di informazioni dettagliate su un host. Scritto in C, C++ e Python e rilasciato inizialmente nel settembre 1997, nmap è diventato uno strumento integrale per i professionisti della sicurezza informatica e della digital forensic che fanno affidamento su di esso per rivelare informazioni dettagliate sugli host di destinazione e scoprire potenziali vulnerabilità. Nmap rivela informazioni come host attivi su una rete, porte aperte, rilevamento di sistemi operativi e servizi ed esecuzione di scansioni invisibili per citarne solo alcuni.
In questa guida, mettiamo in evidenza alcuni dei pratici comandi di Nmap che puoi usare per recuperare quante più informazioni possibili dai sistemi host.
Come installare nmap
Prima di esaminare i vari modi in cui il comando nmap può essere utilizzato, diamo un'occhiata a come installare questo utile strumento da riga di comando. Il modo più semplice e universale per installare nmap è usare i pacchetti snap. Gli snap sono pacchetti software predefiniti forniti con librerie e dipendenze. Sono prontamente disponibili in tutte le principali distribuzioni Linux. Puoi trovare tonnellate di scatti in snapstore. Tuttavia, prima di installare Nmap dai pacchetti snap, devi prima abilitare il demone snapd. Ciò ti consentirà di scaricare e installare pacchetti snap.
Per installare Nmap usando gli snap, esegui il comando seguente.
$ sudo snap install nmap
In alternativa, puoi scegliere di installare Nmap utilizzando gestori di pacchetti unici per ogni famiglia di distribuzione Linux.
Per Ubuntu e Debian
Per le distribuzioni basate su Ubuntu/Debian/Mint usa il gestore di pacchetti APT come mostrato.
$ sudo apt -y install nmap
Per CentOS 8 / RHEL 8 / Fedora 22 e versioni successive
Per CentOS 8 / RHEL 8 e Fedora 22 e versioni successive usa il gestore di pacchetti dnf.
$ sudo dnf -y install nmap
Per CentOS 7 e RHEL 7
Per CentOS 7 / RHEL 7 e versioni precedenti, usa il gestore di pacchetti yum.
$ sudo yum -y install nmap
Per Arch Linux/Manjaro
Per i sistemi basati su Arch, usa il gestore di pacchetti pacman come mostrato.
$ sudo pacman -S nmap
Dopo aver esaminato l'installazione di nmap, ora procediamo e vediamo 20 fantastici esempi di comandi nmap in Linux
1) Comando Nmap per la scansione di un singolo host
Nella sua forma base, il comando nmap può essere usato per scansionare un singolo host senza passare alcun argomento. La sintassi è la seguente:
$ nmap target-ip
Ad esempio;
$ nmap 192.168.2.102
In alternativa, invece di specificare l'indirizzo IP, puoi specificare il nome di dominio come mostrato:
$ nmap scanme.nmap.org
2) Esegui la scansione di più host
La scansione di più host in una volta è particolarmente utile per reti estese in cui si desidera eseguire la scansione di più host contemporaneamente. È un modo conveniente per scansionare gli host con un unico comando invece di scansionare ogni host separatamente. Ad esempio, puoi scansionare 10 o più host o un'intera sottorete mentre lavori su qualcos'altro. Ci sono diversi modi per farlo.
In primo luogo, puoi specificare più indirizzi IP o domini in una riga separati da uno spazio come mostrato;
$ nmap 192.168.2.1 192.168.2.103
Invece di digitare gli indirizzi IP per intero, puoi separare le terminazioni con una virgola come mostrato.
$ nmap 192.168.2.1,102,103
Inoltre, puoi specificare un intervallo di indirizzi IP utilizzando un trattino. Ad esempio, il comando seguente esegue la scansione degli host da 192.168.2.1 a 192.168.2.100
$ nmap 192.168.2.1-100
3) Esegui la scansione di una sottorete con nmap
Inoltre, puoi utilizzare un carattere jolly per scansionare un'intera sottorete come mostrato:
$ nmap 192.168.2.* OR $ nmap 192.168.2.0/24
Per perfezionare la scansione e scoprire solo host live in una sottorete, usa l'opzione -sP come mostrato.
$ nmap -sP 192.168.2.*
4) Ottieni maggiori informazioni con l'opzione dettagliata
Per ottenere un output più robusto durante la scansione di nmap, usa l'opzione -v. Questa opzione stampa i dettagli della scansione come la natura della scansione e le porte aperte rilevate.
$ nmap -v 192.168.2.1
5) Escludi host da una scansione Nmap
Quando si esegue la scansione di un intervallo di host, è possibile decidere di escludere un singolo host dalla scansione. Per ottenere ciò, utilizzare l'opzione –exclude. Nell'esempio seguente, abbiamo escluso l'host 192.168.2.20 dalla scansione.
$ nmap 192.168.2.0/24 --exclude 192.168.2.20
Per escludere più host dalla scansione di Nmap, specifica gli host da escludere in un file e collega il comando al file come mostrato:
$ nmap 192.168.2.* --excludefile exclude.txt
Il comando precedente esclude tutti gli host contenuti nel file exclude.txt.
6) Esegui una scansione veloce
Come suggerisce il nome, puoi eseguire una scansione molto più veloce usando nmap passando il flag -F come mostrato:
$ nmap -F 173.82.202.201
Una dichiarazione di non responsabilità:questa scansione produce meno porte rispetto alla scansione normale.
7) Scansiona gli host attivi in una rete
Questo è più simile a una scansione ping. Rileva gli host attivi in una sottorete. Per cercare host attivi, passare l'opzione -sn seguita dall'indirizzo IP e dalla sottorete. Ad esempio:
$ nmap -sn 192.168.2.0/24
8) Scansiona gli host contenuti in un file
Se hai una rete segmentata, in particolare una con VLAN, è probabile che tu abbia host in sottoreti diverse. Un modo semplice per scansionarli è definire i loro indirizzi IP in un file di testo e passare il file come argomento usando l'opzione -iL.
$ nmap iL hosts.txt
Ecco un esempio del file host
$ cat hosts.txt 192.168.2.100 192.168.2.102 192.168.20.5-50
9) Esegui una scansione per rilevare il firewall
Il rilevamento del firewall è particolarmente utile quando si eseguono test di vulnerabilità o hacking etico. Consente all'amministratore di sistema di sapere se il firewall dell'host di destinazione è abilitato o meno. Per conoscere lo stato di un firewall, usa il flag -sA come mostrato.
$ nmap -sA 192.168.2.1
Questo avvia una scansione ACK che esamina se i pacchetti possono passare senza filtri. Usa il flag -n per impedire la risoluzione DNS inversa sull'host di destinazione.
10) Esegui il rilevamento del sistema operativo con nmap
Nmap può anche fornire informazioni dettagliate sul sistema operativo o sul sistema operativo del sistema di destinazione e anche il rilevamento della versione. Per il rilevamento del sistema operativo, passare l'opzione -O come mostrato. Esamineremo un cloud VPS ospitato su un sistema Linux e vedremo cosa ci offre nmap.
NOTA: Se sei un utente normale, devi invocare il comando sudo poiché il rilevamento del sistema operativo richiede i privilegi sudo.
$ sudo nmap -O 173.82.202.201
Nmap fa del suo meglio per identificare il sistema operativo e la sua versione, tuttavia, i risultati potrebbero non rappresentare sempre un risultato accurato.
11) Esegui la scansione delle porte
Una delle attività essenziali dello strumento nmap è la scansione delle porte su un sistema host. Puoi andare al sodo e specificare una porta da scansionare usando il flag -p seguito dal numero di porta come mostrato:
$ nmap -p 80 173.82.202.201
Inoltre, puoi cercare più porte separandole usando una virgola come mostrato:
$ nmap -p 80,443 192.168.2.1
Puoi anche definire un intervallo di porte da scansionare separandole con un trattino.
$ nmap -p 80-443 192.168.2.1
12) Cerca le porte TCP/UDP
Puoi restringere il campo alla scansione delle porte che sono TCP o UDP. Per scansionare le porte TCP, usa l'opzione -sT come mostrato.
$ nmap -sT 173.82.202.201
Per una particolare porta TCP, come la porta 80, eseguire:
$ nmap -p T:80 173.82.202.201
Per le porte UDP, usa l'opzione -sU.
$ nmap -sU 173.82.202.201
Per una particolare porta UDP, come la porta 69, eseguire:
$ nmap -p U:69 173.82.202.201
13) Scopri la versione del servizio
Durante la scansione di possibili vulnerabilità, è fondamentale rilevare i servizi in esecuzione e le relative versioni, nonché le porte su cui sono in ascolto. Ciò ti consente di sapere quali servizi possono essere sfruttati da un utente malintenzionato per compromettere il tuo sistema. La conoscenza delle versioni dei servizi e delle porte ti consente di decidere se aggiornare i servizi alle versioni più recenti o disinstallarli del tutto.
Per raccogliere servizi e informazioni sulla porta usa il flag -sV.
$ nmap -sV 173.82.202.201
14) Esegui una scansione invisibile
Una scansione nmap è solitamente "rumorosa" e lascia impronte che possono essere contrassegnate da un robusto IDS (sistema di rilevamento delle intrusioni) e alla fine essere ricondotte a te. Per rimanere anonimo , puoi eseguire una scansione invisibile utilizzando l'opzione -sS.
$ nmap -sS 173.82.202.201
15) Determina i protocolli IP supportati
Puoi recuperare informazioni sui protocolli supportati da un sistema di destinazione (ICMP, TCP, UDP ecc.) usando il flag -sO.
$ sudo nmap -sO 173.82.202.201
16) Esegui una scansione aggressiva
Quando viene utilizzata l'opzione -A, nmap fornisce risultati di scansione molto dettagliati, comprese le porte aperte e le versioni dei servizi in esecuzione, il rilevamento del sistema operativo ed esegue persino un traceroute degli host di destinazione.
$ nmap -A 173.82.202.201
17) Salva l'output di nmap in un file
Per impostazione predefinita, nmap stampa i risultati della scansione sul terminale. Ma se hai bisogno di salvare i risultati su un file di testo per ulteriori analisi a tuo piacimento, puoi utilizzare l'operatore di reindirizzamento come mostrato.
$ nmap 173.82.202.201 > scanme.txt
Per verificare che i risultati della scansione siano stati salvati, utilizzare il comando cat come mostrato.
$ cat scanme.txt
Inoltre, puoi passare l'opzione -oN seguita dal file di output e dall'host.
$ nmap -oN scanme.txt scanme.nmap.org
18) Stampa le interfacce e i percorsi dell'host
A volte, potresti trovare la necessità di trovare le interfacce e i percorsi del sistema host per scopi di debug. Questo può essere ottenuto facilmente passando l'opzione –iflist.
$ nmap --iflist
19) Ottieni assistenza con nmap
Per saziare la tua curiosità su ulteriori opzioni di nmap, usa il flag -h. Questo è sinonimo di aiuto con i comandi nmap.
$ nmap -h
20) Controlla la versione di nmap
Per verificare la versione di nmap che stai utilizzando esegui il comando:
$ nmap -v
Questi sono solo 20 dei comandi di base di Nmap che puoi usare per enumerare vari sistemi host. Ci sono ancora molte opzioni di nmap che puoi usare per ottenere dettagli raffinati sul sistema di destinazione, ma gli esempi che abbiamo elencato sono un buon punto di partenza. Ci auguriamo che questa guida sia stata utile per farvi conoscere lo strumento nmap e vari esempi di comandi.
Leggi anche :9 esempi di comandi tee in Linux