sabato 30 ottobre 2010

Test Wireshark (analizzatore di rete)

Wireshark è un ottimo analizzatore di rete, l' indirizzo per il download è http://www.wireshark.org/download.html  il software è disponibile sia per Windows, MAC e ovviamente linux , la versione che ho testato è la 1.0.3 quella installata in linux backtrack4. Il programma è veramente completo, si possono analizzare reti cablate, reti locali,reti wifi, la grafica è molto curata e i comandi sono semplici ed intuitivi. Posso dirvi che se avete idea di come funziona una rete, quindi sapete cosa sono livelli OSI e protocolli, non avrete nessun problema ad utilizzare wireshark, anche nel caso fosse la prima volta che utilizzate un analizzatore di rete. La prima cosa da fare dopo aver lanciato il programma è scegliere l' interfaccia su cui raccogliere i pacchetti in transito, dal menu "Capture/Interface", vi verranno mostrate tutte le interfacce di rete disponibili sulla vostra macchina , inoltre è presente un dispositivo chiamato "any" che consente di catturare i dati da tutte le interfacce contemporaneamente.
Fatta questa semplice operazione comincerete a vedere i pacchetti intercettati, un campo importante su cui puntare la nostra attenzione è il campo "filter", compilandolo opportunamente potremo scegliere di visionare solo quello che piu' ci interessa, ad esempio scrivendo "icmp" vedremo solo i pacchetti trasmessi con questo protocollo, oppure scrivendo "tcp and ip.addr== xx.xx.xx.xx" saranno mostrati solo i pacchetti tcp che hanno come destinazione o origine l' indirizzo IP scritto.I filtri possono essere anche molto complessi, ma è compreso nel programma un editor ad-hoc per crearli con la giusta sintassi, quindi nessun problema.
Una volta catturati i pacchetti è possibile analizzarli in tutti i particolari, un'altra utile funzione di questo software è la possibilità di ricostruire automaticamente un' intera conversazione TCP o UDP,basta posizionarsi su uno dei pacchetti , poi premere il tasto destro del mouse e cliccare su "follow tct stream".In conclusione direi che è un programma veramente completo e semplice ve lo consiglio assolutamente, sul sito ufficiale è presente anche tutta la documentazione in lingua inglese.Nel video potete vedere wireshark all' opera, come interfaccia ho usato la mia scheda wifi in monitor mode.

venerdì 29 ottobre 2010

Networking - Attacchi Denial of Services

Un'altra forma di attacco alle reti è il DoS(Denial of Services), questo attacco non punta  a carpire informazioni ma ad impedire l' accesso ad un servizio o ad una risorsa.Tali attacchi sono vincolati ad un determinato programma o ad una determinata versione ed hanno colpito diversi fornitori a causa di "sviste"relative al networking, ovviamente i sistemi operativi moderni sono stati protetti verso molti di questi attacchi è comunque utile riflettere sul modo in cui queste tecniche possono essere applicate.
Un tipico esempio è il Ping of Dead(ping letale), esso attaccava una debolezza del protocollo ICMP ,secondo le specifiche i messaggi echo ICMP devono avere solo 216 o 65536 byte di dati nel pacchetto, diversi sistemi operativi vengono messi fuori uso se ricevono pacchetti con dimensioni superiori.Si tratta di una tecnica molto semplice e quasi tutti i sistemi moderni sono stati protetti contro tale minaccia. Simile al Ping of Dead è il Teardrop  che sfrutta una debolezza ,presente in diversi fornitori, nell'implementazione del riassemblaggio dei pacchetti frammentati.Questo attacco consiste nell' inviare pacchetti con offset sovrapposti che provoca il crash di sistemi in cui questa condizione anomala non è stata prevista. Alcuni attacchi DoS non puntano a provocare crash di sistema ma semplicemente a sovraccaricarlo in modo da impedire le risposte, questa tecnica è chiamata flooding, l' aggressore invia al sistema bersaglio molti pacchetti ping di grandi dimensioni cercando di esaurire l' ampiezza di banda della connessione.Si tratta di un attacco non molto astuto, in pratica è un braccio di ferro basato sull' ampiezza di banda, se un aggressore dispone di un'ampiezza di banda superiore può inviare più dati di quanto il sistema bersaglio possa processarne, impedendo in tal modo l'accesso al traffico legittimo.Una forma più astuta di implementare il flooding consiste nello sfruttare delle macchine host collegate in rete per moltiplicare l' invio di pacchetti verso il sistema bersaglio,per attuare tale tecnica le macchine host devono essere collegate in una rete che accetta indirizzi broadcast, quindi l'aggressore invia pacchetti ICMP camuffati di grandi dimensioni a tutti gli host, questi a loro volta risponderanno con messaggi echo ICMP verso l'IP del pacchetto camuffato,ovvero il sistema bersaglio.
Un ulteriore tipo di attacco flooding punta a esaurire gli stati nello stack TPC/IP, dato che TCP gestisce le connessioni deve essere in grado di risalire ad esse in qualsiasi momento, lo stack consente di fare questo ma il numero di connessioni che può tracciare NON è infinito.Quindi l'aggressore inonda il sistema bersaglio con pacchetti SYN con indirizzo di origine camuffato e inesistente, il sistema bersaglio risponderà inviando pacchetti SYN/ACK e attenderà la risposte ACK.Tutte queste connessioni semiaperte vengono inserite in una coda le cui dimensioni sono limitate, ad un certo punto lo stack sarà pieno e risulterà impossibile al sistema bersaglio ricevere pacchetti SYN reali.

giovedì 28 ottobre 2010

Networking - TCP/IP Hijacking (dirottamento TCP)

