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

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

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

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

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

Категории

Все категории
Loading categories
maldev-for-dummies — Воркшоп по разработке вредоносного ПО | Kitploit
Инструменты/GitHubGitHub/chvancooten/maldev-for-dummies
ЭксплуатацияШелл-кодАнализ вредоносных программОбучение и ОбразованиеRed TeamingРазработка Полезной НагрузкиЛаборатории и Практика
GitHubchvancooten/maldev-for-dummies

maldev-for-dummies

Воркшоп по разработке вредоносного ПО

Репозиторий
1.8k2353 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

Разработка вредоносного ПО для чайников

В эпоху EDR операторам красных команд больше не обойтись использованием предварительно скомпилированных полезных нагрузок. В связи с этим разработка вредоносного ПО становится жизненно важным навыком для любого оператора. Начать работу с maldev может показаться пугающим, но на самом деле это очень просто. Этот воркшоп покажет вам всё, что нужно для начала!

Этот репозиторий содержит слайды и сопутствующие упражнения для воркшопа «MalDev для чайников», который проходил/будет проходить на Hack in Paris 2022 и X33fcon 2023. Хотя слайды были разработаны для очного представления, материалы и упражнения останутся здесь, чтобы вы могли выполнять их в своём темпе — процесс обучения никогда не стоит торопить! Приветствуются вопросы и предложения через Issues и Pull requests к этому репозиторию.

⚠ Отказ от ответственности: Разработка вредоносного ПО — это навык, который можно и нужно использовать во благо, для развития сферы (наступательной) безопасности и поддержания нашей защиты в тонусе. Если вы когда-либо используете этот набор навыков для действий, на которые у вас нет разрешения, вы больший «чайник», чем рассчитано на этот воркшоп, и вам следует убираться отсюда.

Описание воркшопа

С каждым днём антивирусные (AV) и корпоративные системы обнаружения и реагирования (EDR) становятся всё более зрелыми, что заставляет красные команды опережать их. Времена execute-assembly и сброса немодифицированных полезных нагрузок на диск прошли — если вы хотите, чтобы ваши операции длились дольше недели, вам придётся повысить уровень создания полезных нагрузок и разработки вредоносного ПО. Однако начать в этой области может быть непросто, и найти подходящие ресурсы не всегда легко.

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

В ходе воркшопа мы рассмотрим теорию, после чего настроим вам лабораторную среду. Будут различные упражнения, которые вы сможете выполнить в зависимости от вашего текущего уровня навыков и комфорта с темой. Однако цель воркшопа — учиться, а явно не выполнить все упражнения. Вы можете свободно выбирать предпочитаемый язык программирования для разработки вредоносного ПО, но поддержка во время воркшопа предоставляется в первую очередь для языков C# и Nim.

На воркшопе мы обсудим ключевые темы, необходимые для начала создания собственного вредоносного ПО. Это включает (но не ограничивается):

  • Windows API
  • Типы файлов и методы выполнения
  • Выполнение и внедрение шеллкода
  • Методы обхода AV и EDR

Начало работы

