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

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

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

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

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

Категории

Все категории
Loading categories
ExecuteAssembly — Загрузка/внедрение .NET-сборок путём; повторного использования загруженного CLR AppDomainManager процесса-хоста (spawnto), затирания PE DOS-заголовков загрузчика/.NET-сборки, отсоединения связанных с .NET модулей, обхода ETW+AMSI, избегания перехватов EDR с помощью статических системных вызовов NT (x64) и скрытия импорта путём динамического разрешения API (по хэшу). | Kitploit
Инструменты/GitHubGitHub/med0x2e/executeassembly
Повышение привилегийМеханизмы персистентностиЭксплуатацияОбход IDS/IPSЛатеральное перемещениеШелл-кодПост-эксплуатацияКомандование и УправлениеRed Teaming

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

Загрузка/внедрение .NET-сборок путём; повторного использования загруженного CLR AppDomainManager процесса-хоста (spawnto), затирания PE DOS-заголовков загрузчика/.NET-сборки, отсоединения связанных с .NET модулей, обхода ETW+AMSI, избегания перехватов EDR с помощью статических системных вызовов NT (x64) и скрытия импорта путём динамического разрешения API (по хэшу).

Генерация Шеллкода
Разработка Полезной Нагрузки
GitHubmed0x2e/executeassembly

ExecuteAssembly

Репозиторий
597113155 лет назадПроверено Kitploit
Поделиться

Описание:

ExecuteAssembly — это альтернатива CS execute-assembly, написанная на C/C++, и может использоваться для загрузки/внедрения .NET-сборок путём: повторного использования загруженных модулей CLR/AppDomainManager процесса-хоста (spawnto), затирания заголовков PE DOS загрузчика/.NET-сборки, отвязки связанных с .NET модулей, обхода ETW+AMSI, избегания перехватов EDR с помощью статических системных вызовов NT (x64) и скрытия импортов путем динамического разрешения API через хеширующий алгоритм superfasthash.

TLDR (Возможности):

  • Отвязка модулей, связанных с CLR, от структур данных PEB. (используйте утилиту MS "ListDLLs" вместо PH для подтверждения)
  • Затирание заголовков .NET-сборки и рефлективной DLL (байты MZ, e_lfanew, DOS Header, Rich Text, PE Header).
  • Использование статических жёстко заданных системных вызовов для обхода перехватов EDR. (пока только поддержка x64, от WinXP до Win10 19042)
  • Перечисление и повторное использование CLR "AppDomain/AppDomainManager" (ICLRMetaHost->EnumerateLoadedRuntimes), просто установите процесс spawnto/host на известный .NET-процесс Windows.
  • Динамическое разрешение WIN32 API (PEB) с использованием хеша соответствующих API (SuperFastHash)
  • Патчинг AMSI и ETW перед загрузкой .NET-сборок.
  • Разбор байтов .NET-сборки и сканирование для определения версии CLR для загрузки/использования.
  • Отсутствие использования GetProcAddress/LoadLibrary/GetModuleHandle для обхода ETW.
  • Хостинг CLR с использованием v4 COM API и внедрение рефлективной DLL

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

  • x64(syscalls): эта версия в основном зависит от использования статических системных вызовов для обхода перехватов EDR; вы можете использовать эту версию для сборки только x64-версии DLL (пока только поддержка x64).

  • x86|x64(PEB): извлекает требуемые адреса API динамически во время выполнения путём обхода таблиц EAP модулей PEB и разрешения API через хеш superfasthash. Однако не учитывает перехваты EDR, установленные на kernel32.dll или ntdll.dll; вы можете использовать эту версию для сборки как x86, так и x64 DLL, или только x86 DLL, а для x64 DLL использовать версию x64(syscalls) для учёта обычных перехватов EDR.

  • Соберите необходимые DLL с помощью VS2017 и/или Windows SDK 10.0.17134.0 (или совместимых версий SDK).

  • Убедитесь, что gzip установлен, и следующие артефакты находятся в одной папке, затем просто загрузите скрипт агрессора "ExecuteAssembly.cna":

    • ExecuteAssembly.cna

    • ExecuteAssembly-x64.dll

    • ExecuteAssembly-x86.dll

    • Параметры CLI:

      --dotnetassembly: .NET-сборка для загрузки/внедрения.

      --assemblyargs: аргументы .NET-сборки.

      --unlink-modules: Отвязать модули, связанные с .NET (такие как CLR/MsCoree DLL), от структур данных PEB.

      --stomp-headers: Затереть заголовки .NET-сборки и рефлективной DLL PE DOS.

      --etw: Обход трассировки событий Windows (ETW).

      --amsi: Обход AMSI.

      --spawnto: Выберите процесс spawnto, список .NET-бинарных файлов, загружающих CLR по умолчанию при запуске:
            - PresentationHost.exe
            - stordiag.exe                                                               

  • Смотрите spawnto-list.txt для дополнительных MS-бинарных файлов, загружающих CLR по умолчанию, которые являются хорошими кандидатами для установки в качестве spawnto. (следует избегать известных LOLBins, если только это не машина разработчика)