Lo hijacking o "dirottamento TCP/IP" è una tecnica che utilizzando pacchetti camuffati assume il controllo di una connessione tra un sistema "bersaglio" e un sistema "host".La connessione del sistema bersaglio viene terminata e l'aggressore è in grado di comunicare verso la macchina host simulando di essere il sistema bersaglio.Come ho già detto nei precedenti articoli sul networking,durante connessioni TCP ogni parte tiene aggiornati i numeri di sequenza dei pacchetti inviati e ricevuti, se un pacchetto ha numero di sequenza errato non viene trasferito al livello successivo dal sistema che lo riceve.In particolare il pacchetto viene ignorato se ha un numero di sequenza precedente,o viene conservato per un eventuale riassemblamento se il numero di sequenza è successivo.Per effettuare un dirottamento TCP il sistema aggressore deve trovarsi nella stessa rete del sistema bersaglio, mentre il sistema host può trovarsi ovunque, nella prima fase dell' attacco l'aggressore deve ascoltare il traffico per riuscire a identificare i numeri di sequenza dei sistemi bersaglio/host,una volta ottenuti invierà un pacchetto camuffato simulandol' IP del sistema bersaglio verso la macchina host utilizzando un numero di sequenza corretto.Quindi la macchina host incrementa il numero di sequenza e risponde all'IP del sistema bersaglio, ora però visto che il sistema bersaglio rileva un numero di sequenza errato ignora il pacchetto di risposta,a questo punto essendo i numeri di sequenza dei due sistemi desincronizzati, la comunicazione fra loro è di fatto interrotta, e l' aggressore ha forzato la macchina host a comunicare con lui simulando il sistema bersaglio.
  
Un esempio di questo tipo di attacco è l' invio di un pacchetto di reset RST camuffato,se la parte ricevente riterrà il pacchetto autentico resetterà la connessione.Per implementare l'attacco il linux ci si può servire di tcpdump,awk e nemesis,Tcpdump può essere utilizzato per sniffare le connessioni mediante l'applicazione di un filtro sui pacchetti con il flag ACK settato su "on".Nell'header TCP i flag sono nel seguente ordine: URG,ACK,PSH,RST,SYN,FIN , quindi se il flag ACK è settato su "on" il tredicesimo ottetto sarà 00010000 corrispondente a 16 in decimale.Per creare un filtro che lasci passare quando il flag ACK=on viene utilizzato l' operatore AND la sintassi corretta per eseguire tcpdump con tale filtro è la seguente:

tcpdump -S -n -e -1 "tctp[13] & 16 == 16"

Il flag "S" dice a tcpdump di stampare i numeri di sequenza assoluti, "n" impedisce che gli indirizzi vengano convertiti in nomi, il flag "e" serve per stampare l intestazione di livello data-link su ciascuna riga ,ed infine "-1" viene utilizzato per bufferizzare la riga in modo da poter essere utilizzata da awk. Awk è un tool che consente l' estrazione degli indirizzi di origine/destinazione delle porte e degli indirizzi MAC, oltre che dei numeri di sequenza e acknowledgment( il nuovo numero di sequenza previsto per un pacchetto di
risposta). Queste informazioni potranno essere poi utilizzate per creare un pacchetto camuffato con nemesis, che viene inviato e tutte le connessioni osservate con tcpdump saranno resettate.

mercoledì 27 ottobre 2010

Craccare facebook con Fbruteforcer

Fbruteforcer è uno script in python che potete trovare a questo indirizzo  ,in sostanza si tratta di un codice per reperire le password di account  facebook ,ottiene questo risultato provando quelle che gli forniamo con un file dizionario.Fbruteforcer è utilizzabile solo per craccare account facebook , quindi non è possibile scegliere i protocolli e configurare altri parametri come è possibile fare con hydra, diciamo che il suo punto di forza è l' estrema semplicità di utilizzo.Inoltre per mascherare i vari tentativi il suo autore è ricorso ad un piccolo trucchetto, simulare ad ogni tentativo un useragent differente, in questo modo ,per un pò, si può ingannare facebook, la seguente porzione di codice vi mostra tutti gli useragent simulati.

ouruseragent    = ['Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.10 sun4u; X11)',
048            'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2pre) Gecko/20100207 Ubuntu/9.04 (jaunty) Namoroka/3.6.2pre',
049            'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser;',
050            'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)',
051                'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)',
052                'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6)',
053                'Microsoft Internet Explorer/4.0b1 (Windows 95)',
054                'Opera/8.00 (Windows NT 5.1; U; en)',
055            'amaya/9.51 libwww/5.4.0',
056            'Mozilla/4.0 (compatible; MSIE 5.0; AOL 4.0; Windows 95; c_athome)',
057            'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
058            'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
059            'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; ZoomSpider.net bot; .NET CLR 1.1.4322)',
060            'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; QihooBot 1.0 qihoobot@qihoo.net)',
061            'Mozilla/4.0 (compatible; MSIE 5.0; Windows ME) Opera 5.11 [en]'
062            ]

Se intendete provarlo (vi esorto ad utilizzare lo script SOLO per testare la bontà della vostra password) dovete copiare lo script , incollarlo in un file di testo nel vostro computer  e salvarlo con il nome fbruteforcer.py.Dato che si tratta di uno script in python, per eseguirlo dovete aver installato python.Io l'ho testato in linux backtrack 4, che ha python nella sua dotazione software, ma ho dovuto installare anche il pacchetto "python-mechanize" ,il pacchetto deb lo potete trovare qui. Quando avete portato a temine le installazioni del caso tutto quello che dovete fare e lanciare lo script, supponiamo di avere il file nella directory root, con il seguente comando /root/fbruteforcer.py -u email@xxx.yy -w /root/dizionario.txt :
Lo script in esecuzione è molto...molto lento,circa un tentativo ogni 2 secondi,potete immaginare da soli quanto ci metterebbe per esaurire un dizionario di migliaia di password,inoltre facebook ha sicuramente messo una ulteriore protezione perchè dopo qualche test(in cui la giusta password viene segnalata)fbruteforcer smette magicamente di funzionare. Probabilmente si tratta dello stesso tipo di protezione utilizzato nelle caselle di posta gmail quando si cerca di attaccarle con hydra, la cosa buona è che testando il vostro account sarete "vaccinati" per questo tipo di attacco. In conclusione direi che con la costruzione di una "buona" password (almeno 10 caratteri, maiuscole e minuscole + simboli + numeri) siamo relativamente al sicuro dall' attacco di questo script, se invece utilizzate come password parole di senso compiuto reperibili in un dizionario...beh allora preoccupatevi:-)
P.S. Questo servizio , nel deep web, promette di recuperare i dati di un account facebook pagando.