Чтобы начать разработку вредоносного ПО, вам понадобится машина для разработки, чтобы вас не беспокоили защитные инструменты, работающие на вашем основном компьютере. Я предпочитаю Windows для разработки, но Linux или MacOS тоже подойдут. Установите редактор/IDE по своему выбору (я использую VS Code почти для всего, кроме C#, для которого использую Visual Studio), а затем установите инструментарий для выбранного языка MalDev:

  • C#: Visual Studio предложит включить пакеты .NET, необходимые для разработки на C#. Если вы хотите разрабатывать без Visual Studio, вы можете скачать .NET Framework отдельно.
  • Nim lang: Следуйте инструкциям по установке. Choosenim — удобная утилита для автоматизации процесса установки.
  • Golang (спасибо @nodauf за PR): Следуйте инструкциям по установке.
  • Rust: Rustup можно использовать для установки Rust вместе с необходимыми инструментальными цепочками.

Не забудьте отключить Защитник Windows или добавить соответствующие исключения, чтобы ваша работа не была помещена в карантин! Позже мы сможем протестировать на отдельной машине с включенными защитными средствами, такими как AV.

ℹ Примечание: Часто менеджеры пакетов, такие как apt, или инструменты управления программным обеспечением, такие как Chocolatey или Winget (теперь встроенный!), можно использовать для автоматизации установки и управления зависимостями удобным и повторяемым способом. Однако помните, что версии в менеджерах пакетов могут отставать от реальных на несколько версий! Ниже приведён пример команды для установки всех упомянутых инструментов за один раз.

root@kitploit:~
choco install -y nim choosenim go rust vscode visualstudio2019community dotnetfx

Компиляция программ

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

C#

Код C# (файлы .cs) можно компилировать либо напрямую (с помощью утилиты csc), либо через саму Visual Studio. Большая часть исходного кода в этом репозитории (кроме решения бонусного упражнения 3) может быть скомпилирована следующим образом.

ℹ Примечание: Убедитесь, что вы запускаете приведённую ниже команду в «Командной строке разработчика Visual Studio», чтобы она знала, где найти csc. Рекомендуется использовать «Командную строку x64 Native Tools» для вашей версии Visual Studio. Флаг /unsafe потребуется для большинства скриптов, где мы напрямую обращаемся к низкоуровневым функциям.

root@kitploit:~
csc filename.exe

Вы можете включить оптимизации во время компиляции с помощью флага /optimize. Вы также можете скрыть окно консоли, добавив /target:winexe, или скомпилировать как DLL с помощью /target:library (но убедитесь, что структура вашего кода подходит для этого).

Nim

Код Nim (файлы .nim) компилируется командой nim c. Исходный код в этом репозитории можно скомпилировать следующим образом.

root@kitploit:~
nim c filename.nim

Если вы хотите оптимизировать сборку по размеру и удалить отладочную информацию (что гораздо лучше для OPSEC!), вы можете добавить следующие флаги.

root@kitploit:~
nim c -d:release -d:strip --opt:size filename.nim

При необходимости вы также можете скрыть окно консоли, добавив --app:gui.

Golang

Код Golang (файлы .go) компилируется командой go build. Исходный код в этом репозитории можно скомпилировать следующим образом.

root@kitploit:~
GOOS=windows go build

Если вы хотите оптимизировать сборку по размеру и удалить отладочную информацию (что гораздо лучше для OPSEC!), вы можете добавить следующие флаги.

root@kitploit:~
GOOS=windows go build -ldflags "-s -w"

Rust

Код Rust (файлы .rs) компилируется через команду cargo. Cargo может использоваться для управления зависимостями и сборки проекта. Исходный код в этом репозитории можно скомпилировать, перейдя в папку проекта и выполнив следующую команду.

root@kitploit:~
cargo build

Если вы хотите оптимизировать сборку по размеру и удалить отладочную информацию, вы можете добавить следующие флаги. Также обратитесь к разделу [profile.release] в каждом файле Cargo.toml для некоторых опций OPSEC во время компиляции.

root@kitploit:~
cargo build --release

Зависимости

C#

Большинство решений можно скомпилировать без зависимостей. Если зависимости требуются, предоставляется проект Visual Studio, который ссылается на соответствующие пакеты NuGet.

Nim

Большинство программ на Nim зависят от библиотеки «Winim» для взаимодействия с Windows API. Вы можете установить библиотеку с помощью менеджера пакетов Nimble следующим образом (после установки Nim):

root@kitploit:~
nimble install winim

Golang

В исходном коде этого репозитория используются некоторые зависимости. Вы можете установить их следующим образом (после установки Go):

root@kitploit:~
go mod tidy

Rust

Некоторые примеры зависят от крейта windows-sys для вызова Windows API. Поскольку мы используем Cargo, пакеты будут управляться автоматически при компиляции тестовой или релизной сборки.

Ресурсы

Слайды воркшопа ссылаются на некоторые ресурсы, которые вы можете использовать для начала работы. Дополнительные ресурсы, такие как соответствующие блоги или фрагменты кода, перечислены в файлах README.md для каждого упражнения!

Скачать инструмент