
Удаленный кейлоггер для Windows с эксфильтрацией нажатий клавиш, зашифрованных с помощью AES-256, через настраиваемые интервалы обратного вызова и вспомогательный Python-сервер для анализа журналов.
Добро пожаловать в репозиторий проекта peeping-tom! Peeping-tom — это программа из двух частей: peeping-client, развёртываемый на целевой машине, и toms-server, прослушивающий входящие нажатия клавиш на машине атакующего. Для запуска требуется значительная настройка, поэтому внимательно прочитайте и следуйте инструкциям ниже.
Конечно, если у вас есть предложения, отзывы, проблемы и т.д., смело обращайтесь или создавайте issue или pull request.
Шаг 1: Откройте файл решения peeping-tom в Visual Studio
Первым делом скачайте и установите Community edition Visual Studio на вашу машину по ссылке выше. При установке обязательно выберите рабочие нагрузки "Python development" и "Desktop development with C++", так как они необходимы для правильной загрузки и компиляции проекта.

После завершения установки запустите Visual Studio и выберите опцию "Clone a repository". Вставьте git URL проекта и нажмите кнопку клонирования.

Если всё загрузилось правильно, вы должны увидеть оба проекта в окне обозревателя решений справа, как показано ниже.

Шаг 2: Настройте параметры компилятора/линковщика в Visual Studio
Теперь, когда инструмент загружен в Visual Studio, нам нужно изменить несколько параметров и скомпилировать библиотеку перед сборкой. Это устранит зависимости от программ/библиотек при запуске на целевой машине.
Первая задача — статически скомпилировать библиотеку Crypto++, которая используется для шифрования в кейлоггере. Начните с загрузки версии 8.6.0 библиотеки здесь.
После скачивания ZIP-файла распакуйте его в папку, перейдите в неё и запустите cryptest.sln в Visual Studio. Теперь у вас должно быть два окна Visual Studio: одно с решением peeping-tom, другое — с решением cryptest.

После загрузки cryptest.sln в Visual Studio нажмите на "Debug" на верхней панели инструментов и установите "Release". Также измените архитектуру на x64, как показано ниже.

Теперь щёлкните правой кнопкой мыши по проекту cryptlib и выберите "Properties". Измените выделенную опцию, как показано.

После этого соберите решение cryptest.

Сборка займёт минуту или две, но после завершения файл cryptlib.lib должен появиться в указанном ниже пути (в вашей версии). Найдите файл и скопируйте его путь для следующего шага.
C:\Users\Abdullah Beta\Downloads\cryptopp860\x64\Output\Release\cryptlib.lib
После того как вы нашли файл и скопировали его путь, вернитесь в окно Visual Studio с открытым решением peeping-tom. Щёлкните правой кнопкой мыши по проекту peeping-client и выберите "Properties". Перейдите к опции, показанной на скриншоте ниже, и вставьте путь к cryptlib.lib.

Убедитесь, что проект peeping-client также установлен в "Release" и архитектура — x64. НЕ собирайте решение peeping-tom пока, так как в исходном коде ещё нужно внести изменения.
Шаг 3: Откройте публичный туннель к localhost:80
Переходим к туннелю. После создания учётной записи Ngrok скачайте Ngrok для вашей ОС по ссылке выше и извлеките исполняемый файл из ZIP-архива. Перед открытием туннеля вам нужно получить персональный маркер аутентификации из вашей учётной записи, как показано ниже.

Получив маркер, добавьте его в локальную конфигурацию Ngrok с помощью команды:
ngrok config add-authtoken 7cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxmgZ5
Наконец, откройте туннель с помощью команды:
ngrok http 80 --scheme=http
Если всё прошло успешно, вы должны увидеть что-то похожее на изображение ниже. Отлично! Теперь вы готовы к этому шагу. Скопируйте выделенный адрес "Forwarding" и сохраните его для последующего использования.

Шаг 4: Сгенерируйте новый ключ AES-256
На этом этапе вы можете скачать и установить Python на вашу машину. После установки откройте окно командной строки в каталоге проекта toms-server.
Установите необходимые зависимости с помощью:
pip3 install -r requirements.txt
Когда всё готово, выполните:
python3 toms-server.py -m keygen
Это должно вывести 64-символьный ключ AES-256, который также понадобится позже. Сохраните его вместе с адресом пересылки Ngrok.
Шаг 5: Заполните обязательные поля в исходном коде peeping-client
Теперь у нас есть всё необходимое. Откройте файл исходного кода peeping-client project->source files->peeping-client.cpp в обозревателе решений. Введите соответствующую информацию в первые две переменные функции main(), показанные ниже.

После ввода информации перейдите в peeping-client project->header files->APIHook.h и замените "15" на изображении ниже на желаемый интервал обратного вызова в секундах (например, измените 15 на 7200 для обратного вызова каждые два часа... вы поняли идею).

Наконец, соберите проект, и вы должны найти исполняемый файл в вашей версии следующего пути:
C:\Users\Abdullah Beta\source\repos\peeping-client\x64\Release
Поздравляю! Теперь у вас есть полностью настроенный кейлоггер, который будет отправлять зашифрованные данные клавиатуры с заданным интервалом.
Шаг 6: Запустите сервер прослушивания
Последний шаг — начать прослушивание входящих нажатий клавиш с целевой машины. Вы можете запустить сервер в режиме прослушивания с помощью команды:
python3 toms-server.py -m server
После запуска сервера введите тот самый ключ AES, который вы сгенерировали ранее и использовали в файле peeping-client.cpp. Если ключ принят, вы должны получить сообщение о том, что сервер запущен!
Шаг 7: Анализ логов + важные замечания
Осталось только запустить только что созданный peeping-client.exe на целевой машине. Способ выполнения оставляю на ваше усмотрение. Каждый раз по истечении заданного интервала вы будете получать сообщение в терминале.
Предупреждение: Пожалуйста, убедитесь, что интернет-соединение не прерывается и туннель Ngrok не закрывается в течение этого периода, так как в противном случае потребуется повторно запускать программу peeping-client.exe на целевой машине.
Все нажатия клавиш будут записаны в файл keylog.txt в каталоге скрипта toms-server, и их можно просмотреть оттуда. На этом инструкции закончены. Надеюсь, вам удалось всё запустить без серьёзных проблем!
Скоро!
pip3 install requests
При внесении вклада в этот репозиторий, пожалуйста, обсудите желаемые изменения через issue, email или LinkedIn.
Этот проект предназначен только для образовательных целей. Любое неправомерное использование данного проекта — ответственность пользователя. Я снимаю с себя ответственность за любые незаконные действия.
Этот проект был частично выполнен под руководством курса Эрмина Крепонича на Udemy и был переработан с учётом новых идей и навыков, которые я приобрёл.
Автор - Abdullah Ansari ©
Контактная информация - Email