lunedì 25 ottobre 2010

Networking - ARP cache poisoning

Nelle reti commutate i pacchetti sono inviati unicamente alla porta a cui sono destinati, in base agli indirizzi MAC.Questo richiede un hardware ad-hoc in grado di gestire tabelle dove sono associati MAC e determinate porte, il vantaggio in termini di sicurezza è ovvio, infatti dato che alle periferiche sono inviati solo i pacchetti che gli competono i dispositivi in modalità promiscua non sono in grado di eseguire lo sniffing.
Ad ogni modo esistono sistemi molto astuti sfruttati dagli hacker per leggere i pacchetti destinati ad altre periferiche, un lato debole delle comunicazioni di rete che può essere manipolato è l indirizzo di origine, visto che i protocolli non consentono in nessun modo di verificare se esso sia realmente l' indirizzo della macchina o un indirizzo camuffato.Questa tecnica è denominata spoofing ed è molto efficace visto che la maggior parte dei sistemi da per scontato che l' indirizzo di origine sia valido.Altri dettagli interessanti riguardano l' ARP, quando arriva una risposta ARP con IP già memorizzato nella cache, il sistema scrive le nuove informazioni (cancellando le precedenti) sugli indirizzi MAC, un'altra debolezza consiste nel fatto che i sistemi accettano una risposta ARP anche se non hanno inviato una richiesta ARP. Questi dettagli se vengono sfruttati possono consentire ad un hacker di sniffare pacchetti anche se rete commutata, con una tecnica chiamata ARP cache poisoning (avvelenamento cache ARP).L' attacco inizia quando l' aggressore manda risposte ARP
a determinate periferiche in modo che la loro cache sia sovrascritta con i suoi dati, ora supponiamo di avere due sistemi che stanno comunicando fra loro come in figura.
Per intercettare il traffico fra A e B l'aggressore deve avvelenare le cache di ARP di entrambi i sistemi, in questo modo induce A a pensare che l' indirizzo IP di B corrisponda al MAC del sistema aggressore, e induce B a credere che l'IP di A sia sempre il MAC dell'aggressore.Se ora il sistema aggressore smista i pacchetti alle rispettive destinazioni, tutto il traffico tra A e B continuerà a funzionare ,ovviamente visto che passerà per il sistema dell'aggressore sarà possibile sniffarlo senza problemi.Comunque affinchè il tutto funzioni  è necessaria una ulteriore accortezza. Dato che a causa dei valori di time out le macchine bersaglio inviano periodicamente richieste e risposte ARP reali, è necessario inviare risposte ARP camuffate a intervalli brevi e costanti.I pacchetti ARP camuffati possono essere iniettati tramite un programma a linea di comando chiamato nemesis, ovviamente in ambiente linux, se desiderate approfondire la conoscenza sull' utilizzo di questo tool potete trovarlo a questo indirizzo.

domenica 24 ottobre 2010

Networking - Ascolto traffico di rete (sniffing)

Sul livello data link è presente anche la distinzione tra rete commutata (switched) e non commutata, su una rete non commutata i pacchetti ethernet passano attraverso ogni dispositivo presente sulla rete, e ci si aspetta che ciascun dispositivo consideri solo i pacchetti a lui destinati. In realtà è semplice impostare un dispositivo in modalità promiscua in modo da poter esaminare tutti i pacchetti indipendentemente dall' indirizzo di destinazione.Ad esempio in linux si può ricorrere al vecchio tcpdump per effettuare lo sniffing di pacchetti su rete non commutata, è da notare che  lo sniffing può fornire ogni genere di informazione , questo ovviamente rappresenta un grave rischio per la sicurezza.Se siete collegati in una rete di questo  tipo potete provare a utilizzare tcpdump per vedere il tipo di informazioni che è possibile "rubare", prima di tutto dovete configurare la vostra scheda ethernet in modalità promiscua, da linea di comando digitate:

ifconfig eth0(nome scheda rete) promisc

dopo potete far partire tcpdump col comando:

tcpdump -1 -X 'ip host xx:xx:xx:xx(indirizzo ip da intercettare)'

Vi renderete subito conto che alcuni servizi (es. telnet,ftp,pop3) sono in chiaro, ed è un gioco da ragazzi procurarsi password e username soltanto restando ad ascoltare il traffico di rete.Esistono anche programmi specializzati nel cercare password su reti non commutate ad esempio dsniff, per il suo utilizzo non occorre sapere veramente nulla! Basta mettere la propria scheda ethernet in modalità promiscua e lanciarle il software con il comando:

dsniff -n

Il programma vi mostrerà tutte le coppie password/username che circolano nella rete, ovviamente quelle per i servizi in chiaro.Dal punto di vista della sicurezza questa situazione è da evitare per cui si devono utilizzare switch intelligenti , quindi utilizzare reti commutate.

sabato 23 ottobre 2010

Networking - Livello data link

