Nmap(port scanning and finger printing tool) è un software Network mapper distribuito con licenza GNU GPL da Insecure.org,crato con l'idea di essere un tool per semplici port scanning. Successivamente è diventato una vera suite di componenti indispensabili per amministratori di sistema,ma è usato anche dai cracker e dagli script kiddie. Prima di tutto è necessario sapere due concetti essenziali: l'auditing informatico e il penetration testing. L'auditing informatico è l'operazione per il quale una persona, controlla un sistema assicurandosi il suo corretto funzionamento, ovvero non deve essere esposto a nessun rischio conosciuto. Grazie all'auditing, veniamo a conoscenza su cosa potrebbe provocare dei danni al nostro sistema, ma aiuta anche a migliorare l'antamento delle prestazini evitando ad esempio alcuni DoS. Il penetration testing , è un metodo per testare la sicurezza informatica di un sistema in modo tale da simulare un attacco. Qesto processo non fa altro che vedere se il sistema è vulnerabile a tutte le techiche di attacco e falle conosciute(incluso la configurazione dei servizi,ovvero lasciare il file di configurazione di default di alcuni programmi).Si distiunguno due tipi di penetration testing: BlackBOX e WhiteBox testing. Con il BlackBOX ,si assume che non si ha nessuna informazione del sistema o infrastuttura da controllare,invece con il WhiteBox si ha la competa conoscenza del sistema che si deve sottoporre al test. In questo post analizzeremo il funzionamento di nmap in versione Target specification, specificando uno specifico target per il nostro finto attacco. Il caso piu` semplice consiste nello specificare un indirizzo IP oppure un nome di host obbiettivo(Es: nmap 192.168.1.1 ) per iniziare cosi la scansione di 1660 porte TPC. A volte puo` essere utile scansionare un'intera rete di host adiacenti, infatti Nmap supporta l'indirizzamento CIDR. Se avete difficoltà sulle nozioni di reti, consiglio lo studio obbligatorio di questi due libri: Internet e reti di calcolatori-seconda edizione e Reti di calcolatori e internet un approccio top-down-quarta edizione. Molto importante è l'argomento che tratta la programmazione dei socket; consiglio di leggere il Gpil che è possibile scaricare da http://gapil.truelite.it/download.html. La base di nmap è sempre stata il port scanning infatti tutto il programma è basato su un avanzato port scanning. Le porte per Nmap possono essere in 6 stati:
1) Open-port: un host riesce ad accettare connessioni su questa porta.
2) Close-port: Chiusa ma accessibile, ovvero nessun programma è in ascolto su quella porta
3) filtered-port: Un filtro impedisce a Nmap di capire se una porta è chiusa o aparte. Molto probabile la porta è soggetta ad un firewall
4)Unfiltered-port: Porta accessibile, ma Nmap non è stato in grado di determinare il suo stato(chiusa o aperte). Possiamo provare allora uno scan SYN o FIN per determinare il suo stato.
5) Open o filtered-port: Nmap non capisce se una porta è aperta o filtrata.
6) Closed o filtered-port: Nmap non capisce se una porta è chiusa o filtrata.
Nmap si basa su risposte del Server, questo vuol dire che risposte mirate possono portare su una cattiva strada il nostro povero Nmap. Ora passiamo ad analizzare le opzioni(non si possono combinare fra di loro apparte lo scanner UDP) piu importanti per i diversi metodi di scan.
-sS (TCP SYN scan): Opzine di default usata la maggior parte delle volte, veloce e affidabile rispetto l'opzione -sT in quando non completa la connessione TCP. Praticamente manda un pacchetto SYN di apertura della connessione senza però mai completarla. Se esageriamo iniettando con nemesis(tool) molti pacchetti SYN è possibile che si verifica un SYN flood ossia un attacco di tipo denial of servic. Beh Possiamo rivolvere configurando i SYN cookies. Praticamente si usa il sequence number del pacchetto SYN-ACK per mandare un cookie al client e quindi riconoscere se quel client ha già mandato dei SYN in quella sessione, senza dover memorizzare ogni volta la connessione attiva sul "Baffer" del server. Il buffer non è infinito.
-St (TCP connect() scan): Se non è possibile un SYN scan in quando non si hanno i priviligi per lavorare sui pacchetti raw a basso livello, utilizziamo la system call connect() che è accessibile a tutti i programmi.PS: Il prototipo della funzione è sul Gpil
-sU ( UDP Scan):Vengo inviati pacchetti UPD vuoti. Se viene ritornato un errore ICMP i port unreachable la porta è chiusa. Altri errori ICMP di tipo unreachable definiscono la porta come filtrata. Se il servizio risponde con un pacchetto UDP la porta è aperta. Se non viene ricevuta alcuna riposta, la porta è aparte o filtrata. Nel link di seguito troverete la tabella ICMP message error e gli header dei protocoli:
http://www.networkintrusion.co.uk/index.php/miscellaneous/rawpackets.html
-sN/sF/sX: TCP Null, FIN, e Xmas scans: Nmap mette a disposizine questi tre tipi di scan. In particolare con -sX settiamo i bit FIN,PSH,URG. Xmas scan perchè accende i bit come un albero di natale.
-sA (TCP ACK scan): Non è uno scan atto a mirare una porta se è aperta o chiusa, ma serve per mappare le regole di firewalling , se le porte sono stateful oppure filtered. Praticamente il firewall si basa su delle regole,le quali gestiscono le applicazioni che possono avere accesso ad Internet. Il più semplice è il packet filter, che si limita a valutare gli header di ciascun pacchetto, decidendo quali far passare e quali no sulla base delle regole configurate.
--scanflags (Customize TCP scan flags): Per avere il pieno potere dello su Nmap con questa opzione possiamo decidere quali flag attivare. Si possono usare valori numerici, oppure nomi simbolici come ACKFIN ecc.
-sO (IP protocol scan): Permette di verificare queli protocolli sono disponibili su una macchina e i servizi del sistema operativo del target. Nmap quando effettua uno scan, mostra le porte e gli stati di essi e nello stesso tempo, associa le porte a probabili servizi sulla macchina. Questi vengono estratti da un database di circa 25000 e servono come indicazioni. Nmap fornisce un'opizione molto importante, il version Detection; questo servizio interroga le porte cercando la versione del programma che è in listen(ascolto) sulla porta. Le opzioni tipiche sono:
-sV: Attiva il version Detection
--allports: version Detection su tutte le porte
-A -O Os Detection e version Detection
Ormai qualsiasi rete da quelle aziendali a quella casalinga dispone di un IDS(nel caso di reti aziendali) o di un Firewall(privati o aziende). Tutti gli intrusin Detection sono prevenuti alla scansioni di Nmap. Pero con un po' di impegno a volte è possibile scavalcare IDS e FW utilizzando Nmap. Ad esempio possiamo utilizzare le seguenti opzioni:
-f: frammenta i pacchetti e rende piu difficile il compito di un IDS
-D decoy1, decoy2: Usa vari ip come esca, con lo scopo di non far capire da chi parte il vero port scanning
-S IP: indichamo l'indirizzo ip che vogliamo falsificare(spoofing). Lo spoofing è un tipo di attacco informatico dove viene impiegata in qualche maniera la falsificazione dell'identità della sorgente.
ICT-Security n.ro 11 del 07-03-03 di Andrea Monti:
"... La legge infatti non punisce l’esecuzione di un portscan, in
sè.
In altri termini, non esiste, nel codice penale, una norma che dica 'è vietato fare portscan'.
Ciò non toglie che un’azione del genere diventerebbe sanzionabile penalmente se fosse diretta a compiere un reato (per esempio, un accesso abusivo, punito dall’art.615 ter del codice penale).
In questo caso, anche se l’accesso abusivo non dovesse verificarsi per fatti indipendenti dalla volontà dell’agente, saremmo nell’ipotesi del delitto tentato.
Che punisce chi compie atti idonei e inequivocamente volti alla commissione di un reato. ..."
Nessun commento:
Posta un commento