MegaLab.it
Stampa Articolo
Aperiodico gratuito di informatica
 
20090415100545_1093291640_20090415100522_1220909519_X0d0FmzqnDyUIGu8owBM8lTU3mzThx9jeNPHRP+njNW5HvBGIkqI.jpg

Port scanning per tutti: guida pratica a Nmap e ShieldsUP

a cura di Zane
26/04/2010 - articolo
Tecniche Avanzate - Che si tratti di capire perché eMule rimanga "bendato", risalire al motivo per cui il server FTP aziendale oggi è inutilizzabile, o valutare il rischio di subire un attacco informatico, un "port scan" è quello che ci vuole per diagnosticare il problema in pochi istanti. Presentiamo un servizio web ideale per l'uso domestico, e un approfondimento ad un software gratuito per professionisti e utenti avanzati. Entrambi funzionano su Windows, Linux e Mac.

Il "port scanning" è una pratica spesso associata ad attività illegali o comunque finalizzata a condurre attacchi alla sicurezza di un calcolatore. Sebbene questa sia innegabilmente una delle possibili applicazioni, vi sono moltissimi scenari del tutto leciti nei quali la tecnica può risultare preziosa

Nmap_11.jpg

Nel corso di questo articolo cercheremo di capire "a volo d'uccello" di che cosa si tratti, e vedremo quindi come effettuare un port scan reale utilizzando alcuni strumenti gratuiti.

Di cosa si tratta

Ogni programma che desideri dialogare tramite una rete è chiamato ad aprire una specifica porta di comunicazione. Volendo banalizzare un discorso piuttosto complesso, si può immaginare che da tale porta passino tutti i dati indirizzati all'applicazione in questione.

Un web server come il celebre Apache HTTP Server, ad esempio, si prepara a ricevere dati sulla porta numero 80 di "tipo" TCP subito dopo essere stato avviato: questo significa che ogni programma client (il browser web, nel caso in esame) sarà chiamato a collegarsi alla porta 80 TCP del server remoto, e, tramite questa, richiedere la pagina che deve essere mostrata a video e tutti gli altri elementi.

Eseguire un "port scan" significa semplicemente bussare a tutte le porte di un calcolatore, e vedere quali sono effettivamente presidiate da un programma. In questo modo diviene possibile, perlomeno a grandi linee, capire quali programmi di rete siano in esecuzione sul computer o il server esaminato.

Questa informazione può poi essere utilizzata in modi differenti: chi esegue un port scan in modo "lecito" può essere interessato a diagnosticare eventuali irraggiungibilità di un determinato servizio: ad esempio, proprio il port scan si configura come il metodo ideale per capire perché non sia possibile collegarsi al nuovo server FTP, oppure per quale motivo eMule rimane perennemente "bendato".

I cracker, invece, possono utilizzare la lista delle porte aperte per capire quali programmi siano in esecuzione sul sistema-vittima, e studiare così una strategia d'attacco.

Questa spiccia introduzione avrà fatto probabilmente rabbrividire gli esperti, ma dovrebbe essere stata sufficiente a contestualizzare per tutti, almeno in linea di massima, il procedimento che andremo a trattare.

A chiunque sia interessato ad approfondire il discorso appena accennato, raccomando l'eccellente libro Internet e Reti di Calcolatori di J. Kurose e K. Ross, McGraw-Hill.

Prima di cominciare: una raccomandazione importante

Poiché un port scan può costituire il primo tassello di un'aggressione informatica, alcuni amministratori di sistema predispongono opportuni strumenti in grado di rilevare tale attività e registrare l'indirizzo IP d'origine.

Raccomando quindi vivamente di utilizzare questa potente tecnica solamente fra computer di vostra proprietà o, comunque, dopo aver ottenuto un'esplicita autorizzazione da parte del responsabile.

Smanettone avvisato...

Se desiderate semplicemente verificare quali servizi del computer che state utilizzando in questo momento siano raggiungibili via Internet, siete fortunati: potete svolgere questa operazione in pochi click, e senza installare alcunché in locale.

Collegatevi al servizio ShieldsUP! realizzato dall'esperto di fama internazionale Steve Gibson e premete il pulsante Proceed

