KeyLogger con JavaScript y PHP mediante AJAX

Hola! Hoy os quería traer un KeyLogger básico con JavaScript a modo de curiosidad, y con AJAX para seguir practicando con este método que necesitaremos utilizar miles de veces en nuestros proyectos.

Keylogger con JavaScript y AJAX

IMPORTANTE: Esta entrada tiene únicamente finalidad didáctica, no me hago responsable del uso que le des a los conocimientos adquiridos en esta entrada ni al código de la misma.

Estructura

Nuestro script estará formado por tres archivos:

  • log.txt  Es el archivo que contendrá el log de las teclas pulsadas
  • keylogger.js  Capturará las teclas pulsadas y las enviará al servidor.
  • keylogger.php  Añadirá los datos enviados por nuestro archivo .js al log

Instalación

Para instalarlo simplemente debemos descargar los archivos e incluírlos en la página:

 

Código

keylogger.php

No me voy a parar mucho con este código ya que simplemente recoge la información enviada por el keylogger.js y la escribe en el archivo de log. Lo que si que os explicaré es que $_GET['k'] contiene las teclas pulsadas$_GET['ae'] contiene el id y la clase del elemento HTML que estaba activo cuando se pulsaron:

 

keylogger.js

 

Esta es la parte más compleja de nuestro script, así que vayamos parte por parte:

Con estas líneas, definimos una variable que va a contener un cache de las teclas pulsadas que aún no se han enviado al servidor.

 

Con este if evitaremos enviar una petición al servidor si el cache está vacío.

 

Estas líneas la verdad es que parecen bastante complejas, pero ahora vamos a ver que no lo son.

Con la primera  var xmlHttp = new XMLHttpRequest();  crearemos una petición AJAX que posteriormente enviaremos al servidor como vimos en este artículo, solo que esta vez en lugar de utilizar jQuery usaremos solo JavaScript.

La segunda linea lo que hace es definir a que URL se enviará la petición AJAX, en este caso tendrá la siguiente estructura:

http://…/keylogger.php?k={teclas}&ae={tagactivo}#{iddelelementoactivo}!.{clasedelelementoactivo}

 

Con esta línea vaciamos el cache.

 

Con estas líneas simplemente lo que hacemos es indicar que nuestra petición AJAX se debe enviar mediante el método GET y la enviamos.

 

Por último simplemente establecemos un Intervalo para guardar en el log las teclas que están almacenadas en el caché cada dos segundos

 

Y con esto ya tendríamos nuestro keylogger funcionando.

Este ejemplo es algo básico que se podría mejorar mucho, pero creo que es mejor traer un ejemplo sencillo y no un código largo y complicado.

Como siempre, aquí os dejo los archivos en drive para descargar: https://drive.google.com/open?id=0B1Tle40_yEIOV2hGWWdXUWhVNGM

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *