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

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

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

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

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

Категории

Все категории
Loading categories
eden — Доказательство концепции UDRL для Cobalt Strike, созданный с помощью Crystal Palace, который объединяет технику потоковой передачи страниц Рафаэля Маджа с модульным шлюзом вызовов (Draugr). | Kitploit
Инструменты/GitHubGitHub/cobalt-strike/eden
Фреймворки для пентестаФреймворки для эксплойтовШелл-кодПост-эксплуатацияОбучение и ОбразованиеRed TeamingРазработка Полезной Нагрузки
GitHubcobalt-strike/eden

eden

Доказательство концепции UDRL для Cobalt Strike, созданный с помощью Crystal Palace, который объединяет технику потоковой передачи страниц Рафаэля Маджа с модульным шлюзом вызовов (Draugr).

Репозиторий
13771510 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

Eden

рисунок

Загрузчик Eden — это PoC UDRL для Cobalt Strike, созданный с помощью Crystal Palace, который объединяет технику потоковой передачи страниц Рафаэля Маджа (Raphael Mudge) из page streaming technique с модульным шлюзом вызовов (в настоящее время PIC-версия Sleepmask-VS Draugr callgate BOF).

Цель загрузчика Eden состоит в том, чтобы:

  • Продемонстрировать возможность использования Crystal Palace для комбинирования (и повторного использования) 'возможностей' для быстрой разработки пользовательских загрузчиков/инструментов
  • Служить примером для других, на основе которого можно строить
  • Помочь специалистам по безопасности понять, как работают UDRL (он полностью отлаживаем)
  • Информировать/стимулировать обсуждение безопасности

Для получения дополнительной информации о загрузчике Eden см. соответствующий блог.

Примечание: Назначение Eden — продемонстрировать идею использования Crystal Palace для объединения различных 'единиц выполнения' (т.е. возможностей) для создания пользовательских загрузчиков. Он не предназначен для того, чтобы быть полноценным 'обходным' загрузчиком, и поэтому в нем по замыслу отсутствует ряд базовых функций OPSEC. Например, он использует память RWX и не отслеживает/маскирует кучу Beacon'а (и поэтому он уязвим для YARA-сигнатур, таких как эта).

Краткое руководство по началу работы

Примечание: В этом кратком руководстве предполагается, что вы загрузили/собрали Crystal Palace и выполнили следующие шаги для настройки среды разработки.

  1. Сначала необходимо задать следующий параметр Malleable C2:
stage {
    set sleep_mask "false";
}
  1. Откройте терминал WSL в корне репозитория и соберите загрузчик Eden: make clean; make.
  2. Скопируйте crystalpalace.jar в каталог вашего клиента Cobalt Strike.
  3. Загрузите eden.cna в клиент Cobalt Strike.
  4. При следующем экспорте полезной нагрузки Eden будет применен автоматически. Вы можете проверить это, посмотрев вывод в консоли скрипта:
[14:55:55] [*] Generating Payload: HTTP -- Type: HTTP -- Arch: x64 -- Exit Function: Thread -- System Call: None -- HTTP Library: wininet
[14:55:56] [EDEN] Parsing C:\Users\wb\Desktop\eden\eden.spec...
[14:55:56] [EDEN] Applying eden ldr spec...
[14:55:56] [EDEN] Payload Size: 387060 bytes
[14:55:56] [*] Using user modified reflective DLL! DLLName=resources/beacon.x64.rl0k.dll Arch=x64

Примечание: Eden поддерживает HTTP(S), DNS и Pivot Beacons.

Руководство по отладке

Одним из ограничений Crystal Palace на момент выпуска является то, что в настоящее время он поддерживает только объектные файлы, собранные с помощью mingw. Если вы попытаетесь использовать COFF, собранный с помощью MSVC или Clang, обычно возникнут ошибки перемещения. Это может быть неприятно, так как mingw не поддерживает напрямую файлы pdb, и поэтому отладка при написании сложных Windows-методов может быть затруднительной. Однако вы можете добавить опцию -g в ваш Makefile, чтобы встроить отладочную информацию в исполняемые сборки. Это позволяет проходить по вашему коду в WinDbg. Для получения дополнительной информации об этом процессе рекомендуется прочитать следующий блог от Rastamouse.

