Nmap cos’è e come funziona un port scanner


11 Mar 2020 - Informatica, Software


Nmap cos’è e come funziona un port scanner
Nmap, cos’è e come funziona questo port scanner che non può mancare nel kit di sopravvivenza di un sistemista per controllare una rete locale.



Indice

Nmap, cos’è e come funziona: cos’è un port scanner!


Cos’è un port scanner e come può tornare utile al fine di un sistemista? Perchè Nmap, cos’è e come funziona IL tool per antonomasia del port scanning?

Il port scanning


Il port scanning è una tecnica utilizzata per sondare un server o un host per stabilire quali servizi e porte sono aperte (se non sai cosa sono le porte: https://www.giustinoromano.it/2019/12/10/osi-layer-4-livello-trasporto/#Porte ).

Con questo software sarà possibile addirittura controllare il sistema operativo dell’host connesso alla rete locale.
Controllare quanti IP sono connessi alla LAN un pò come con Fing.
Permette di controllare le porte aperte di un singolo host o di una range di hosts!

Nmap installazione


Nmap è rilasciato sotto licenza GNU GPL ed è possibile scaricarlo da qui o digitando , in distro Debian:

sudo apt-get install nmap

Dispone anche di una interfaccia grafica chiamata Zenmap ma preferisco di gran lunga la riga di comando del terminale.

Nmap, cos’è e come funziona : Arping per trovare gli IP connessi alla rete locale


Utilizzando il protocollo ARP (non mi dilungherò sul concetto che ho spiegato bene nel’articolo seguendo il link), Nmap invia frame di dati su tutti gli indirizzi IP della rete.
Quelli che rispondono sono ovviamente connessi.

Presumendo di essere in una rete LAN di classe C cioè 192.168.1.0 con maschera 255.255.255.0 il comando per fare una scansione di tutta la rete è :

nmap -sn 192.168.1.0/24

Che tu stia usando Zenmap o il terminale avrai un risultato del genere:

Nmap cos'è e come funziona

Possiamo notare che Nmap ci restituisce l’indirizzo IP di ogni host che ha risposto alla chiamata ARP con relativi MAC Address e produttore della scheda di rete.

Vediamo ora come possiamo fare un port scanning aggiungendo un pò di parametri in più.

Intanto per vedere le opzioni che si possono utilizzare in aggiunta al comando nmap è possibile visualizzarne la lista scrivendo nel terminale semplicemente:

nmap

Ci verrà restituito questo:

Nmap cos'è e come funziona
nmap -T4 -A -v 192.168.1.0/24

In questo specifico caso stiamo facedo una scansione aggressiva data dal parametro -T4 (per maggiori informazioni https://nmap.org/book/performance-timing-templates.html ).
Per capire il significato della “-A” rifacciamoci al listato che ci viene restituito dal comando nmap senza alcuna opzione:

Nmap cos'è e come funziona

La “-v” sta per verbose che tradotto in inglese significa “prolisso“. Ciò significa che l’output sarà più dettagliato.
Vi rimando comunque alla guida ufficiale : https://nmap.org/book/man.html

Nmap, cos’è e come funziona: facciamo un pò di scanning!


SYN SCAN


La SYN SCAN è detta anche Stealth Scan o Half Open Scan e sfrutta il Three Way Handshake, infatti si effettua un mezzo TWH:

  • il client invia al server un syn
  • il server se può rispondere su quella porta invia un syn ack
  • a questo punto non inviamo un ack instaurando una connessione a tutti gli effetti ma inviamo un reset (impostiamo il pacchetto con il flag “reset” a “1”)

comando:

namp -sS (attiva la scansione SYN SCAN) -v (verbose, più dettagli) -p (porta) 80 [ip_target]

In questo modo, cioè non completando la connessione difficilmente comparirà nei file di log.
Tuttavia sistemi di individuazione di intrusione, detti IDS, possono registrare tali attività.

La dolce Trinity del film Matrix che utilizza nmap e in particolare questa tecnica!!! ????????????

Nmap cos'è e come funziona

XMAS SCAN


Questa tecnica è utilizzata per firewall non molto potenti e non funziona con sistemi Windows.

Sostanzialmente bombardiamo il target con invio di pacchetti anomali (di tipo URG, ACK, RST, SYN, PSH, FIN).

La macchina attaccante invia questi pacchetti alla macchina target con questi pacchetti. se non c’è risposta dal target significa che la porta è aperta.

Se invece il taget riponde con un pacchetto RST (reset) significa che la porta è chiusa.

nmap -sX (attiva XMAS SCAN) -v (verbose, per avere più dettagli) -p (porta) 80 [ip_target]

FIN SCAN


Funziona solo su sistemi UNIX. Anche qui abbiamo un attaccante e un target. Mandiamo un pacchetto con FIN settato a 1.

Se non c’è risposta, se non torna niente indietro possiamo supporre che la porta è aperta. Se invece dopo aver mandato il pacchetto FIN settato a 1 e indietro otteniamo un RESET/ACK la porta è chiusa.

nmap -sF (attiva FYN SCAN) -v (verbose, per avere più dettagli) -p (porta) 80 [ip_target]
<h3 style="font-weight:700">NULL SCAN</h3><br>

Anche questa scansione non funziona su sistemi Microsoft.
Mandiamo un pacchetto TCP con nessun flag impostato.

Abbiamo un attaccante che manda un pacchetto al target in cui non ci sono flag tcp e se non otteniamo risposta allora la porta è aperta.

Altrimenti se otteniamo un RST/ACK come riposta allora la porta è chiusa

nmap -sN (attiva NULL SCAN) -v (verbose, per avere più dettagli) -p (porta) 80 [ip_target]

IDLE SCAN


Dunque questa tecnica è un pochino più articolata da spiegare.

Non è niente di che sostanzialmente fa tutto il comando ma è davvero interessante in quanto la macchina attaccante non interagisce direttamente con il bersaglio ma utilizzarà un terzo personaggio : lo zombie!
Di fondo utilizza una tecnica chiamata spoofing.
La macchina attaccante si serve di una macchina, chiamata in gergo zombie per fare spoofing e far credere al bersaglio di essere lo zombie.

Do per scondato che ti ricordi o sai come funziona il Three Way Handshake.

L’attacco si sviluppa in tre fasi:

1) L’attaccante invia allo zombie direttamente un SYN ACK.

Lo zombie non si aspetta di ricevere un syn ack e si trova in una situazione anomala perchè non ha ricevuto alcun syn ergo lo zombie replica alla macchina attaccante con un pacchetto col flag reset.

In questo momento nel pacchetto col flag reset è presente l’ IP
e il sequence number dello zombie, ad esempio 1000.

2) A questo punto l’attaccante manda un syn al target con l’indirizzo ip dello zombie (spoofed ip). La macchina target di conseguenza avendo l’ip dello zombie replicherà allo zombie con un syn ack. Ergo lo zombie replicherà alla macchina target con un reset. Nel pacchetto è presente l’IP con il sequence number incrementato di 1 quindi andrà a 1001.

