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

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

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

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

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

Категории

Все категории
Loading categories
BokuLoader — Proof-of-concept Reflective Loader для Cobalt Strike, призванный воссоздать, интегрировать и расширить функции обхода обнаружения Cobalt Strike! | Kitploit
Инструменты/GitHubGitHub/xforcered/bokuloader
Фреймворки для пентестаОбход IDS/IPSПост-эксплуатацияКомандование и УправлениеRed TeamingРазработка Полезной НагрузкиСостязательная Атака
GitHubxforcered/bokuloader

BokuLoader

Proof-of-concept Reflective Loader для Cobalt Strike, призванный воссоздать, интегрировать и расширить функции обхода обнаружения Cobalt Strike!

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

Популярное

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

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

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

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

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

BokuLoader : Reflective Loader для Cobalt Strike

Proof-of-concept User-Defined Reflective Loader (UDRL), который призван воссоздать, интегрировать и усовершенствовать функции обхода обнаружения Cobalt Strike!

Авторы:

УчастникTwitterЗначимый вклад
Bobby Cooke@0xBokuАвтор и основной сопровождающий проекта
Santiago Pecin@s4ntiago_pЗначительные улучшения Reflective Loader
Chris Spehn@ConsciousHackerСкриптинг Aggressor
Joshua Magri@passthehashbrwnПерехват IAT
Dylan Tran@d_tranmanСпуфинг стека вызовов
James Yeung@5cript1diotКосвенные системные вызовы

Рекомендации по использованию UDRL

Встроенный в Cobalt Strike Reflective Loader отличается надёжностью и поддерживает все функции обхода Malleable PE, которые предлагает Cobalt Strike. Главный недостаток использования собственного UDRL в том, что функции обхода Malleable PE могут поддерживаться из коробки, а могут и не поддерживаться.

Цель публичного проекта BokuLoader — помочь red team-ам создавать собственные внутренние UDRL для Cobalt Strike. Проект стремится поддерживать все значимые функции обхода Malleable PE в CS. Некоторые функции обхода используют интеграцию с CS, другие были полностью воссозданы, а некоторые не поддерживаются.

Перед использованием этого проекта в любом виде вы должны должным образом протестировать, что функции обхода работают как задумано. Из-за связки C-кода и Aggressor-скрипта компиляция с разными версиями операционных систем, компиляторов и Java может давать разные результаты.

Функции обхода

Специфичные функции обхода BokuLoader

  • Спуфинг стека вызовов с помощью синтетических фреймов.
  • Собственный код Reflective Loader на ASM/C
  • Косвенные системные вызовы NT через техники HellsGate и HalosGate
    • Все изменения защиты памяти для всех вариантов выделения памяти выполняются через косвенный системный вызов NtProtectVirtualMemory
  • obfuscate "true" с собственной реализацией UDRL в Aggressor-скрипте.
  • NOHEADERCOPY
    • Загрузчик не копирует заголовки из raw beacon DLL в виртуальную beacon DLL. Первые 0x1000 байт будут обнулены.
  • XGetProcAddress для разрешения символов
    • Не использует Kernel32.GetProcAddress
  • xLoadLibrary для определения базового адреса DLL и загрузки DLL
    • Для загруженных DLL получает базовый адрес DLL из TEB->PEB->PEB_LDR_DATA->InMemoryOrderModuleList
    • Не использует Kernel32.LoadLibraryA
  • Шифр Цезаря для обфускации строк
  • Размер UDRL — 100 КБ
  • Имена импортируемых DLL и строки имён импортируемых функций затираются в виртуальной beacon DLL.

Поддерживаемые функции обхода Malleable PE

