Nmap Scan: tutorial, siti e risorse, guida con esempi e domande

Foto dell'autore

Andrea Barbieri

 

Home > News feed > Competenze e tecnologie > Competenze informatiche > Nmap Scan: tutorial, siti e risorse, guida con esempi e domande

Nmap, uno degli strumenti open-source più potenti per la mappatura di reti e l’audit di sicurezza, ha una vasta gamma di funzionalità che ogni professionista IT dovrebbe conoscere. In questo articolo, ti guideremo attraverso un tutorial di base su come utilizzare Nmap, esplorando le diverse tipologie di scansioni disponibili e comprendendo le tecniche avanzate come lo scripting e l’evasione. Scopriremo anche come gestire le scansioni su vaste reti e come interpretare e reportare i risultati ottenuti

Nmap tutorial base

Nmap, noto anche come Network Mapper, è uno degli strumenti open-source più affidabili e versatili utilizzati dai professionisti della sicurezza informatica per mappare reti e condurre audit di sicurezza. Avere una comprensione chiara su come eseguire una scansione di base con Nmap può offrire informazioni preziose sullo stato di sicurezza della tua rete. Ecco una guida passo-passo su come eseguire uno scan base con Nmap.

Installazione di Nmap

Prima di poter utilizzare Nmap, devi installarlo. La maggior parte dei sistemi Linux lo include nei loro repository ufficiali. Ad esempio, su Debian o Ubuntu, il comando per l’installazione è:

sudo apt-get install nmap

Scansione di base

Una volta installato Nmap, puoi eseguire una scansione di base su un host o una rete. Il comando più semplice da eseguire per eseguire una scansione su un host è:

nmap [IP o nome dominio]

Esempio:

nmap 192.168.1.1

Questo comando eseguirà una scansione delle porte TCP più comuni sull’host specificato. Riceverai un elenco delle porte aperte, insieme al protocollo e al servizio associato a ciascuna porta.

Specificare range di porte

Se vuoi specificare un range di porte, puoi farlo aggiungendo il parametro -p seguito dall’intervallo delle porte:

nmap -p 20-100 192.168.1.1

Questa scansione esaminerà solo le porte tra 20 e 100 sull’host specificato.

Scansione di una rete

Se desideri eseguire una scansione su una gamma di indirizzi IP, puoi utilizzare una notazione CIDR:

nmap 192.168.1.0/24

Questo eseguirà una scansione di tutte le porte comuni su tutti gli host compresi tra 192.168.1.1 e 192.168.1.254.

Nmap è uno strumento potente e versatile con una vasta gamma di opzioni e capacità. Questo tutorial di base dovrebbe aiutarti a iniziare a sfruttare le potenzialità di Nmap. Ti consigliamo di consultare la documentazione ufficiale di Nmap e altre risorse (Nmap Man Page) per approfondire ulteriormente le tue competenze e conoscenze su questo strumento essenziale.

Tipologie di Scansione Nmap

Nel mondo della sicurezza delle reti, Nmap è uno strumento fondamentale per scoprire le vulnerabilità di una rete. Offre una varietà di tecniche di scansione, ognuna adatta a specifiche esigenze e scenari. Analizziamo alcune delle più comuni tecniche di scansione offerte da Nmap.

Scansione SYN

Conosciuta anche come “mezza apertura” o “scansione stealth”, la scansione SYN sfrutta il processo di handshake a tre vie di TCP. Invia un pacchetto SYN a un host e una porta specifici e attende una risposta. Se riceve un pacchetto SYN/ACK in risposta, la porta è aperta. Se riceve un pacchetto RST, la porta è chiusa. Poiché la connessione non viene mai completata, questo tipo di scansione è difficile da rilevare.

Esempio di comando:

nmap -sS [IP]

Riferimenti utili: Scansione SYN su Nmap.org

Scansione TCP Connect

A differenza della scansione SYN, la scansione TCP Connect completa l’intero handshake a tre vie, rendendola più facile da rilevare ma non necessita di privilegi root per essere eseguita. Questo tipo di scansione è utile quando si desidera una conferma definitiva della disponibilità di una porta.

Esempio di comando:

nmap -sT [IP]

Scansione UDP

Le scansioni UDP sono essenziali per identificare le porte UDP aperte su un target. Questo tipo di scansione può essere più lento e meno affidabile delle scansioni TCP, poiché il protocollo UDP è senza connessione e non risponde sempre con un messaggio di errore quando una porta è chiusa.

Esempio di comando:

nmap -sU [IP]

Riferimenti utili: Scansione UDP su Nmap.org

Scansione NULL, FIN e Xmas

Queste tecniche di scansione sfruttano le particolarità delle specifiche TCP per determinare se una porta è aperta o chiusa. Spesso vengono utilizzate per eludere i firewall o i sistemi di rilevamento delle intrusioni.

  • NULL: Invia un pacchetto senza flag TCP impostati.
  • FIN: Invia un pacchetto con solo il flag FIN impostato.
  • Xmas: Invia un pacchetto con i flag FIN, URG e PSH impostati.