Примеры:

  • ExecuteAssembly --dotnetassembly /tmp/Seatbelt.exe --assemblyargs LogonSessions --unlink-modules --stomp-headers --amsi --etw --spawnto PresentationHost.exe

  • ExecuteAssembly --amsi --etw --unlink-modules --stomp-headers --dotnetassembly /tmp/ghostpack/SharPersist.exe --assemblyargs -t reg -c "C:\Windows\SysWow64\mshta.exe C:\Users\admin\Downloads\Test2.hta" -k logonscript -m add --spawnto FileHistory.exe

  • ExecuteAssembly --unlink-modules --stomp-headers --dotnetassembly /tmp/ghostpack/SharPersist.exe --assemblyargs -t reg -k "logonscript" -v "C:\Windows\SysWow64\mshta.exe C:\Users\admin\Downloads\Test.hta" -m remove --spawnto FileHistory.exe

  • ExecuteAssembly --unlink-modules --amsi --dotnetassembly /tmp/ghostpack/SharpWMI.exe --assemblyargs action=query computername=localhost query="select * from win32_service" --spawnto FileHistory.exe

  • ExecuteAssembly --amsi --etw --dotnetassembly /tmp/ghostpack/SharpWMI.exe --assemblyargs action=query query="select * from win32_process" --spawnto PresentationHost.exe

Поддержка C2:

Был создан и протестирован в основном на Cobalt Strike, однако может использоваться и с другими C2-фреймворками (MSF и т.д.), просто имейте в виду, что рефлективная DLL DLLMAIN ожидает однострочную полезную нагрузку в качестве параметра (lpReserved) в следующем формате (без точки с запятой);

  • AMSI_FLAG|ETW_FLAG|STOMPHEADERS_FLAG|UNLINKMODULES_FLAG|LL_FLAG.LENGTH_FLAG.B64_ENCODED_COMPRESSED_PAYLOAD [SPACE SEPARATED ARGUMENTS]
    • AMSI_FLAG: 0|1 (либо 0, либо 1)
    • ETW_FLAG: 0|1
    • STOMPHEADERS_FLAG: 0|1
    • UNLINKMODULES_FLAG: 0|1
    • LENGTH_FLAG: размер .NET-сборки в байтах
    • LL_FLAG: длина LENGTH_FLAG (просто потерпите или притворитесь, что не читали этого)
    • B64_ENCODED_COMPRESSED_PAYLOAD: .NET-сборка, сжатая Gzip и закодированная в base64.
    • [SPACE SEPARATED ARGUMENTS]: аргументы .NET-сборки

Примечания по тестированию:

  • Протестировано с Cobalt Strike 4.x без использования malleable профилей.
  • Протестировано с Cobalt Strike 4.x с использованием следующего malleable профиля (установлены параметры обхода памяти: userwx, startrwx и т.д.);
    • https://github.com/threatexpress/malleable-c2/blob/master/jquery-c2.4.0.profile

Планы:

  • Альтернатива RFLL, возможно BOF + именованные каналы (не уверен насчёт длительных задач)
  • Поддержка x86 для статических системных вызовов.
  • Исправление ошибок и очистка от висячих указателей или утечек памяти, которые я пропустил :p

Известные проблемы:

  • Поддержка SharpHound v2 и v3 (v2 работал нормально, нужно выяснить, что изменилось).
  • Ограничение размера .NET-сборки (< 1 МБ)

Благодарности/Ссылки:

  • https://github.com/stephenfewer/ReflectiveDLLInjection
  • https://github.com/jthuraisamy/SysWhispers
  • https://github.com/etormadiv/HostingCLR
  • https://github.com/outflanknl/TamperETW/
  • https://github.com/LloydLabs/Windows-API-Hashing
  • http://www.rohitab.com/discuss/topic/42077-module-pebldr-hiding-all-4-methods-x64/
  • https://gist.github.com/christophetd/37141ba273b447ff885c323c0a7aff93
Скачать инструмент

- ScriptRunner.exe

- caitstatic.exe

- Microsoft.Uev.SyncController.exe

- TsWpfWrp.exe

- UevAgentPolicyGenerator.exe

- UevAppMonitor.exe

- FileHistory.exe

- UevTemplateBaselineGenerator.exe

- UevTemplateConfigItemGenerator.exe