
guide
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Come installare e utilizzare Nmap, il miglior “scanner di rete” open source presente sul Web. Dall’uso a riga di comando all’utilizzo dell’interfaccia grafica
Nmap è nato come scanner di rete ed è diventato un tool molto ricco, utilizzabile sia allo scopo di prevenire attacchi che di effettuarli.
Come spesso avviene, l’attaccante e il difensore, hanno esigenze analoghe, per cui anche l’amministratore di rete che deve difendersi ha bisogno di scoprire le sue falle. Si dirà che dovrebbe conoscerle, ma in realtà nulla può sostituire uno sguardo obiettivo dall’esterno, con tanto di report scritto.
Nmap è scritto per sistemi Linux ed è possibile utilizzarlo sia da linea di comando, sia tramite interfaccia grafica.
ATTENZIONE !!! Nmap non può danneggiare l’hardware, ma può bloccare, in alcune condizioni, un sistema, fino a rendere necessario il riavvio. Per cui non deve essere usato contro sistemi che gestiscono servizi necessari.
Questo primo articolo darà una panoramica sull’uso di Nmap e presenterà le funzioni essenziali, rimandando ad un prossimo lavoro per gli approfondimenti.
Scaricare i files da http://www.insecure.org. Si possono scegliere i pacchetti .tar.bz2 da compilare oppure i binari precompilati e gestiti tramite RPM. Esiste anche la versione per Windows.
L’installazione da sorgenti è estremamente semplice. Se non si hanno esigenze particolari è sufficiente un semplice:
> cd <directory dove è il pacchetto compresso>
> tar -xjf nmap-3.70.tar.bz2
> cd nmap-3.70
> ./configure
> make
> su <password di root>
> make install
Sul sito insecure.org sono disponibili solo i binari per Windows e quelli per Linux in formato .rpm, che una volta scaricati si installeranno con:
> rpm -ivh nmap-3.70-1.i386.rpm nmap-frontend-3.70-1.i386.rpm
Questo è il modo più efficiente e veloce di usare Nmap, ed è solo apparentemente più difficile che usare l’interfaccia grafica. In realtà basterà avere a portata di mano l’elenco delle opzioni possibili. Si tenga inoltre presente che non tutte le opzioni sono utilizzabili tramite interfaccia grafica.
Bisogna premettere che per usare al pieno delle possibilità Nmap si deve essere loggati come root, poichè in alcuni casi il programma ha bisogno di usare direttamente alcuni moduli del kernel allo scopo, ad esempio, di modificare gli header dei frame IP o accedere a porte privilegiate.
Il prototipo di utilizzo è il seguente:
> nmap -[tipi di scan] -[opzioni] <host o segmenti di rete>
Ad esempio se io voglio verificare la mia rete dall’interno posso fare:
> nmap -sT -PI 10.0.0.0/24
che significa: effettua lo scanning della rete 10.0.0.0 con subnetmask 255.255.255.0 (quindi di tipo C con 256 host possibili 10.0.0.0/24), pingando gli IP con pacchetti icmp echo (-PI) e analizza le porte tramite connessioni complete (-sT), ovviamente bisogna inserire i dati identificativi della propria rete.
L’output prodotto potrebbe essere:
Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2004-08-10 21:29 CEST
Host 10.0.0.0 seems to be a subnet broadcast address (returned 2 extra pings). Skipping host.
qui Nmap ci dice che ha capito che deve analizzare il segmento di rete identificato tramite l’indirizzo di broadcast e la netmask, e che ha identificato, tramite i ping, 2 host attivi.
Interesting ports on 10.0.0.2:
(The 1658 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
80/tcp open http
255/tcp open unknown
qui Nmap ha analizzato il primo host 10.0.0.2 e ci dice che risultano aperte solo 2 porte, la 80 tipicamente dedicata hai servizi http e la 255 sconosciuta.
Interesting ports on marco (10.0.0.7):
(The 1652 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
443/tcp open https
3306/tcp open mysql
6000/tcp open X11
6346/tcp open gnutella
10000/tcp open snet-sensor-mgmt
qui analizza il secondo host con l’elenco delle porte trovate aperte.
ATTENZIONE !!! il servizio che vediamo abbinato alla porta e al protocollo (tcp/udp) non indica direttamente l’applicativo che lo sta usando, ma solo il servizio ufficialmente abbinato alla stessa dalle norme IANA.
Come si vede la forma descrittiva dell’analisi delle porte è la seguente:
PORT/Protocol STATE SERVICE
numero/ Tcp open = aperta nome servizio
Udp close = chiusa sconosciuto
filtered = filtrata da un firewall
Ovviamente è possibile avere molte più informazioni da Nmap, ad esempio se faccio lo stesso scanning usando il seguente comando:
> nmap -sT -sR -sV -I -O -PI -PT -vv 10.0.0.0/24
otterremo come output:
PORT STATE SERVICE OWNER VERSION
80/tcp open http WindWeb embedded webserver 2.0 (As on
NetComm DSL modems; Realm: Home Gateway; Calls itself Hasbani Web Server)
Qui Nmap ha fatto un eccellente lavoro. Ha individuato con precisione in ascolto sulla porta 10.0.0.2:80 un web server piuttosto raro, che in genere viene usato su dispositivi embedded, del tipo router, modem, ecc.
255/tcp open unknown
MAC Address: 00:30:0A:0B:5A:D2 (Aztech Systems)
Ottimo!!! qui indica addirittura modello e numero di MAC della scheda di rete.
Device type: PBX
Running: 3Com embedded
OS details: 3Com NBX PBX
Ci dice che si tratta di un apparecchio dedicato alle comunicazioni (PBX) con un sistema operativo 3com embedded:
TCP Sequence Prediction: Class=64K rule
Difficulty=1 (Trivial joke)
TCP ISN Seq. Numbers: 81E6F5BD 81E9E3BD 81EADDBD 81EBD7BD 81ECD1BD
81EFBFBD
IPID Sequence Generation: Incremental
Qua ci dice una cosa che potrebbe essere piuttosto grave, e cioè che il sistema in funzione ha un metodo di determinazione dei codici di identificazione delle connessioni TCP (IPID o ISN) altamente prevedibile, per cui sarebbe esposto ad attacchi di spoofing cieco.
Host marco (10.0.0.7) appears to be up … good.
Passa all’altro host attivo.
Initiating Connect() Scan against marco (10.0.0.7) at 00:30
Interesting ports on marco (10.0.0.7):
(The 1653 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE OWNER VERSION
22/tcp open ssh OpenSSH 3.5p1 (protocol 1.99)
80/tcp open http Apache httpd 2.0.47
111/tcp open rpcbind (rpcbind V2) 2 (rpc #100000)
443/tcp open http Apache httpd 2.0.47
3306/tcp open mysql MySQL 3.23.56-log
6000/tcp open X11 (access denied)
10000/tcp open http Webmin httpd
Anche qui ha individuato con esattezza gli applicativi che utilizzano le porte aperte, con tanto di numero di versione.
Device type: general purpose
Running: Linux 2.4.X|2.5.X
OS details: Linux 2.4.0 – 2.5.20
Individuazione del sistema in uso piuttosto generica, ma si spiega… infatti in realtà non credo che esistano due macchine su cui è stato installato linux che si possano dire eguali.
TCP Sequence Prediction: Class=random positive increments
Difficulty=3357505 (Good luck!)
Questa volta il sistema è molto più solido, ed ha un meccanismo di determinazione dei numeri identificativi delle connessioni TCP molto più sicuro.
Come abbiamo potuto vedere si tratta di una vera miniera di informazioni.
Comunque la vera forza dell’uso di Nmap da linea di comando è nell’uso in combinazione con la shell o o qualche script. Ad esempio si può filtrare l’output tramite una pipe e il comando grep:
> nmap -sT -sR -sV -I -O -PI -PT -vv 10.0.0.7 | grep http
ci consegnerà la lista delle porte su cui è attivo un servizio http.
Ancora meglio se vogliamo tenere sotto controllo un certo host nel tempo si può fare un script, ad esempio in Perl, che venga azionato tramite crontab, che usi Nmap per scansionare un certo obiettivo ad intervalli periodici e che addirittura modifichi i parametri a seconda delle risposte che riceve.
Comunque per chi vuole è disponibile una comoda interfaccia grafica, che analizzeremo nel prossimo articolo.
Quello che vedete sotto è il pannello che si presenta al momento del lancio dell’applicazione. È semplice, ma molto funzionale.
Dall’alto in basso troviamo:
Non è molto utile in quanto il 99% delle opzioni si settano in altro modo, comunque è composta da 3 menu:
File:
con all’interno 3 opzioni. OPEN LOG: che consente di aprire un file di log già presente. SAVE LOG: che consente di salvare in un file un log presente nella finestra sottostante. QUIT: per uscire dal programma.
View:
con all’interno 3 opzioni. Black & White: selezionandolo avremo i report scritti solo in bianco e nero. Coloured: i report avranno una colorazione in base agli elementi. Append Log: se si seleziona questa opzione e si fanno più scansioni i report successivi verranno “appesi” ai precedenti altrimenti li sovrascriveranno.
Help:
Qui non c’è nulla di utile.
Abbiamo 3 elementi, un form e due pulsanti.
Target(s):Un form in cui inserire l’indirizzo o gli indirizzi da esaminare. Possono essere inseriti sia come: nomi: www.shishii.com; IP singoli: 10.0.0.1; segmento di rete:: 10.0.0.0/24; liste:: 10.0.0.1,2,3,4,5,6 oppure 10.0.0,1,2,3.0; intervalli: 10.0.0.1-100; caratteri jolly: 10.0.0.* oppure 10.0.*.*;
Scan:: un pulsante per iniziare la scansione.
Exit:: un pulsante per chiudere il programma.
Qui c’è la parte più importante dei impostazioni, divisa in 5 Tabs. Tramite i vari menu e form vengono selezionati i TIPI DI SCAN e le OPZIONI. In questa sezione verranno solo presentate le funzioni generali dei vari pannelli, mentre la descrizione dettagliata è rinviata a più avanti.
menu a tendina che consente di scegliere la “politica di attacco” ai vari host individuati. Bisogna infatti dire che le possibilità sono molte e con notevole impatto sui risultati, sia nel senso di aumentare le possibilità di ottenere informazioni, che quelle di restare nascosti.
Tramite questo form è possibile decidere quale intervallo di porte saggiare. Si può spaziare da una sola a tutte, con la possibilità di stabilire delle liste.
In questa sezione si possono richiedere a Nmap di fornire ulteriori informazioni, alcune veramente preziose. Infatti molto spesso si può riuscire ad identificare il tipo di applicativo che usa una porta e la versione.
Questo è il pannello che si presenta selezionando il tab DISCOVER. Tramite questo pannello è possibile selezionare il tipo di sondaggio da fare per identificare gli host attivi, in pratica il tipo di “ping” che si preferisce. Questo set di opzioni è molto importante quando si vuole analizzare un segmento di rete, o comunque una lista consistente di host. Lo è molto meno quando si ha un indirizzo preciso. La scelta fondamentale è tra NON effettuare alcun ping, o effettuarlo con varie modalità.
Questo pannello consente di regolare l’atteggiamento di Nmap, nel senso di impegno della rete, e i time out. È fondamentale sia allo scopo di non farsi scoprire che di preservare la rete da malfunzionamenti. Se non si sa cosa si sta facendo è meglio lasciare i impostazioni di default.
In questo tab si possono indicare gli indirizzi di files per l’input in cui stoccare i nomi o gli IP degli host da verificare, e gli indirizzi di files di output in cui conservare i risultati degli scan in vari formati.
In questo tab si possono impostare varie opzioni relative alla risoluzione inversa dei nomi (da IP a nome), alla quantità di informazioni fornite in output, all’identificazione della fonte dello scan, e altre più complesse.
In questo grosso pannello centrale compare l’output e messaggi vari che possono essere salvati o tramite il menu “file”, o tramite copia – incolla.
In questo utile quadro monolinea compaiono i flag realtivi alle opzioni selezionate. Non si può scrivere nello stesso, ma è utile per imparare quali sono i vari flag e a che opzioni corrispondono.
Veniamo ora all’illustrazione dei vari modi d’uso di Nmap tramite i suoi flag. Come detto gli stessi possono essere usati tramite la linea di comando o attivati tramite i vari form dell’interfaccia grafica.
-sT
CONNECT SCAN. Tramite questo flag, per determinare lo stato delle porte di un host verrà utilizzata una connessione completa TCP. Se la stessa avviene vorrà dire che la porta è aperta. Ha lo svantaggio che verrà immediatamente individuato da qualunque software di analisi dei log o Introduction Detection System.
-sS
SYN SCAN. In questa maniera lo scan avverrà tramite una richiesta di connessione, se la porta da controllare è aperta risponderà e Nmap chiuderà la connessione, altrimenti se la porta è chiusa ad Nmap giungerà un pacchetto che chiuderà la connessione immediatamente. In altre parole, pur ricevendo tutte le informazioni che servono, la connessione non verrà mai completata per cui molto raramente comparirà nei file di log, ma verrà registrata dai migliori I.D.S.. Questo tipo di scan è utilizzabile solo da root.
-sF -sX -sN
FIN SCAN, XMAS SCAN, NULL SCAN. Questi tipi di scan sono particolarmente difficili da rilevare da parte dei vari sistemi di logging o I.D.S., inoltre penetrano facilmente i firewall, per cui sono molto efficaci, ma possono portare a risultati dubbi nei confronti di alcuni sistemi operativi che non rispettano gli standard RFC.
-sP
PING SWEEP. Questo non è un vero e proprio scan, ma serve solo per scoprire quali host sono attivi su un segmento di rete. Quindi usarlo solo se non si vuole effettuare uno scan delle porte.
-sU
UDP SCAN. Questo tipo di analisi è molto raffinato e serve ad individuare delle porte sulle quali opera un servizio UDP che ci interessa. Ricordiamo che UDP è un protocollo che non stabilisce una connessione (ConnectionLess) , per cui non risponde alle richieste in maniera automatica, ma solo se la richiesta è significativa per l’applicazione che è in ascolto. Con questo scan le porte aperte non risponderanno e le chiuse manderanno un pacchetto “icmp port unreachable”. Lo scan UDP non è utile solo all’attaccante, ma soprattutto al difensore (bisogna ricordarsi di effettuarlo sempre dall’esterno), in quanto alcuni trojan, tipo “back orifice”, si mettono in ascolto su una porta arbitraria UDP, e per scoprirlo potrebbero non essere sufficienti strumenti quali “netstat”, essendo possibile che siano stati alterati dall’attaccante che ha installato il trojan. Si tenga però presente che questo scan è molto lento.
-sA
ACK SCAN: Anche questo è un tipo di scan molto raffinato e utile. Consente di stabilire se il firewall interposto è di tipo “statefull” o è un semplice filtro di pacchetti TCP con il flag SYN attivo. Con questo tipo di scan è possibile analizzare reti protette da semplici filtri, cosa che non è possibile con gli scan di tipo -sT e -sS.
-sW
WINDOW SCAN: Questo tipo di scan è simile al precedente, e oltre a ciò è in alcuni casi in grado di rilevare delle porte aperte anche se filtrate da un firewall statefull, a causa di un’anomalia dello stack TCP presente su parecchi sistemi operativi.
-sR
RPC SCAN: Funziona in combinazione con gli altri tipi di scan e opera sulle porte trovate aperte cercando di stabilire se vi è in ascolto un servizio RPC (Remote Control Protocol) e la versione. Siccome usa un flooding (invio massiccio e continuo di pacchetti) può creare problemi alla rete e all’host bersaglio.
-sV
VERSION SCAN: Tramite questo scan è possibile determinare il nome e la versione degli applicativi che sono in ascolto su una porta. Viene usato un database di “impronte digitali”.
I seguenti flag costituiscono delle opzioni che possono essere molto importanti nell’uso di Nmap.
-P0
Tramite questo flag diciamo a Nmap di non pingare l’host bersaglio, ciò è utile quando siamo sicuri che è in linea poichè ci fa risparmiare tempo.
-PT
Qui possiamo richiedere che il bersaglio venga pingato, invece che con pacchetti ICMP echo-request, tramite pacchetti TCP con flag ACK attivo. Ciò consente di superare i firewall che respingono i primi. Se non si indica alcuna porta il ping avviene sulla 80 (http) che in genere è quella più frequentemente aperta. Sintassi: > nmap -PT<numero porta – opzionale>
-O
Tramite questa opzione è possibile cercare di identificare il sistema operativo dell’host bersaglio. È da usare con l’opzione -v (verbose). Sintassi: > nmap -sS -O -v <host bersaglio>
-f
Se si setta questa opzione i scan di tipo SYN -sS, FIN -sF, XMAS -sX, o NULL -sN vengono effettuati con frammenti di pacchetti, cioè con header non completi, questo molte volte confonde e rende inefficaci firewall e IDS, ma… ATTENZIONE… in alcuni casi può provocare il crash dell’applicazione in ascolto o del sistema.
-v
Si tratta del “verbose mode”, che consente di avere più informazioni del normale.
-vv
Come sopra, ma con maggiore quantità di informazioni.
-d e -dd
Modalità di debug, da usare solo se si hanno problemi e si sta cercando di risolverli.
-oN
Consente di indicare un file in cui salvare l’output in forma “human readable”, cioè così come lo vedremmo sulla console. Sintassi: > nmap -sS -v -oN </path/file.txt> <host bersaglio>
-oX
In questo caso l’output viene salvato nel file indicato in formato XML, ciò ne consente una grandissima esportabilità e lavorabilità, anche allo scopo di inserire i dati in un eventuale database. Sintassi: > nmap -sS -v -oX </path/file.xml> <host bersaglio>
-oG
Con questa opzione i report vengono salvati in formato cosidetto “grepable”, cioè facilmente utilizzabile dal programma grep, che, in ambiente UNIX, serve per trovare i file che contengono certe stringhe. In pratica non fa altro che mettere tutto l’output su una sola riga. Sintassi: > nmap -sS -v -oG </path/file> <host bersaglio>
-oA
Con questa opzione Nmap produce tre files di output aventi estensione rispettivamente .nmap, .gnmap, .xml che corrispondono a tre file ottenibili effettuando tre volte la stessa scansione con le opzioni -oN -oX -oG. Sintassi: > nmap -sS -v -oA </path/file> <host bersaglio>
–resume
Questa opzione consente di proseguire uno scan iniziato ed interrotto, ma è utilizzabile solo se si è stava effettuando lo scan con l’opzione -oN o -oG. Sintassi: > nmap -sS -v –resume </path/file> <host bersaglio>
–append_output
In questo modo non sovrascriveremo un file precedente, ma aggiungeremo i report alla fine. Sintassi: > nmap -sS -v –append_output <host>
-iL
Questo consente di utilizzare un file che contiene una lista di host da controllare, i vari host devono essere separati o con uno spazio, una tabulazione o un ritorno a capo. Sintassi: > nmap -sS -v -iL </path/file_di_Input> <host bersaglio>
-p
Tramite questa opzione si può indicare un intervallo di porte da analizzare. l’elenco deve essere separato da virgole.
-T
Tramite questa opzione si settano una serie di parametri temporali che influscono moltissimo sulla velocità di esecuzione, l’occupazione di banda di rete e la segretezza dello scan. Nmap ha la capacità di autoregolarsi in base alle caratteristiche della rete e alle risposte degli host, ma a volte si hanno esigenze particolari su cui si può intervenire come segue.
-T0 o -T Paranoid
È la modalità più prudente, che ha ottime possibilità di sfuggire agli IDS e simili. Effettua lo scan in maniera seriale e non parallela, cioè analizza gli host e le porte uno dopo l’altro e non contemporaneamente. Inoltre interpone almeno 5 minuti tra un pacchetto ed un altro.
-T1 o -T Sneaky
Come sopra tranne che interpone 15 secondi tra un pacchetto ed un altro.
-T2 o -T Polite
Come sopra tranne che interpone 0,4 secondi tra un pacchetto ed un altro.
-T3 o -T Normal
Come dice il nome è la modalità di default. Effettua lo scan parallelo e alla velocità resa possibile dalle caratteristiche della rete, rallentando se avverte che si possono creare sovraccarichi o perdite di dati.
-T4 o -T Aggressive
Questa opzione spinge lo scan ad alta velocità, per cui è raccomandabile usarla solo se si dispone di una connessione veloce.
-T5 o -T Insane
Spinge tutto alla massima velocità. È necessaria una connessione veloce. C’è il rischio di mandare in crash l’host bersaglio. È possibile una perdita di informazioni a causa dei timeout molto brevi.
Se vuoi aggiornamenti su Nmap: guida all'installazione e all'uso inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
Una semplice guida per poter impostare l’accesso a Windows 8 tramite una password visiva: basta scegliere un’immagine, impostare tre gesture […]
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Come creare applicazioni per il Web con PHP e MySQL per il DBMS.
Tutte le principali tecnologie per diventare uno sviluppatore mobile per iOS.
I fondamentali per lo sviluppo di applicazioni multi piattaforma con Java.
Diventare degli esperti in tema di sicurezza delle applicazioni Java.
Usare Raspberry Pi e Arduino per avvicinarsi al mondo dei Maker e dell’IoT.
Le principali guide di HTML.it per diventare un esperto dei database NoSQL.
Ecco come i professionisti creano applicazioni per il Cloud con PHP.
Lo sviluppo professionale di applicazioni in PHP alla portata di tutti.
Come sviluppare applicazioni Web dinamiche con PHP e JavaScript.
Fare gli e-commerce developer con Magento, Prestashop e WooCommerce.
Realizzare applicazioni per il Web utilizzando i framework PHP.
Creare applicazioni PHP e gestire l’ambiente di sviluppo come un pro.
Percorso base per avvicinarsi al web design con un occhio al mobile.
Realizzare siti Web e Web application con WordPress a livello professionale.
Roberto Cavallini ci indica gli strumenti e le modalità per realizzare e pubblicare le nostre applicazioni mobile per Windows Phone 7
10 applicazioni gratuite che permettono di fare con Twitter quello che Twitter non sa fare. Dall’invio dei file alla gestione di più account
Applichiamo la programmazione a oggetti del framework Prototype alla realizzazione di tooltip
Jelastic Cloud è un servizio PaaS (Platform as a Service) offerto da Aruba, e destinato a tutte le aziende e gli sviluppatori interessati al deploy di applicazioni complesse direttamente su un’infrastruttura potente e rodata in Cloud. In questa guida scopriremo le tecnologie supportate (WordPress, Magento, Docker, Kubernetes, PHP, Java, Node.js) e come sfruttarle per un deploy di applicazioni e CMS.