Su_1.jpg

Procedete quindi selezionando Common Ports dalla lista di comandi disponibili

Su_2.jpg

Attendete qualche istante e dovreste vedere un responso simile a quello riportato di seguito

Su_3.jpg

Le porte che riportano la dicitura OPEN! su sfondo rosso sono quelle effettivamente aperte ed attualmente presidiate da un programma attivo. Le altre invece non sono raggiungibili.

Notate però che solo le porte più comuni vengono testate in questo modo e, pur selezionando All Service Ports dalla prima pagina, sono comunque interrogate soltanto le prime 1.024 (su un totale di 65.535 esistenti).

ShieldsUP! si rivela quindi prezioso soprattutto per testare specifiche porte esplicitamente indicategli: immettete quindi le porte che volete testare nel box di fine pagina (separandole da spazio o virgola) e cliccate User Specified Custom Port Probe.

Il sistema risponderà visualizzando lo stato delle specifiche porte richieste (fino ad un massimo di 64), così come illustrato poco fa

Su_4.jpg

ShieldsUP! è uno strumento molto immediato, ma completamente inadeguato per gli utenti avanzati che desiderassero effettuare un port scan completo, all'interno di una LAN e/o rivolto verso un sistema differente da quello in uso. Niente paura però: una soluzione gratuita e più potente esiste.

Nmap è un potente software gratuito ed open source. È realizzato da Gordon "Fyodor" Lyon, uno smanettone divenuto molto famoso fra gli appassionati di sicurezza informatica proprio per questo suo lavoro

Nmap_23.jpg

L'applicazione consente di effettuare port scanning un po' in tutte le salse: testare singoli host, intere reti, porte TCP o UDP ed altro ancora, il tutto con una libertà di configurazione davvero esaltante (per gli smanettoni, s'intende!).

Il programma è disponibile in versioni compatibili con Windows, Linux, Mac OS X ed anche varie declinazioni di UNIX (Solaris, Free/Net/OpenBSD eccetera). Per quanto riguarda il sistema operativo Microsoft, Nmap può essere usato su qualsiasi versione, da Windows 2000 in avanti. Nel corso delle prove, è stato impiegato anche su Windows 7 64 bit senza problemi.

Nmap è un programma a riga di comando. Fortunatamente però, il pacchetto di installazione predispone anche di Zenmap, un front-end che consente di sfruttare le potenti funzionalità di Nmap all'interno di un'interfaccia grafica semplice e funzionale.

Per predisporre Nmap sul vostro computer, collegatevi a questa pagina e scaricate il file contrassegnato dalla dicitura Latest stable release self-installer prestando attenzione a selezionare quello adatto al sistema operativo in uso

Nmap_01 (1).jpg

Portate quindi a termine la procedura di setup cliccando ripetutamente su Avanti.

Identificare il sistema remoto da scansionare

Il primo passo da svolgere è quello di identificare il sistema che desiderate scansionare.

Se si trova nella LAN...

Se si tratta di un computer residente all'interno della vostra stessa LAN, potrete usare il nome della macchina (lo stesso che impiegate per accedere ai file e le cartelle condivise) oppure il suo indirizzo IP: generalmente sarà un numero simile a 192.168.0.1 oppure a 10.0.0.1.

Tutto piuttosto semplice..

Se si trova fuori dalla LAN..

Se invece desiderate effettuare un port scan di un sistema remoto, raggiungibile tramite Internet, dovrete utilizzare il suo nome a dominio completo: si tratta di una stringa simile a miopc.no-ip.org se state testando il vostro PC di casa da una rete esterna (maggiori info) oppure www.microsoft.com per un server al quale sia stato assegnato un nome a dominio più tradizionale.

Anche in questo secondo caso, potrete impiegare, in alternativa al nome a dominio, direttamente il relativo indirizzo IP: si tratterà di un numero simile a 79.50.22.167, 207.46.232.182 o, comunque, differente da 192.168.xxx.xxx, 10.xxx.xxx.xxx ed esterno all'intervallo 172.16.0.0 - 172.31.255.255.

Ricordate infine che, se il vostro obbiettivo risiede dietro ad un router, come condizione di default starete effettuando un port scan del router stesso: affinché sia possibile raggiungere lo specifico host di vostro interesse, sarà necessario che l'instradatore remoto sia correttamente configurato per effettuare un rilancio di specifiche porte ai sistemi della sua LAN. Tale attività è quella generalmente chiamata "rilancio/inoltro/apertura delle porte del router" ("port forwarding").

Una raccomandazione chiara

Appare evidente che il port scanning attraverso Internet richiede qualche attenzione in più. La mia raccomandazione è quindi quella di provare sempre il programma all'interno della rete locale, sopratutto mentre si sta ancora imparando ad usarlo: da notebook a PC fisso è probabilmente una delle situazioni più semplici.

Solo una volta verificato che tutto funzioni come ci si aspetti, passare alla scansione via Internet.

Effettuare il primo port scan

Completata l'installazione, lanciate Zenmap dal menu Start

Nmap_04.jpg

Indicate l'host che volete testare nel campo Target:: è quello che avete identificato durante la fase preliminare descritta nel paragrafo precedente ("Identificare il sistema remoto da scansionare")

Nmap_05.jpg

Dovete quindi indicare quale profilo di scansione desiderate utilizzare: la scelta di default, Intense scan, è probabilmente quella che meglio coniuga velocità e completezza

Nmap_06.jpg

Tutto è pronto: premete il pulsante Scan ed attendete più o meno un minuto, o comunque fino a quando nella finestra principale non si legge la dicitura Nmap done fra le varie informazioni.

A questo punto la scansione è completa, e potete analizzare il responso del software.

Scheda "Host Details"

Portatevi sulla scheda Host Details. Qui troverete alcune interessanti informazioni inerenti il computer esaminato: sono riportate il numero di porte aperte, il sistema operativo in uso, l'indirizzo IP e quello MAC (quest'ultimo solo per i calcolatori appartenenti alla stessa rete) più altre informazioni estremamente tecniche sul protocollo TCP