КомандаПараметр(ы)Поддержка
allocatorHeapAlloc, MapViewOfFile, VirtualAllocВсе поддерживаются через реализацию BokuLoader
module_x64строка (имя DLL)Поддерживается через реализацию BokuLoader. Действуют те же требования к затиранию DLL, что и в реализации CS
obfuscatetrue/falseHTTP/S beacon'ы поддерживаются через реализацию BokuLoader. SMB/TCP для obfuscate true в настоящее время не поддерживается. Подробности в issue. Буду рад помощи, если сможете исправить :)
entry_pointRVA в виде десятичного числаПоддерживается через реализацию BokuLoader
cleanuptrueПоддерживается через интеграцию с CS
userwxtrue/falseПоддерживается через реализацию BokuLoader
sleep_mask(true/false) или (Sleepmask Kit+true)Поддерживается. При использовании значения по умолчанию "sleepmask true" (без sleepmask kit) устанавливайте "userwx true". При использовании sleepmask kit с поддержкой RX-памяти beacon.text (src47/Ekko) устанавливайте "sleepmask true" && "userwx false".
magic_mz_x64строка из 4 символовПоддерживается через интеграцию с CS
magic_peстрока из 2 символовПоддерживается через интеграцию с CS
transform-x64 prependэкранированная hex-строкаМодификация Aggressor-скрипта BokuLoader.cna
transform-x64 strrepстрока строкаМодификация Aggressor-скрипта BokuLoader.cna
stomppetrue/falseНе поддерживается. BokuLoader не копирует заголовки beacon DLL. Первые 0x1000 байт виртуальной beacon DLL — 0x00
checksumчислоЭкспериментально. Модификация Aggressor-скрипта BokuLoader.cna
compile_timeстрока даты-времениЭкспериментально. Модификация Aggressor-скрипта BokuLoader.cna
image_size_x64десятичное значениеНе поддерживается
nameстрокаЭкспериментально. Модификация Aggressor-скрипта BokuLoader.cna
rich_headerэкранированная hex-строкаЭкспериментально. Модификация Aggressor-скрипта BokuLoader.cna
stringwстрокаНе поддерживается
stringстрокаНе поддерживается

Тестирование

  • (22.02.23) Все 4 метода выделения памяти протестированы с threatexpress/malleable-c2/master/jquery-c2.4.7.profile

Истоки проекта

  • Основан на потрясающем проекте Reflective Loader от Стивена Фьюрера (Stephen Fewer):
    • https://github.com/stephenfewer/ReflectiveDLLInjection
  • Изначально создан при прохождении видео Renz0h по Reflective DLL из курса Sektor7 Malware Developer Intermediate (MDI)

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

  1. Скомпилируйте объектный файл BokuLoader с помощью make
  2. Запустите ваш Team Server Cobalt Strike
  3. В Cobalt Strike импортируйте Aggressor-скрипт BokuLoader.cna
  4. Сгенерируйте x64 beacon (Attacks -> Packages -> Windows Executable (S))
  5. С помощью Script Console убедитесь, что BokuLoader был внедрён в сборку beacon
  • Вариант x86 не поддерживается. Бинарник x86 — это исходный объектный файл Reflective Loader.
  • Генерация RAW beacon'ов работает из коробки. При использовании Artifact Kit для загрузчика beacon переменная stagesize должна быть больше значения по умолчанию.
    • Дополнительную информацию см. в документации Cobalt Strike по User-Defined Reflective Loader

Рекомендации по обнаружению

Захардкоженные строки

  • BokuLoader заменяет некоторые часто обнаруживаемые строки новыми захардкоженными значениями. Эти строки можно использовать для создания сигнатур BokuLoader:
Исходная строка Cobalt StrikeСтрока BokuLoader Cobalt Strike
ReflectiveLoaderBokuLoader
Microsoft Base Cryptographic Provider v1.012367321236742382543232341241261363163151d
(admin)(tomin)
beaconbacons

Аллокаторы памяти

Затирание модуля DLL (DLL Module Stomping)

  • Для отображения DLL с диска вызывается Kernel32.LoadLibraryExA
  • Третий аргумент Kernel32.LoadLibraryExA — DONT_RESOLVE_DLL_REFERENCES (0x00000001)
    • система не вызывает DllMain
  • Адреса в записи LDR PEB не разрешаются, как подробно описано MDSec здесь
  • Может быть обнаружен сканированием памяти процесса инструментом pe-sieve

Выделение памяти в куче

  • Если sleepmask kit не используется, в куче будет присутствовать исполняемая память RX или RWX.
Скачать инструмент