Ethernet esiste su questo livello, ed assicura un sistema di indirizzamento standardizzato verso tutte le periferiche ethernet.Questi indirizzi sono noti come MAC(Media Acces Control)ogni indirizzo è assolutamente univoco costituito da 6 byte solitamente scritti in esadecimale nella forma xx:xx:xx:xx:xx:xx.Questi indirizzi sono anche noti col nome di indirizzi hardware perchè ogni dispositivo hardware ha un indirizzo univoco registrato nella memoria di un chip. Le intestazioni ethernet contengono un indirizzo di origine e uno di destinazione, che ovviamente sono utilizzati per instradare i pacchetti ethernet, inoltre è previsto un indirizzo speciale di broadcast ff:ff:ff:ff:ff:ff per inviare un determinato pacchetto a tutte le periferiche connesse. Solitamente non è previsto un MAC che cambia, mentre un indirizzo IP ci si aspetta che possa variare regolarmente, l'IP agisce a livello superiore quindi non si occupa di indirizzi hardware, occorre tuttavia un metodo per stabilire una relazione tra i due schemi di indirizzamento.Questo metodo è noto col nome di ARP(Address Resolution Protocol). Esistono quattro tipi di messaggi ARP, ma i due più importanti sono "richiesta ARP" e "risposta ARP",la richiesta è un messaggio inviato all' indirizzo di broadcast contenente l'IP del mittente e il suo indirizzo MAC, in pratica è come se si domandasse a tutti :"chi ha questo IP?, se qualcuno lo ha mi invii il suo MAC".Una risposta ARP è il messaggio inviato ad uno specifico indirizzo MAC, ed è come se rispondesse:"Questo è il mio indirizzo MAC , io ho questo indirizzo IP", nella maggior parte delle implementazioni le coppie MAC/IP sono memorizzate temporaneamente in una cache, quindi non sono necessari messaggi ARP per ogni singolo pacchetto.
Per chiarire meglio il concetto aiutatevi con lo schema in figura, se il primo sistema intende stabilire una connessione TCP all' indirizzo IP del secondo sistema, invierà prima una richiesta ARP broadcast, quindi il secondo sistema replicherà con una risposta ARP inviata a 00:00:00:aa:aa:aa che dice: "sono io 10.10.10.50 e il mio MAC è 00:00:00:bb:bb:bb.Infine il primo sistema registrerà in memoria la coppia di indirizzi IP/MAC.
Ora che abbiamo assimilato questi concetti base, nei prossimi articoli ci occuperemo dei vari attacchi che gli hacker sono in grado di mettere in atto.

venerdì 22 ottobre 2010

Nessus

Un piccolo intermezzo e poi riprenderemo lo studio del networking, voglio presentarvi un programma chiamato NESSUS. Nessus è un analizzatore di rete, probabilmente il migliore nel campo degli scanner per testare la vulnerabilità, sicuramente può reggere il confronto anche con prodotti commerciali venduti a peso d'oro.Ma cosa fa in sostanza nessus? esso sostanzialmente analizza da remoto se sono possibili diversi
tipi di attacchi noti a macchine connesse in rete.Personalmente ho testato la versione 4.0.2 , che ho installato sù backtrack 4 e sono rimasto veramente impressionato dalla semplicità di utilizzo e dalla qualità indiscussa del software, inoltre l'interfaccia grafica è piacevole e completa.Potete installare il programma sulla vostra distribuzione linux preferita ma sono supportati anche tutti i più noti sistemi operativi, al momento in cui ho testato il software la versione più recente è la 4.2.2 la pagina per il download è questa.
Il programma attinge ad un database interno , in cui sono raccolti tutti gli attacchi noti, e con degli script realizzati in linguaggio NASL(Nessus Attak Scripting Lenguage) è in grado di simulare attacchi reali e valutarne i risultati.Altre comode caratteristiche del software sono l'architettura client/server e sopratutto i plug-in , quindi è possibile scrivere i propri test personali utilizzando il NASL.Per utilizzare il programma bisogna innanzitutto far partire il server, ovviamente è possibile automatizzare l'avvio del server allo startup del vostro pc, ora basta avviare il client scegliere "localhost" ,clicccare "connect" ed attendere la connessione questo è quello che vedrete:
una volta connessi cliccando sul "+" in basso a sinistra si possono scegliere gli indirizzi di rete da analizzare, per questo test io ho analizzato la mia macchina quindi ho inserito "localhost" nel campo "host name" ed ho abilitato "single host" come mostrato in figura:
Bene, adesso possiamo scegliere la nostra "scan policy" ovvero scegliere tra tutti i possibili test quelli che ci interessano maggiormente, chiaramente possiamo sceglierli anche tutti, per fare questo basta cliccare sul "+" sotto la casella di testo "select scan policy" dare un nome alla nostra "scan policy" e selezionare quello che vi interessa, particolare attenzione va fatta nella sezione "plugin selection" dove sono presenti tutti i plug-in delle vulnerabilità note di cui ho parlato in precedenza:
Scelta la vostra "scan policy" premete "save", poi cliccate nella casella di destra sul nome che avete scelto e quindi premere "scan now", dopo qualche minuto compariranno i risultati.Nel tag Report potrete vedere le porte aperte con le relative vulnerabilità, le più gravi saranno scritte in rosso nella casella testo di sinistra.Selezionandone una comparirà nella casella testo di destra una dettagliata descrizione di quella vulnerabilità, un output tipico è quello mostrato in figura:
Come potete intuire il software è veramente potente , e le funzionalità vanno ben oltre a quelle che vi ho mostrato  in questo breve tutorial, se intendete approfondire l'argomento sul sito ufficiale potete trovare tutta la manualistica che volete.Ora vi mostro il filmato di parte del mio test.

giovedì 21 ottobre 2010

Networking - Livello di trasporto

I due principali protocolli a questo livello sono il TCP(Transport Control Protocol) e l' UDP(User Datagram Protocol), il primo è quello maggiormente utilizzato per i servizi su internet ed è quello che fornisce una connessione affidabile e bidirezionale fra due indirizzi IP.Per connessione bidirezionale si può benissimo pensare al funzionamento di una linea telefonica, una volta che è stato composto il numero viene realizzata una connessione tra le due parti che possono comunicare fra loro, mentre per connessione affidabile si intende che TCP garantisce che tutti i dati raggiungono la destinazione finale nella giusta sequenza.
Se i pacchetti dovessero arrivare in una sequenza errata, TCP farà in modo che vengano disposti nella sequenza corretta prima di inviarli al livello successivo,inoltre nel caso alcuni pacchetti vengano persi, la destinazione trattiene i pacchetti già ricevuti, mentre la sorgente ritrasmette i pacchetti mancanti.Tutte queste funzionalità sono rese possibili da alcuni flag e da particolari valori detti "numeri di sequenza".
I flag TCP sono:
ACK riconoscimento della connessione
URG dati importanti
PSH indica al destinatario che deve inoltrare i dati
RST conclude istantaneamente una connessione
SYN sincronizza i numeri di sequenza all' inizio di una connessione
FIN conclude in modo ortodosso la connessione