Nmap_07.jpg

Scheda "Ports / Hosts"

Ma è la scheda Ports / Hosts il vero punto focale di Nmap: qui potrete infatti vedere tutte le porte aperte sul sistema remoto

Nmap_08.jpg

Nell'immagine precedente, si nota che il PC scandagliato ha attivo il servizio di condivisione file e stampanti (porte 139 e 445) ed è pronto ad essere utilizzato via Desktop Remoto (porta 3389).

In caso Nmap non riportasse l'informazione esatta circa il nome del servizio, potete collegarvi all'eccellente "Port Authority Database Help", immettere il numero della porta nel piccolo campo di testo e premere Jump per ottenere informazioni aggiuntive.

Per verificare che effettivamente Nmap stia lavorando alla perfezione, provate ad avviare alcuni servizi di rete aggiuntivi sul calcolatore oggetto d'indagine: nell'immagine proposta di seguito, ad esempio, ho avviato, sullo stesso sistema analizzato in precedenza, anche Apache HTTP Server e MySQL

Nmap_09.jpg

Come al solito, potete ordinare i risultati cliccando sulle varie intestazioni di colonna.

Port scan su un PC "attrezzato"

Se seguite con attenzione MegaLab.it, è possibile vi ritroviate una lunga lista di porte aperte. La cattura proposta di seguito viene dal PC utilizzato per realizzare alcuni articoli proposti dal canale "Tecniche avanzate" negli ultimi mesi

Nmap_11.jpg

Fra le altre, troviamo:

La topologia della rete

Una volta che avrete scansionato con successo una rete o almeno 2-3 sistemi, date un'occhiata alla scheda Topology: troverete un'interessante rappresentazione grafica della distanza fra voi ed i vari computer testati

Nmap_22.jpg

Ad ogni circonferenza corrispondente un ramo di rete attraversato: se quindi state lavorando solo con PC in LAN, vedrete tutti i sistemi sullo stesso cerchio.

Scansionare intere reti

Nmap vi consente anche di controllare, con un colpo solo, lo stato di molteplici i calcolatori. Come spesso avviene quando si parla di questo potentissimo strumento, vi sono molteplici possibilità.