3) Nell’ultima fase la macchina attancante manderà un syn ack allo zombie e questo replica con un reset con il sequence number incrementato ulteriormente di 1 quindi va a 1002.

Questo incremento a 1002 fa intuire all’attaccante che la porta del target è sicuramente aperta e tutto ciò è avvenuto non facendo interagire il bersaglio direttamente con la macchina attaccante ma sempre con lo zombie.

In caso di porta chiusa:

1) come prima l’attaccante manda allo zombie un syn ack e lo zombie risponde con un reset impostando a 1000 il sequence number

2) anche qui l’attaccante manda al bersaglio un syn non con il suo indirizzo ip ma con quello dello zombie (spoofed ip)

supponendo che il bersaglio abbia la porta chiusa manda un reset allo zombie e il sequence number resta a 1000

3) l’attaccante rimanda un syn ack allo zombie che ci rispode con un reset a 1001

Nel pratico:

  • fare una scansione della rete
  • rilevare tutti gli ip della rete attivi
  • abbiamo il bersaglio? (di solito è un server o cose del genere per cui hanno ip statici)
  • scegliere uno zombie dagli altri ip e accertarsi che la macchina abbia attiva la ip sequence con:
nmap -- script ipidseq [ip zombie]
  • accertati che lo zombie abbia l’ip sequence attivo possiamo procedere con l’attacco:
nmap -Pn -F -sI [ip zombie] [ip target]

Se volessimo non fare la fast scan ma specificare una porta il comando è :

nmap -Pn -p 80 -sI [ip zombie] [ip target]
Nmap cos'è e come funziona
Nmap cos'è e come funziona
Nmap cos'è e come funziona

GiustinoRomano.IT – I do IT with my Heart.

Tag: , , ,


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Translate Me



Contatti


         

About Me








Sono Giustino Romano, un "IT specialist" e "Web Developer" con una forte passione per il mondo digitale. Sviluppo siti web ed offro ai miei partner servizi di assistenza informatica. Li accompagno nel mondo digitale e li supporto dai semplici problemi quotidiani di connessione fino ad articolate infrastrutture informatiche dando loro visibilità sul web e risalto alla loro identità digitale.
Clicca sul link e scopri di più




Annunci




Leggi anche...