Более 7 лет работы в IT-сфере. Системное администрирование, frontend разработка, написание скриптов на Python.
Руководство по созданию кейлоггера на Python, который записывает нажатия клавиш с клавиатуры и отправляет их по электронной почте или сохраняет в файл журнала.
Этот материал публикуется исключительно в ознакомительных целях. Автор и редакция категорически против неэтичного использования программного кода, приведенного ниже для слежки, шпионажа, хищения данных и других возможных злоупотреблений. Автор и редакция не несут ответственность за негативные последствия использования этого материала.
Что такое кейлоггер и зачем он нужен
Кейлоггер – это программа, предназначенная для записи ввода с клавиатуры. Кейлоггинг можно использовать для изучения динамики нажатия клавиш (.pdf), взаимодействия человека с компьютером, сохранения и анализа информации при вводе. Скажем, когда вы много работаете с текстом, кейлоггер может помочь собрать информацию о скорости ввода, продуктивности за определенный период времени и прочее. С другой стороны, кейлоггеры часто используют хакеры для кражи паролей и другой конфиденциальной информации.
Подготовка: устанавливаем Python и библиотеки
Для начала нам потребуется установить Python. Если это уже сделано, можете смело пропустить этот абзац и переходить к установке библиотеки. В противном случае скачайте и установите подходящий релиз с официальной страницы языка. В данном руководстве мы будем использовать версию Python 3.9, но, по сути, подойдет любая версия.
Кроме этого, нам понадобится библиотека keyboard. Она позволяет контролировать и регистрировать ввод с клавиатуры.
Ставим библиотеку простой командой в терминале:
Пишем кейлоггер
Наш кейлоггер будет слушать и записывать в строковую переменную нажатия клавиш в фоновом режиме и отправлять содержимое через заданные интервалы в локальный файл или на email.
Импорт библиотек
Начнем с импорта необходимых библиотек:
Если вы хотите отправлять логи по электронной почте, следует настроить учетную запись Gmail и убедиться, что в учетной записи:
Рекомендуется создавать отдельный адрес электронной почты отличный от основного, так как код содержит ваш пароль в открытом виде, который используется для отправки сообщений.
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека хакера»
Тут необходимо указать корректные учетные данные Gmail, иначе отчет по электронной почте не будет работать.
Создаем класс и методы
Лучший способ представить кейлоггер – создать для него класс, и каждый метод в этом классе выполняет определенную задачу:
Мы установили в качестве метода отправки по умолчанию значение email, что указывает на то, что мы будем отправлять кейлоги на электронную почту. В качестве альтернативы мы сможем просто записывать их в файл.
Используем функцию клавиатуры on_release(), которая принимает обратный вызов.
Пишем метод для записи в локальный файл
Отправка на email
Если при отправке лога на email, консоль выдает ошибку вроде UnicodeEncodeError: 'ascii' codec can't encode character, откройте библиотеку smtplib.py по адресу C:\Users\user\AppData\Local\Programs\Python\Python39\Lib\, найдите строку msg = _fix_eols(msg).encode('ascii')и замените ее на msg = _fix_eols(msg).encode('utf8'). Ошибка связана с тем, что кодировка ASCII не может преобразовать в байты кириллицу.
Сообщаем лог через заданные промежутки времени
Давайте определим метод on_release():
Мы закончили с классом Keylogger, теперь нужно создать экземпляр этого класса:
Использование
Чтобы встроить наш скрипт в исполняемый файл, вы можете воспользоваться библиотекой с открытым исходным кодом Pyinstaller. Для этого ставим саму библиотеку:
И собираем все в файл:
На выходе получаем файл с расширением .exe, который можно использовать на любом компьютере под управлением Windows.
Повторяем, мы категорически против неэтичного использования этого кода и просим обязательно уведомить всех пользователей компьютера, где вы будете запускать данное ПО.
Комментарии