I flag ACK e SYN, sono adoperati per aprire connessioni con un handshaking a tre passaggi, se un client vuole aprire una connessione invia al server un pacchetto con il flag SYN settato su "on" e il flag ACK su "off",il server risponde con un pacchetto che ha entrambi i flag settati su "on",ed il client per completare la connessione invia un pacchetto con SYN settato "off" e ACK "on". Successivamente tutti i pacchetti della connessione avranno SYN="off" e ACK="on".I primi 2 pacchetti della connessione, quelli che hanno SYN settato su "on", sono utilizzati per sincronizzare i numeri di sequenza, questi  servono a TCP sia per ordinare i pacchetti, ma anche per stabilire se ne mancano alcuni e impedire che vengano mischiati a quelli di altre connessioni.Quando viene avviata una connessione sia client che server generano un numero di sequenza iniziale che viene comunicato all' altra parte nei due pacchetti iniziali, in seguito ad ogni invio  di un pacchetto il numero viene incrementato di uno.


Questo numero di sequenza viene incluso nell' header TCP, il TCP è quindi ideale per applicazioni in cui sono richieste affidabilità e bidirezionalità ovviamente queste funzionalità pagano un po' in termini di velocità.UDP include un numero di funzioni minore, e si comporta in modo molto simile al protocollo IP, infatti UDP si aspetta che sia l' applicazione ad assicurare affidabilità e creare connessioni, tuttavia in alcune applicazioni le connessioni non sono necessarie e UDP è molto meno dispendioso in termini di risorse che TCP.

mercoledì 20 ottobre 2010

Networking - Livello di rete

Il livello di rete, ed i suoi confinanti, cioè livello di trasporto e livello data link, hanno caratteristiche peculiari che possono essere sfruttate dagli hacker, perchè in essi sono presenti delle aree vulnerabili, quindi conviene approfondire la conoscenza sul loro funzionamento.
Cominciamo dal livello di rete,facendo un 'analogia il livello di rete è come un servizio postale, un metodo per indirizzare lettere dappertutto, il protocollo utilizzato è l' IP(Internet Protocol), ogni sistema internet ha un indirizzo IP costituito da una serie di quattro byte avente il formato xx:xx:xx:xx, in questo livello coesistono pacchetti IP e pacchetti ICMP, i primi utilizzati per inviare dati, gli altri per la messaggistica e la diagnostica,l' IP però non è  affidabile come il vostro ufficio postale, infatti non fornisce alcuna garanzia che un pacchetto raggiunga effettivamente la sua destinazione finale.Però se c'è stato qualche problema nella consegna o altro, il mittente riceve un messaggio ICMP per informarlo del problema stesso.Inoltre è importante sapere che sia IP che ICMP sono entrambi connectionless(senza connessione), questo livello si preoccupa solo che il pacchetto giunga a destinazione. Talvolta viene applicata una restrizione sulla dimensione massima dei pacchetti IP, in questo caso esso viene smembrato in frammenti più piccoli, su ciascun frammento vengono inserite le intestazioni IP e il frammento inviato, ciascun frammento ha un diverso valore di offset memorizzato nell' header, quando i frammenti giungono a destinazione l' offset viene utilizzato per riassemblare il pacchetto IP originale.Malgrado questi accorgimenti favoriscono la trasmissione dei pacchetti, ciò non influisce sul mantenimento delle connessioni ne garantisce che i pacchetti vengano effettivamente consegnati, questo è il compito del livello di trasporto di cui parlerò nel prossimo articolo.

martedì 19 ottobre 2010

Networking

Il networking riguarda essenzialmente gli standard ed i protocolli che consentono a due o più parti di comunicare in modo opportuno.Infatti i computer e le altre unità hardware della rete devono  "parlare"lo stesso linguaggio per poter comunicare efficacemente.Inoltre è una buona cosa avere un' idea di come avviene questa comunicazione, per cercare di prevenire eventuali problemi riguardanti la sicurezza, quindi inizierò questa serie di articoli facendo una breve panoramica sul modo in cui i computer comunicano fra di loro in rete. Le comunicazioni in rete sono regolate da un insieme standardizzato di protocolli,essi sono definiti dal modello di riferimento OSI(Open System Interconnection), questo modello contiene una serie di regole standard che consentono a qualsiasi sistema che le rispetti di comunicare con altri sistemi, indipendentemente dal tipo di hardware o dal sistema operativo. Questi livelli sono:

1)Livello fisico: Riguarda la connessione fisica fra 2 punti,Il suo ruolo principale è la trasmissione di bit grezzi(raw).
2)Livello data-link: Gestisce l'effettivo trasferimento di dati,questo livello gestisce anche la correzione di errori e il controllo del flusso di dati, inoltre prevede procedure per l 'attivazione e disattivazione di connessioni.
3)Livello di rete: Ha il compito di assicurare trasferimenti di informazioni tra livelli superiori e inferiori, esso consente l'indirizzamento e l 'instradamento.
4)Livello di trasporto: Provvede alla trasmissione dei dati in modo affidabile e consente ai livelli superiori di non tenere conto della problematica di assicurare un mezzo di comunicazione affidabile.
5)Livello di sessione: Ha il compito di stabilire e mantenere le connessioni fra le applicazioni di rete.
6)Livello di presentazione:Riguarda la presentazione dei dati alle applicazioni in una sintassi comprensibile.
7)Livello di applicazione: Riguarda la registrazione delle richieste delle applicazioni.


I dati comunicati tramite questi protocolli sono inviati sotto forma di pacchetti, partendo dal primo livello il pacchetto viene avvolto dal livello della presentazione, poi dal livello di sessione ecc, questo processo è chiamato incapsulamento.Ogni livello contiene un header e un body , l'header contiene le informazioni di quel particolare protocollo il body contiene l'intero pacchetto dei livelli precedenti, per darvi un'idea fisica di quello che avviene guardate la seguente figura:



Nei prossimi articoli, cercherò di illustrare nel dettaglio alcuni livelli e spiegherò come gli hacker cercano di attaccare i computer connessi in rete.

lunedì 18 ottobre 2010

La sicurezza delle reti wifi - WPA attacchi vari

Concludiamo questa panoramica sui possibili attacchi verso le reti wifi WPA, con una breve panoramica su altri tipi di attacco senza dizionario.Prima di tutto esiste il cosiddetto "declassamento" ovvero obbligare il gestore della rete a declassare la protezione a WEP oppure a lasciare la rete aperta priva di protezione, gli hacker ottengono questo risultato deautentificando in continuazione il client connesso alla stazione wireless(usando ad esempio aireplay-ng), in questo modo il gestore della rete dopo aver smanettato
un po'...tra i vari tentativi  proverà quasi certamente a declassare la protezione oppure a toglierla completamente, quindi un hacker collegandosi al router , e contando sul fatto che al 90% nessuno cambia mai la password di amministazione del router, potrà procurarsi facilmente la chiave WPA, gli indirizzi della pagina di amministrazione e la password di default cambiano a seconda del gestore e del modem, ma è un gioco da ragazzi procurarsele facendo una semplice ricerca su google.Un altro tipo di attacco è possibile verso alcuni tipi di router e alcuni gestori, ad esempio alcuni modelli fastweb e alice,questo attacco punta sull'algoritmo di generazione delle key standard, basta sapere il nome della rete e si ottiene la password bella e servita, ovviamente i nuovi firmware di questi router sono stati aggiornati per ovviare a questo inconveniente ma sono ancora moltissimi i router con questa grave vulnerabilità! Esistono addirittura delle utility online come a questo indirizzo.Recentemente è poi stata resa pubblica da un ricercatore di nome Erik Tews, una tecnica che attacca  il Temporal Key Integrity Protocol (TKIP) e consente di catturare tutte le informazioni che passano tra router e computer.La suite di programmi Aircrack-ng contiene già gli strumenti usati dal ricercatore per violare la protezione.Vi consiglio quindi di configurare il router su WPA2 che non è vulnerabile a questo tipo di attacco, ma ovviamente di tanto in tanto date un'occhiata alle nuove tecniche di hacking perchè quello che oggi sembra sicuro domani sicuramente non lo sarà piu'.

sabato 16 ottobre 2010

La sicurezza delle reti wifi - WPA attacco dizionario

Va detto che  questo tipo di attacco NON offre una garanzia di successo del 100% , il successo dipende essenzialmente dalla "forza" della password utilizzata, il principio di funzionamento è semplice, si cattura un "four-way handshake" tra la stazione wireless ed un client connesso, poi con un software si simulano offline delle autenticazioni, con diverse password memorizzate in un file di testo (il dizionario) e si cerca quella corretta.Ovviamente potete capire da voi che se la password è una parola comune l' attacco avrà successo, ma se la password è strutturata a dovere ad esempio "e13NtyrrFLo34é+"che difficilmente è presente in un dizionario, allora questo attacco non servirà a nulla. Per implementare l'attacco dizionario si possono utilizzare gli stessi software utilizzati per attaccare il wep,ovvero la suite aircrack-ng, la prima cosa da fare è catturare un handshake, quindi dopo aver individuato la rete target bisogna impostare airodump-ng in modo da preparalo a catturare questo tipo di pacchetti con il seguente comando:
  
airodump-ng --channel (inserire canale rete) --bssid (inserire MAC rete) -w (inserire nome file dove salvare i dati) wlan0(nome vostra scheda wifi)

La seconda fase consiste nel deautentificare il client connesso alla stazione wireless per costringerlo a ripetere
l'autenticazione, questo si ottiene con aireplay-ng ed il seguente comando:

aireplay-ng -0 5 -a (inserire MAC STA) -c (inserire MAC client connesso) wlan0(nome vostra scheda wifi)

potete verificare se avete catturato un handshake nell' output di airodump-ng guardando in alto a destra:
Adesso potete chiudere airodump-ng, perchè tutta la fase successiva del lavoro sarà eseguita offline, basta lanciare aircrack-ng con il seguente comando ed attendere i risultati:

aircrack-ng -w (nome file dizionario) -b (inserire MAC STA) file.cap(nome file dove airodump ha scritto i dati)

Tutto  molto semplice, ma per fortuna costruendo una buona password siamo relativamente al sicuro, anche se ci sono altri modi per attaccare il WPA che vi mostrerò nel prossimo articolo.

mercoledì 13 ottobre 2010

La sicurezza delle reti wifi - WPA

Vista la debolezza del protocollo WEP , il gruppo wi-fi alliance elaborò un nuovo protocollo il WPA(Wireless Protected Access), che implementa solo alcune delle funzioni presenti nello standard IEE 802-11, questo standard è interamente implementato nel protocollo WPA2. Ora cerchiamo di capire i miglioramenti del WPA rispetto al WEP,innanzitutto WPA usa un RC4 con chiave a 128 bit e IV a 48 bit,
è poi stato introdotto TKIP(Temporary Key Integrity Protocolol) che permette di cambiare le chiavi utilizzate dopo un certo numero di pacchetti. Inoltre è stato migliorato il CRC, infatti al suo posto è stato introdotto il MIC(Message Integrity Code) che include anche un contatore di frame per difendersi dai "replay attack".Infine data la cricitità del processo di autenticazione è stato introdotto il protocollo EAP(Extensible Autentication Protocol) che  supporta numerosi metodi come  password,certificati digitali e altri tipi di credenziali.Per quanto riguarda l'accesso il WPA supporta due metodi "Personal" ed "Enterprise", il più diffuso , perchè adatto a case e piccoli uffici è il "Personal" chiamato anche  "preshared key mode", con esso una password lunga da 8 a 63 caratteri(PSK) è condivisa con tutti i client. In ultima analisi conviene fare una panoramica sul processo di autenticazione, chiamato "four-way handshake", in esso l'Access-point deve autenticarsi e la chiave utilizzata per criptare i messaggi deve essere ancora calcolata.All' inzio
viene stabilita tra la stazione wireless(STA) e l access point(AP) una chiave PMK(Primary Master Key) ,in seguito STA e AP si  scambiano una sequenza di 4 messaggi.Per prima cosa EAP trasmette all' AP una chiave temporanea PTK(Pairwise Transient Key) che è generata concatenando PMK con altri parametri( tra cui MAC di STA e MAC di AP), il tutto inviato ad una funzione crittografica di hash. La PTK è suddivisa in più chiavi, una utilizzata per firmare i messaggi "four-way handshake" una per criptare i dati fra STA
 e AP,ed una per cifrare la"group key" che consente la trasmissione di pacchetti diretti a tutte le stazioni collegate (multicast). Nel corso della"four-way handshake" STA e AP negoziano anche il tipo di cifratura per la connessione dati.Se volete approfondire l'argomento vi consiglio di leggere direttamente le specifiche IEE 802-11.Ora che abbiamo un'idea di cosa sia il WPA, nel prossimo articolo vi mostrerò come gli hacker cercano di attaccarlo.

