Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
PMD — Практический курс по разработке вредоносного ПО для Windows: хеширование API, DLL sideloading, выполнение shellcode, манипуляция PE-файлами, размещение payload и лабораторные работы по доставке. | Kitploit
Инструменты/GitHubGitHub/rad9800/pmd
Обратная инженерияШелл-кодАнализ вредоносных программАнализ Бинарных ФайловОбучение и ОбразованиеRed TeamingГенерация ШеллкодаРазработка Полезной НагрузкиЛаборатории и Практика
GitHubrad9800/pmd

PMD

Практический курс по разработке вредоносного ПО для Windows: хеширование API, DLL sideloading, выполнение shellcode, манипуляция PE-файлами, размещение payload и лабораторные работы по доставке.

159141 год назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

Практическая разработка вредоносных программ

Упражнение 1 - Настройка окружения

  1. Настройте виртуальную машину Windows в гипервизоре. a. Обязательно сделайте снимок базовой установки.
  2. Скачайте и установите Visual Studio 2022 - https://visualstudio.microsoft.com/vs/ a. При установке выберите рабочую нагрузку Desktop development with C++
  3. Скачайте и установите:
    • DebugView++ - https://github.com/CobaltFusion/DebugViewPP
    • PE Bear - https://github.com/hasherezade/pe-bear
    • ProcMon - https://learn.microsoft.com/en-us/sysinternals/downloads/procmon
    • Ghidra - https://www.ghidra-sre.org/
    • Everything - https://www.voidtools.com/

Кроме того (необязательно), для более полного опыта реверс-инжиниринга настройте символы:

setx _NT_SYMBOL_PATH c:\Symbols;srv*c:\Symbols*https://msdl.microsoft.com/download/symbols

mkdir \symbols

  1. Откройте PMD.sln в Visual Studio.

  2. Выберите проект setup и убедитесь, что вы можете:

    a. Скомпилировать проект

    b. Увидеть отладочный вывод в DebugView++.

Упражнение 2 - Изучение свойств PE

  1. Обновите флаги компилятора и компоновщика проекта template, чтобы управлять записями IAT и другими свойствами PE.

    a. Освойтесь с динамическим разрешением API и документацией MSDN.

    b. Есть ли другие свойства, которые бросаются в глаза? Если вы запустите Strings.exe на бинарном файле, бросаются ли в глаза какие-нибудь строки?

    c. Можете ли вы удалить/изменить их?

Для выполнения упражнения используйте любой инструмент по вашему выбору (например, dumpbin/PE Bear). В scripts\props.py предоставлена обёртка вокруг pefile (убедитесь, что установили зависимости).

  1. Скачайте несколько образцов вредоносного ПО с VXUG

    a. В чём основные различия между безвредными и вредоносными исполняемыми файлами?

    b. В чём основные различия между нашим бинарным файлом и безвредными исполняемыми файлами?

Дополнительные ресурсы

  • https://learn.microsoft.com/en-us/cpp/build/reference/dumpbin-reference?view=msvc-170
  • https://learn.microsoft.com/en-us/windows/win32/debug/pe-format
  • https://learn.microsoft.com/en-us/previous-versions/ms809762(v=msdn.10)
  • https://cloud.google.com/blog/topics/threat-intelligence/tracking-malware-import-hashing/
  • https://github.com/rad9800/misc/blob/main/generic/fix-entropy.cpp
  • https://github.com/rad9800/misc/blob/main/generic/stack-strings.cpp

Упражнение 3 - Хеширование API во время компиляции

Текущий алгоритм хеширования API — fnv1a.

  1. Откройте проект solution и вызовите MessageBoxA с помощью фреймворка хеширования API.
  2. Используйте другой алгоритм хеширования и убедитесь, что вы по-прежнему можете вызвать MessageBoxA.

Дополнительные ресурсы

  • https://github.com/vxunderground/VX-API/tree/main/VX-API
  • https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messageboxa

Упражнение 4 - Поиск и использование перехвата DLL

  1. Скачайте Cisco Webex (https://www.webex.com/downloads.html)

  2. Найдите CiscoCollabHost и посмотрите, какие DLL загружаются

    • Используйте Procmon/PE Bear/Ghidra или что угодно!
  3. Откройте CiscoCollabHost в Ghidra и найдите различные способы получения выполнения кода через sideloading

  4. Измените dll_template, чтобы выполнить sideload целевого бинарного файла. Убедитесь, что вы видите отладочную строку в DebugView++.

  5. Обновите LastWriteTime и CreationTime для dll_template.dll, чтобы они совпадали с целевой DLL.

Дополнительные ресурсы

  • https://hijacklibs.net/
  • https://github.com/sadreck/Spartacus

Упражнение 5 - Выполнение шеллкода

  1. Скомпилируйте и запустите проект utility.

    a. Кроме того, рассмотрите возможность запуска его на вашей хост-системе.

  2. Скопируйте определённую DLL в каталог x64/{Debug,Release} и обновите код загрузчика.

  3. Обновите execute_sc, чтобы выполнять ваш шеллкод с помощью другой функции в фреймворке хеширования API.

Дополнительные ресурсы

  • https://github.com/Wra7h/FlavorTown

Упражнение 6 - Собираем всё вместе

  1. Создайте новый проект DLL и соберите воедино: a. Sideloading DLL b. Выполнение шеллкода через sideload
  2. Убедитесь, что свойства вашего PE-файла соответствуют ожидаемым.
  3. Скомпилируйте ваш пейлоад в конфигурации Release и упакуйте в формат, подходящий для доставки.

Упражнение 7 - Размещение пейлоада

  1. Зарегистрируйтесь у провайдера облачного хранения (например, AWS/CloudFlare)

  2. Упакуйте ваш пейлоад и загрузите его

    a. Кроме того, изучите способы ограничения/аудита доступа к загрузкам

  3. Сделайте снимок вашей ВМ

  4. Вернитесь к базовой ВМ и проиграйте полный сценарий «доставки»

    • например, направляя пользователя по URL и добиваясь скачивания. Убедитесь, что всё работает.

Упражнение 8 - Сборка пейлоадов с помощью GitHub Actions

  1. Создайте Git-репозиторий с содержимым этого проекта
  2. Убедитесь, что вы можете запустить Action и что артефакты работают
  3. Обновите .github\workflows\build.yml, чтобы добавить желаемую предварительную/последующую обработку, экономящую время. Вот несколько идей:
    • Запускайте props.py и проверяйте/включайте вывод
    • Автоматизируйте упаковку пейлоада на Python
    • Автоматизируйте обновление LastWriteTime и CreationTime для соответствия целевому файлу
Скачать инструмент