Esempio di comando:

nmap -sN/-sF/-sX [IP]

Scansione OS detection

Questa scansione consente di determinare il sistema operativo e alcune delle sue caratteristiche basate sui pacchetti TCP/IP inviati dal host target in risposta. È una tecnica potente ma richiede che almeno una porta del target sia aperta.

Esempio di comando:

nmap -O [IP]

Riferimenti utili: OS Detection su Nmap.org

Scansione ARP

Nelle reti locali, una scansione ARP è spesso più veloce e affidabile delle scansioni IP, poiché il protocollo ARP (Address Resolution Protocol) è utilizzato per risolvere gli indirizzi IP in indirizzi MAC su reti locali.

Esempio di comando:

nmap -PR [IP]

Riferimenti utili: Discovery su Nmap.org

NSE: Scripting con Nmap Scripting Engine

Il Nmap Scripting Engine (NSE) è uno degli strumenti più potenti a disposizione degli utenti di Nmap. Esso permette di estendere le funzionalità di Nmap attraverso l’utilizzo di script, consentendo agli utenti di realizzare scansioni personalizzate e di automatizzare molte attività legate alla sicurezza delle reti.

Introduzione all’NSE

NSE è stato introdotto per aumentare la flessibilità di Nmap. Invece di limitarsi alle scansioni di porte e servizi, NSE permette agli utenti di scrivere (o utilizzare) script per eseguire molteplici operazioni come l’enumerazione di servizi, la rilevazione di vulnerabilità, l’acquisizione di informazioni e molto altro ancora.

Alcune delle caratteristiche chiave di NSE includono:

  • Un linguaggio di scripting basato su Lua, che è sia potente che leggero.
  • Una vasta libreria di script pre-confezionati disponibili nel pacchetto ufficiale di Nmap.
  • La capacità di eseguire script sia prima che dopo la fase di scansione principale.

Esempio pratico di uso dell’NSE

Immaginiamo di voler determinare le versioni di un determinato software in esecuzione su un gruppo di macchine. Invece di fare ciò manualmente, potremmo utilizzare un script NSE come il http-enum per identificare automaticamente le versioni dei servizi web.

Esempio di comando:

nmap --script http-enum [IP]

Questo comando avvia Nmap con lo script http-enum, che tenta di identificare servizi web e le loro versioni.

Sviluppare script personalizzati

Sviluppare uno script personalizzato per NSE richiede una conoscenza di base del linguaggio Lua e delle API di Nmap. Una volta compreso il funzionamento, gli utenti possono sviluppare script che si adattano alle esigenze specifiche, dal semplice rilevamento di servizi alla complessa identificazione di vulnerabilità.

Un semplice script potrebbe, ad esempio, verificare la presenza di una specifica pagina web su un server.

Esempio di script:


description = [[
  Controlla la presenza di una specifica pagina web.
]]
---
-- @usage
-- nmap --script=check-page -p 80,443 [IP]
--
-- @output
-- PORT   STATE SERVICE
-- 80/tcp open  http
-- | check-page: 
-- |   La pagina /example.html è presente!
--

action = function(host, port)
  local http = require "http"
  local response = http.get(host, port, "/example.html")
  if response.status == 200 then
    return "La pagina /example.html è presente!"
  end
end

Questo script utilizza la libreria http fornita da Nmap per inviare una richiesta GET e controllare se una pagina esiste o meno.

Risorse esterne

Per ulteriori approfondimenti e una guida dettagliata su come scrivere e utilizzare script NSE, si può fare riferimento alla documentazione ufficiale:

Tecniche di evasione con Nmap

Spesso gli amministratori di sistema cercano di bloccare o almeno di identificare tali scansioni per proteggere la loro rete da possibili minacce. Di conseguenza, gli hacker etici e i professionisti della sicurezza hanno sviluppato diverse tecniche di evasione per utilizzare Nmap in modo più stealth.

Scansione di tipo Idle

Una delle tecniche più interessanti è la scansione di tipo Idle. Questa tecnica utilizza un terzo computer che ha una connessione inattiva con il target. L’idea è che, poiché il terzo computer non sta effettuando altre attività sulla rete, può essere utilizzato come “zombie” per inviare pacchetti al target, rendendo più difficile rilevare la vera origine della scansione. Ecco come funziona:

  • Un pacchetto SYN viene inviato al computer zombie.
  • Il computer zombie aumenta il suo numero di sequenza IP.
  • Un pacchetto SYN viene inviato al target usando il numero di sequenza IP del computer zombie.
  • Se la porta è aperta, il target risponderà con un pacchetto SYN/ACK al computer zombie.

Tecniche di frammentazione dei pacchetti

Un altro metodo efficace è la frammentazione dei pacchetti. Questa tecnica divide il pacchetto in segmenti più piccoli, rendendo difficile per gli IDS (Intrusion Detection Systems) rilevare la scansione. Ad esempio, invece di inviare un pacchetto di 100 byte, potresti inviare 10 pacchetti da 10 byte ciascuno.

Esempio di codice:

nmap -f target.com

Il flag -f dice a Nmap di frammentare i pacchetti.

Utilizzo di Proxy e VPN

Un’altra tecnica comune è l’uso di Proxy e VPN (Virtual Private Networks) per mascherare l’origine della scansione. Questo può aiutare a evadere rilevamenti basati sull’indirizzo IP di origine.

Risorse esterne:

È importante notare che queste tecniche, se utilizzate in modo non etico o senza permesso, possono portare a gravi conseguenze legali. Assicurati sempre di avere l’autorizzazione appropriata prima di eseguire qualsiasi scansione o test sulla rete di qualcun altro.

Scansione su grandi reti con Nmap

La scansione di grandi reti presenta una serie di sfide che vanno al di là della semplice identificazione delle porte aperte o dei servizi in esecuzione. Con Nmap, è possibile eseguire scansioni dettagliate su reti estese in modo efficiente, ma è essenziale comprendere le best practice per garantire risultati accurati e tempestivi.

Utilizzo di Parallelismo

Quando si tratta di reti di grandi dimensioni, il parallelismo è essenziale. Nmap utilizza il parallelismo per scandire più indirizzi IP contemporaneamente, riducendo così il tempo totale di scansione. Puoi controllare il grado di parallelismo utilizzando l’opzione –min-parallelism e –max-parallelism.

Esempio di codice:

nmap –min-parallelism 10 –max-parallelism 50 target.com

Evitare Interruzioni

Le scansioni su grandi reti possono richiedere molto tempo. Se la scansione viene interrotta per qualsiasi motivo, può essere frustrante dover ricominciare da capo. Fortunatamente, Nmap offre l’opzione –resume che permette di riprendere una scansione interrotta dal punto in cui si è fermata.

Esempio di codice:

nmap –resume outputfile

Limitare la Scansione

Invece di scandire tutte le porte, può essere più efficiente limitarsi a quelle più comuni o a quelle ritenute di interesse. Utilizza l’opzione -p per specificare le porte che vuoi scandire.

Esempio di codice:

nmap -p 22,80,443 target.com

Risorse esterne:

Output e Reporting

Una volta completata la scansione, interpretare e condividere i risultati in modo efficace diventa cruciale. Nmap offre diverse opzioni per l’output che possono aiutarti in questo.

Formati di Output

Nmap supporta diversi formati di output, tra cui:

  • Normale: adatto per la lettura da parte degli umani.
  • XML: utile per l’integrazione con altri strumenti o per l’elaborazione programmata.
  • Grepable: semplifica l’elaborazione dei risultati con strumenti come grep.

Esempio di codice:

nmap -oX output.xml target.com

Visualizzazione dei Risultati

Per una migliore analisi e presentazione dei risultati, puoi utilizzare strumenti come Nmap’s Zenmap GUI o Ndiff per confrontare i risultati di due scansioni e identificare le differenze.

Risorse esterne:

È fondamentale conservare, interpretare e condividere correttamente i risultati delle scansioni per informare le decisioni sulla sicurezza e le strategie di mitigazione.

Domande e risposte su Nmap

Che cos’è Nmap?

Nmap, che sta per Network Mapper, è uno strumento open source utilizzato per scoprire dispositivi all’interno di una rete e determinare le porte aperte associate a questi dispositivi. È ampiamente utilizzato da professionisti della sicurezza e amministratori di sistema per valutare la sicurezza delle reti.

Perché dovresti usare Nmap?

Utilizzare Nmap consente di identificare potenziali vulnerabilità nella tua rete, come porte aperte inutilizzate o servizi obsoleti. Questo può aiutare a chiudere lacune nella sicurezza e a prevenire potenziali minacce.

È legale utilizzare Nmap su qualsiasi rete?

No, è essenziale avere il permesso appropriato per eseguire scansioni su qualsiasi rete. Utilizzare Nmap senza permesso può portare a gravi conseguenze legali.

Come si esegue una scansione base con Nmap?

Per eseguire una scansione base, basta digitare “nmap” seguito dall’indirizzo IP o dal nome del dominio del target. Ad esempio: nmap 192.168.1.1

Quali sono alcuni dei flag comuni utilizzati in Nmap?

Ci sono molti flag utili in Nmap, tra cui:

  • -p: Specifica le porte da scansionare.
  • -sP: Esegue una scansione di ping.
  • -sS: Esegue una scansione SYN stealth.
  • -oX: Salva l’output in formato XML.

Come si può evitare che un sistema IDS rilevi una scansione Nmap?

Si può utilizzare la scansione stealth, come la scansione SYN (-sS), o altre tecniche come la frammentazione dei pacchetti (-f) per rendere la scansione più difficile da rilevare.

È possibile utilizzare Nmap su sistemi operativi diversi da Linux?

Sì, Nmap è disponibile per vari sistemi operativi, tra cui Windows, macOS e molti sistemi UNIX-like oltre a Linux.

Dove posso trovare documentazione dettagliata su Nmap?

La documentazione ufficiale e dettagliata su Nmap è disponibile sul sito ufficiale di Nmap, e precisamente qui.

Lascia un commento