Network Mapper, abbreviato in Nmap, è uno strumento di scansione della rete open source che esegue la scansione di host remoti e ricerca una grande quantità di informazioni come porte aperte, versioni del sistema operativo e versioni dei servizi in ascolto sulle porte aperte. A seconda degli argomenti utilizzati, Nmap rivela anche le vulnerabilità del sistema sottostanti associate a vulnerabilità obsolete basate su CVSS (Common Vulnerability Scanning System). Per questo motivo, Nmap è un prezioso strumento di ricognizione per test di penetrazione e rivelazione di scappatoie che possono essere sfruttate dagli hacker. In effetti, viene preinstallato nei sistemi operativi Kali e Parrot, che sono sistemi operativi dedicati ai test di penetrazione e alla digital forensics.
In questo articolo, mettiamo in evidenza alcuni degli utili comandi di Nmap che ti aiutano a raccogliere informazioni utili sugli host remoti.
Sintassi di base di Nmap
Il comando Nmap più semplice prevede la scansione di un singolo host e richiede solo l'indirizzo IP o il nome host della destinazione remota come argomento.
$ nmap hostname
Oppure
$ nmap remote-host-ip
Analizziamo ora alcuni casi d'uso di Nmap. In questa guida, analizzeremo gli host remoti utilizzando Kali Linux.
Scansiona un singolo host remoto
La scansione di un singolo host è piuttosto semplice. Tutto ciò che serve è passare l'indirizzo IP dell'host remoto o il nome di dominio come argomento. Ad esempio,
$ nmap 192.168.2.103
Il rapporto di scansione di Nmap include dettagli come le porte aperte, lo stato della porta e i servizi in ascolto sulle porte.
Scansiona più host remoti
In uno scenario in cui hai più host remoti, passa semplicemente i loro indirizzi IP su un'unica riga come mostrato.
$ nmap 192.168.2.103 192.168.2.1
Se desideri scansionare l'indirizzo IP di un host remoto consecutivo, inserisci semplicemente l'indirizzo come segue:
$ nmap 192.168.2.1,2,3,4
Il comando sopra esegue la scansione degli host remoti 192.168.2.1, 192.168.2.2, 192.168.2.3, e 192.168.2.4
Scansiona una serie di host remoti
Se disponi di host remoti in un intervallo di indirizzi IP, puoi specificare l'intervallo separato da un trattino.
$ nmap 192.168.2.100-105
Questo eseguirà la scansione di tutti gli host remoti da 192.168.2.100 a 192.168.2.105 intervallo.
Scansione di una sottorete
È possibile eseguire la scansione di un'intera sottorete utilizzando la notazione CIDR. Ad esempio, il comando seguente esegue la scansione di tutti gli host remoti nel 192.168.2.0 sottorete.
$ nmap 192.168.2.0/24
Scansione delle porte tramite Nmap
Puoi indicare a Nmap di scansionare in modo esplicito le porte aperte su un host di destinazione usando il -p flag seguito dal numero di porta. Nell'esempio seguente, stiamo cercando la porta 80 sull'host remoto.
$ nmap -p 80 192.168.2.100
Per specificare più porte, puoi elencarle usando le virgole come mostrato di seguito.
$ nmap -p 80,135,139 192.168.2.100
Per eseguire la scansione di tutte le porte aperte su una destinazione, utilizza –open bandiera. Qui stiamo eseguendo la scansione di Metasploitable Linux, che è un'istanza virtuale intenzionalmente vulnerabile per i test di penetrazione.
$ nmap --open 192.168.2.107
Cerca host remoti attivi
Se vuoi solo sapere quali host remoti sono attivi nella tua sottorete, passa il -sn bandiera come mostrato. L'output non sarà niente di speciale, solo un breve riepilogo degli host attivi.
$ nmap -sn 192.168.2.0/24
Impronte digitali del sistema operativo
Il flag -O ti consente di rilevare fino a un certo punto anche il sistema operativo dell'host. Tuttavia, questo non ti fornisce la versione esatta del sistema operativo di destinazione. Nell'esempio seguente, stiamo eseguendo la scansione di un host che gira su Windows 10, ma il sistema operativo ipotizza che l'host remoto sia probabilmente Windows XP SP2 o Windows Server 2008/2008 R2.
# nmap -O 192.168.2.103
Rilevamento del servizio
Puoi scendere al nocciolo dei servizi in ascolto sulle porte associate utilizzando -sV bandiera. I servizi comuni includono SSH (porta 22), HTTP (porta 80) e DNS (porta 53). Il rilevamento del servizio è una delle attività di scansione più critiche. Aiuta a evidenziare le versioni obsolete del servizio che potrebbero rendere il sistema soggetto a exploit e attacchi.
$ nmap -sV 192.168.2.107
Esegui una scansione invisibile utilizzando Nmap
Una scansione invisibile, abbreviata anche come scansione SYN, è un tipo di scansione discreto che scansiona rapidamente più porte nel più breve tempo possibile. Un pacchetto SYN viene inviato alla destinazione remota e quando viene ricevuta la risposta, Nmap è in grado di segnalare se la porta è aperta, filtrata o chiusa.
$ nmap -sS 192.168.2.107
Esegui una scansione dettagliata
La -A flag esegue un'ispezione approfondita delle porte del target remoto e fornisce dettagli più precisi sulla versione dei servizi in esecuzione e segnala anche eventuali vulnerabilità con il servizio.
$ nmap -A 192.168.2.107
Esegui l'identificazione del firewall
Nmap può anche eseguire l'identificazione del firewall per verificare se le porte sono filtrate o meno. Il -sA l'opzione controlla se il firewall è abilitato e deve essere combinato con il flag -p e il numero di porta. "Non filtrato" significa che la porta non è protetta da un firewall mentre "filtrata" significa che è aperta su un firewall abilitato.
$ nmap -sA 192.168.2.107 -p 21
Scansione dei protocolli TCP o UDP
Se vuoi scansionare solo le porte TCP, usa -sT flag come mostrato.
$ nmap -sT 192.168.2.107
Se scegli di eseguire la scansione per rivelare solo i protocolli UDP, utilizza -sT opzione.
# nmap -sU 192.168.2.107
Utilizzo degli script Nmap per scansionare le vulnerabilità
Nmap Scripting Engine, abbreviato in NSE, fornisce script Nmap che estendono le funzionalità di Nmap. Gli script Nmap vengono utilizzati principalmente per sondare la vulnerabilità e il rilevamento di malware. Questi script sono preinstallati su Kali Linux e si trovano in /usr/share/nmap/scripts il percorso. Hanno un'estensione di file .nse univoca.
Ad esempio, per verificare se un host remoto può essere forzato tramite SSH, usa lo script Nmap di seguito.
$ nmap --script=ssh-brute.nse 192.168.2.107
Salva i risultati della scansione di Nmap
Se hai fretta e desideri salvare i risultati di una scansione Nmap per una revisione successiva, puoi utilizzare il reindirizzamento maggiore di segno> come mostrato.
$ nmap -sT 192.168.2.103 > myscans.txt
Scansiona gli host da un file di testo
In alternativa, puoi scansionare i tuoi host remoti che sono definiti in un file di testo. Per leggere il file, usa –iL opzione.
$ nmap -A iL hosts.txt
Conclusione
Abbiamo elencato 15 comandi Nmap che puoi usare per iniziare a scansionare i tuoi host remoti. Esistono centinaia e centinaia di comandi Nmap e script Nmap che vengono utilizzati per scansionare gli host e sondare eventuali vulnerabilità. Ci auguriamo che ora tu abbia le basi di Nmap e l'esecuzione di comandi per rivelare informazioni sui bersagli remoti. Se stai pensando di scansionare le risorse di un'organizzazione, assicurati di chiedere l'autorizzazione alla direzione per non finire nei guai.