Se conoscente i nomi o gli indirizzi IP dei computer che volete scansionare, scriveteli nel campo Target separati da uno spazio.

Se invece desiderate testare tutte le macchine presenti su una specifica rete, limitatevi ad immettere in Target l'indirizzo IP della rete stessa, sostituendo la parte che identifica i calcolatori con un asterisco (*). Per testare una LAN classica scriveremo quindi 192.168.0.*, oppure 192.168.1.* o ancora 10.0.0.* a seconda della specifica configurazione in uso.

Un risultato analogo è ottenibile anche indicando esplicitamente la subnet da utilizzarsi (192.168.0.0/24, ad esempio).

Potete poi testare solamente determinati intervalli: immettendo nel campo Target qualcosa del tipo 192.168.0.1-10, scansionerete solamente i primi dieci host della rete.

Porte UDP

Fino ad ora abbiamo parlato implicitamente solo di porte TCP, ovvero quelle utilizzate da tutti i più importanti servizi di rete. Nmap è però in grado di rilevare anche eventuali porte UDP, sebbene le differenze intrinseche fra i due protocolli siano tali da rendere nettamente più difficile e impreciso questo secondo tipo di scansioni.

Per ricavare informazioni anche sulle porte UDP, selezionate semplicemente Intense scan plus UDP dal menu a tendina Profile: prima di iniziare la procedura

Nmap_23.jpg

Verificare lo stato di una porta specifica

Da quanto mi è stato possibile capire, Zenmap non offre un oggetto grafico per indicare ad Nmap di scansionare una singola, specifica porta (diciamo la "80", per questo esempio).

Per aggirare il problema, indicate il vostro obbiettivo nel campo Target, selezionate il profilo Regular scan e quindi inserite il parametro -p 80 fra le due stringhe presenti nel campo Command. Dovreste così ottenere qualcosa del tipo nmap -p 80 computerdaprovare.

Proseguite con Scan e Nmap proverà solo la porta 80. Il responso, come facilmente intuibile, è pressoché istantaneo.

No, verso "localhost" non funziona

Prima che perdiate tempo cercando di eseguire un port scan del vostro stesso sistema, sappiate che, perlomeno sotto Windows, tale pratica è preclusa

Nmap_21.jpg

Il programma mostra un avviso nella finestra principale, quindi riporta una serie di risultati più o meno sballati.

Il manuale segnala un possibile rimedio, ma vi suggerisco vivamente di utilizzare sempre due calcolatori distinti per eseguire le vostre scansioni.

Port scan di MegaLab.it

Nmap consente di scansionare qualsiasi host, compresi quelli che erogano i vostri siti web preferiti. Come detto in apertura però, tale pratica potrebbe non essere gradita dagli amministratori dei sistemi in questione, motivo per cui sconsiglio di eseguire port scan senza avere ottenuto le debite autorizzazioni.

A scopo informativo e sperando di saziare la curiosità dei lettori più avventurosi prima che si caccino in qualche guaio, riporto un esempio di quello che è possibile ottenere rivolgendo il programma verso un server come quello che sorregge MegaLab.it

Nmap_17.jpg

Va da sé che altri portali riporteranno informazioni più o meno analoghe.

Lo scopo principale di un port scan è quello di stabilire quali porte di comunicazione siano aperte. Ma.. cosa fare in caso i risultati non fossero quelli sperati ed un servizio non rispondesse a dovere?

Le cause possono essere numerose: riporto di seguito le più probabili.

Ulteriori informazioni

Nel corso di questa guida, abbiamo affrontato tutti gli aspetti più importanti del funzionamento di Nmap.

Lo strumento è comunque molto flessibile, ed offre una pletora di opzioni e parametri differenti che non mi è possibile approfondire in questa sede. Gli interessati possono fare riferimento all'eccellente documentazione ufficiale e, in particolare, al capitolo "Port Scanning Techniques", per tutte le altre informazioni.

Fra le pieghe della guida ufficiale, scoprirete anche alcune curiosità: ad esempio, l'autore segnala che proprio Nmap è chiaramente visibile in una delle scene di hacking del celebre film "Matrix".

MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .

Copyright 2008 MegaLab.it - Tutti i diritti sono riservati