lunedì 11 ottobre 2010

La sicurezza delle reti wifi - aireplay-ng/aircrack-ng

Vi ho mostrato come è possibile monitorare le reti wifi e raccogliere gli IV in un file, ora vi mostrerò come utilizzare aireplay-ng per accellerare di molto il traffico di rete. Con aireplay-ng infatti la raccolta degli IV necessari a craccare la chiave wep avviene in pochi minuti.Però prima è necessario fare un po di chiarezza, senza l'utilizzo di aireplay tutta la raccolta di IV avviene in maniera "silenziosa", ovvero il proprietario della rete wifi non si puo accorgere che qualcuno sta cercando di craccare la sua rete, infatti la scheda wifi lavora in "monitor mode" e non è associata all'access point.Invece con l'utilizzo di aireplay-ng, si deve associare la scheda all' AP, senza però completare il processo di verifica della chiave wep, ad ogni modo questo tentativo lascia tracce ed è rilevabile con un monitoraggio della rete.Aireplay-ng offre molte opzioni e non solo quella di rendere possibile una finta autenticazione, se volete approfondire l'argomento guardate questo sito.
Aireplay-ng è un programma nato a linea di comando, anche se oggi esistono delle interfacce grafiche che però non offrono la stessa flessibilità nella scelta delle opzioni, vi sono molti parametri configurabili per associarci ad una rete,in quanto non tutte le opzioni funzionano con tutti gli access point, una stringa che funziona con molti AP è la seguente:

aireplay-ng -1 0 -e (nomerete) -a (mac rete) -h (mac della propria scheda wifi) mon0(nome scheda wifi)

oppure quest'altra:

aireplay-ng -1 6000 -q 10 -e (nomerete) -a (mac rete) -h (mac della propria scheda wifi) mon0(nome scheda wifi)

se tutto è andato bene uno smile vi darà conferma dell' avvenuta associazione:-)
Una volta associati, sono possibili molti tipi di attacco per ottenere IV, uno dei piu noti e dei piu semplici, è l'attacco ARP-request che funziona  molto spesso.Aireplay resta in ascolto di un pacchetto ARP e lo ritrasmette indietro all'access point. Questo fa sì che l'access point ritrasmette il pacchetto ARP con un nuovo IV. Il software ritrasmette lo stesso pacchetto ARP continuamente. Quindi, ogni pacchetto ARP ripetuto dall'access point ha un nuovo IV.Quello che dovremo fare sarà quindi lanciare una nuova sessione ai aireplay-ng con la seguente stringa:

aireplay-ng -2 -p 0841 -c FF:FF:FF:FF:FF:FF -b (nome rete) -h (mac propria scheda wifi) mon0(nome scheda wifi)

Una volta catturato un pacchetto ARP, e lanciato l'attacco potete controllare la sessione di airodump-ng vedrete che si raccolgono centinaia di IV al secondo. Ed ora? bene quando airodump-ng avrà scritto circa 50000 IV, non resta che lanciare aircrack-ng e attendere con pazienza :

aircrack-ng -b (mac rete) *.ivs

Ovviamente voglio ricordare che entrare in una rete altrui , senza consenso, è un reato. Tutto quello che vi ho detto utilizzatelo solo per testare la sicurezza della vostra rete, ma credo che vi siate resi conto da soli che cercare di ottenere sicurezza con questo tipo di protezione è veramente difficile, l'unica cosa saggia da fare è passare al WPA(o meglio al WPA2) di cui parlerò nei prossimi articoli.

venerdì 8 ottobre 2010

La sicurezza delle reti wifi - airodump-ng

Ora che sappiamo come funziona il WEP, abbiamo un idea di cosa fanno gli hacker per entrare in una rete protetta con chiavi di questo tipo. Ci sono vari modi ma l'idea di base è quella di catturare IV, proviamo ad utilizzare aircrack una suite di programmi che funziona in LINUX, di cui utilizzeremo essenzialmente airodump,aireplay e aircrack.Va detto che per riuscire nell' impresa è necessario che la scheda wifi possa lavorare in "monitor mode", inoltre per rendere veloce il processo è altresi necessario che supporti anche il "packet injection", in questo sito troverete un elenco di schede compatibili.Una volta accertata la compatibilità della scheda wifi ,la prima cosa da fare è metterla in monitor mode usando il programma airmon-ng da linea di comando nel modo seguente:

airmon-ng start wlan0 (il parametro wlan0 naturalmente varia da scheda a scheda)

Fatta questa semplice operazione, se tutto ha funzionato a dovere otterrete una schermata simile a questa:

Nel mio caso alla scheda in monitor mode è stato dato il nome mon0.
Ora per cercare la rete da testare bisogna lanciare il programma airodump sempre da linea di comando con la sintassi seguente:

airodump-ng mon0



Qui è possibile avere delle informazioni sulle reti captate dalla scheda wifi.Una volta individuato l'obiettivo, che ovviamente come tipo di protezione deve essere WEP, si deve prendere nota di una serie di parametri ossia: MAC ADDRESS, CANALE DI TRASMISSIONE e NOME RETE, fatto cio questa sessione di airodump-ng puo essere chiusa.Ed ora ha inizio la fase di attacco vero e proprio,la prima cosa da fare è lanciare airodump-ng in modo che memorizzi in un file gli IV della rete target, da linea di comando basta digitare:

airodump-ng --channel (scivere canale di trasmissione) --bssid (scrivere MAC rete target) --ivs -w (scrivere nome file dove memorizzare gli IV) mon0(nome della vostra interfaccia wifi).

Airodump memorizzerà tutti gli IV della rete target in un file , ovviamente se il traffico di rete sulla rete in esame è scarso,ci vorrà molto tempo per raccogliere gli IV necessari a tentare di craccare la rete, per velocizzare il tutto si ricorre ad un altro programma compreso nella suite aircrack ovvero si dovrà utilizzare aireplay-ng.

martedì 5 ottobre 2010

La sicurezza delle reti wifi - WEP

Con il wep la cifratura avviene pacchetto per pacchetto e ogni pacchetto è un messaggio in chiaro da inviare,per prima cosa viene calcolato un checksum del messaggio che consentirà di verificarne l integrità, questo checksum viene calcolato con una funzione chiamata CRC32,il risultato viene aggiunto alla fine del messaggio in chiaro.Ora la cifratura del pacchetto risultante avviene con un sistema a  flusso (RC4),la chiave di codifica è costituita da 2 parti un vettore di inizializzazione a 24 bit chiamato IV,e la chiave vera e propria di 40 o 104 bit,tutto ciò elaborato con l'algoritmo RC4 dara'origine al "seme"o keystream ,infine applicando al pacchetto in chiaro la funzione XOR con il keystream si ottiene il messaggio criptato,il tutto con l'aggiunta dell'IV in chiaro in testa al pacchetto criptato viene inviato con onde radio. Per la chiave nulla da dire ,essa viene scelta dall'utente, per il vettore di inizializzazione solitamente vengono generati dei bit pseudo casuali per ogni pacchetto.Uno dei modi per attaccare il wep consiste nell' riutilizzo del keystream,infatti  se a 2 testi in chiaro viene applicata la funzione xor con lo stesso keystream ,applicando la funzione xor fra i 2 testi codificati si ottengono i 2 testi in chiaro incrociati tra loro con la funzione xor, e se uno dei 2 testi è noto si recupera l'altro senza problemi.Ora visto che i testi sono pacchetti internet con una struttura nota e abbastanza prevedibile è possibile sfruttare varie tecniche per ripristinare entrambi i testi.Altro sistema utilizzato con molto successo è l'attacco FMS(Fluhrer,Martin,Shamir) con esso si sfruttano le debolezze dell' algoritmo RC4 e degli IV,infatti esistono dei valori "deboli" di IV con i quali è possibile ottenere informazioni sul primo byte del keystream, e dato che la stessa chiave è utilizzata con diversi IV,quando sarà raccolto un numero sufficiente di pacchetti con IV debole e il primo byte del keystream è noto,è possibile trovare la chiave.Il primo byte di un pacchetto 802.11b è l'intestazione SNAP
che spesso è 0xAA, quindi il primo byte del keystream puo essere trovato agevolmente.Ulteriore possibile attacco è il PTW, con esso si riduce notevolmente il numero di IV necessari per ricostruire la chiave wep, infatti sono necessari soltanto 40000 pacchetti per avere il 50% di possibilità di ricostruire una chiave valida, se volete approfondire l'argomento questo è il link http://eprint.iacr.org/2007/120.pdf, naturalmente se non masticate di matematica e programmazione lasciate perdere :-). Ok,ora che sappiamo come funziona il WEP e come viene attaccato vediamo come tradurre tutto questo nella pratica utilizzando la suite aircrack in ambiente linux.

La sicurezza delle reti wifi

Probabilmente il piu diffuso metodo per connettersi ad internet e sicuramente il piu insicuro, proverò a fare una panoramica sulle varie tecniche per attaccare il wifi e di conseguenza le possibili contromisure per difenderci.Vi sono molti fattori che contribuiscono alla debolezza delle reti wifi,la cosa piu ovvia è che oltre ad essere attaccabili con tecniche di networking ‬tipiche delle reti cablate,esse lo sono anche con tecniche specifiche tipiche del wifi,visto che i pacchetti tcp viaggiano dal nostro computer al router per mezzo di onde radio e queste possono essere intercettate da qualsiasi scheda wireless con opportuni driver.
Vi sono poi diversi altri aspetti a volte sottovalutati, ad esempio se la rete wireless non è protetta da firewall un aggressore associato al punto di accesso sarà in grado di reindirizzare tutto il traffico della rete cablata con reindirizzamento ARP verso la scheda wifi,e questo può provocare gravi vulnerabilità.
Inizieremo parlando del WEP(wired equivalent privacy) una cifratura che doveva garantire una sicurezza equivalente ad una rete cablata, inizialmente il WEP fu concepito con chiavi di 40 bit,in seguito la lunghezza delle chiavi fu aumentata a 104 bit,oggi questa protezione è totalmente inutile, è attaccabile con molti sistemi e software, ad esempio dalla suite aircrack-ng che analizzeremo in seguito, ma prima cerchiamo di capire come funziona esattamente il WEP.

lunedì 4 ottobre 2010

COMPUTER VIRTUALE

Un sito interessante che offre la possibilità di avere a disposizione un computer virtuale al quale potete accedere dal vostro browser preferito.Dopo una breve registrazione all'indirizzo www.icloud.com, avrete a disposizione un desktop virtuale con tanto di browser, lettore multimediale, varie applicazioni e possibilità di archiviare file, lo spazio offerto nella versione free è limitato, nella versione a pagamento è possibile avere a disposizione un disco virtuale di 100GB.Non male, un po lento ad avviarsi.

ANTIVIRUS ONLINE

Un sito veramente interessante è questo www.virustotal.com , si tratta di un antivirus online completamente gratuito e decisamente affidabile, visto che la scansione dei file viene eseguita con un database di oltre 100 antivirus!


Veramente utile, e di semplice utilizzo, basta eseguire l'upload del file da analizzare ed attendere i risultati, inoltre prima di visitare un sito "dubbio" è possibile sottoporre l' url ad analisi, che dire... possiamo fare a meno di installare un antivirus? Sinceramente no, specialmente se stiamo utilizzando windows, ma questo servizio lo ritengo estremamente utile.