Этот репозиторий использует описанный выше подход для сборки отладочной версии Draugr (draugr.x64.exe) и кода потоковой передачи страниц (guardexec.x64.exe) по умолчанию. Отладочная сборка Draugr не имеет зависимостей и собирается сразу, однако если вы хотите пошагово пройти/отладить код потоковой передачи страниц/перехвата IAT, вам необходимо выполнить следующие шаги:

1. Экспорт Beacon без загрузчика:

  • Загрузите debug/export_beacon_with_no_ldr.cna в ваш клиент CS и экспортируйте бесстадийный сырой x64 (HTTP) Beacon в каталог /eden/debug/. Это экспортирует DLL Beacon без отражающего загрузчика, который мы можем использовать для имитации точки входа guardexec.
  • (В WSL) $ xxd -i ./beacon_x64.bin > debug_beacon.h

2. Экспорт заглушки PIC Draugr из Crystal Palace:

  • Для этого вам нужно запустить Crystal Palace из WSL с помощью $ ./piclink /<path>/eden/debug/draugr.spec x64 /<path>/eden/debug/draugr.bin. Это заставит Crystal Palace выдать только заглушку PIC Draugr, которую мы можем использовать для имитации точки входа guardexec.
  • (В WSL) $ xxd -i ./draugr.bin > debug_druagr.h

3. Начало отладки в WinDbg

  • Пересоберите Eden после выполнения указанных выше шагов: make clean;make
  • Откройте WinDbg и выберите запуск исполняемого файла (/eden/bin/draugr.exe или /eden/bin/guardexec.exe)
  • Выберите Open source file и выберите соответствующий файл .c (например, guardexec.c при отладке кода потоковой передачи страниц).
  • Теперь вы можете проходить по шагам / устанавливать точки останова как для отдельного двоичного файла Draugr, подделывающего стек вызовов, так и для работающего Beacon с перехватами IAT. Предупреждение: маскировка не будет работать корректно в режиме отладки, так как для этого требуется, чтобы Crystal Palace во время генерации полезной нагрузки внедрил ключ.

Примечание: Не существует отладочного исполняемого файла для загрузчика, так как нет очевидного способа заставить Crystal Palace экспортировать отладочные полезные нагрузки для таких вещей, как зашифрованные DLL и их ключи. Поэтому становится нетривиальной задачей передать имитированные 'зашифрованные' буферы PIC.

Соображения по дизайну

  1. Загрузчик Eden в первую очередь предназначен для демонстрации возможностей Crystal Palace путем объединения различных 'возможностей' для создания нового загрузчика. Эту идею можно развить гораздо дальше, чем в этом репозитории (например, 'статический' PIC-загрузчик, полностью настраиваемый с помощью COFF-модулей (защитные ограждения, шлюзы вызовов, маскировка сна и т.д.)).

  2. Загрузчик Eden явно использует PIC-версию Draugr, чтобы он мог подделывать каждый вызов жизненного цикла Beacon (т.е. вызовы VirtualAlloc/LoadLibrary, используемые во время процесса отражающей загрузки). В некоторых случаях это может быть излишним (например, EDR не волнуют неподкреплённые вызовы LoadLibrary и т.д.), и в этом случае это можно изменить, чтобы использовать PICO (== 'BOF') эквивалент Draugr, который намного проще.

  3. Загрузчик Eden намеренно пытается сохранить 'шлюз вызовов' отдельным от загрузчика. Это сделано для модульности, так как идея заключается в том, что вы можете заменять BOFы BeaconGate/шлюзов вызовов. Следовательно, код шлюза вызовов Draugr полностью самодостаточен в своем собственном объектном файле. Заменив его другой 'возможностью', вы можете кардинально изменить TTP Eden.

  4. Загрузчик Eden намеренно не использует более новые функции Crystal Palace. Например, mergelib можно использовать с общей библиотекой Crystal Palace, LibTCG. Однако обратите внимание, что это означает потерю возможности отлаживать ваш код.

Устранение неполадок

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