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

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

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

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

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

Категории

Все категории
Loading categories
InlineExecute-Assembly — Cobalt Strike BOF для выполнения внутрипроцессных сборок .NET с обходом AMSI/ETW, пользовательским AppDomain и перенаправлением вывода через именованные каналы/почтовые слоты. | Kitploit
Инструменты/GitHubGitHub/anthemtotheego/inlineexecute-assembly
Пост-эксплуатацияRed Teaming
GitHubanthemtotheego/inlineexecute-assembly

InlineExecute-Assembly

Cobalt Strike BOF для выполнения внутрипроцессных сборок .NET с обходом AMSI/ETW, пользовательским AppDomain и перенаправлением вывода через именованные каналы/почтовые слоты.

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

Популярное

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

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

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

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

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

InlineExecute-Assembly

InlineExecute-Assembly — это доказательство концепции Beacon Object File (BOF), которое позволяет специалистам по безопасности выполнять .NET сборки в рамках процесса, как альтернатива традиционному модулю execute-assembly Cobalt Strike, работающему через fork and run. InlineExecute-Assembly выполнит любую сборку с точкой входа Main(string[] args) или Main(). Это позволяет запускать большинство опубликованных инструментов без предварительных изменений.

BOF автоматически определит, какую версию Common Language Runtime (CLR) необходимо загрузить в процесс для вашей сборки (v2.0.50727 или v4.0.30319) перед выполнением и в большинстве случаев корректно завершится при возникновении проблем. BOF также поддерживает несколько флагов, которые позволяют оператору управлять различными аспектами перед выполнением .NET, включая отключение AMSI через патчинг памяти, отключение и восстановление ETW через патчинг памяти, настройку имени создаваемого домена приложения CLR, возможность перенаправлять вывод консоли сборки в именованный канал (named pipe) или почтовый слот (mailslot), а также переключение точки входа с Main(string[] args) на Main(). Более подробная информация об использовании, сценариях и возможных способах обнаружения приведена ниже и по адресу https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/.

Наконец, преимущество выполнения наших .NET сборок в том же процессе, что и наш beacon implant, заключается в том, что мы избегаем стандартного поведения модуля execute-assembly Cobalt Strike, который создаёт новый процесс для загрузки/внедрения CLR/.NET сборки. Однако существуют и другие соображения по opsec, например: загружает ли процесс, в котором мы выполняемся, обычно CLR? Есть ли у выполняемой .NET сборки известные сигнатуры? Поэтому недостатком является то, что если что-то будет обнаружено и заблокировано (например, AMSI), ваш beacon также будет убит.

Ссылки по теме

Этот инструмент не появился бы без возможности опереться на действительно отличные исследования, инструменты и код, уже опубликованные членами сообщества безопасности. Спасибо им. Если кто-то остался не упомянутым ниже, дайте мне знать, и я обязательно добавлю их.

  • HostingCLR - здесь - Логика CLR/выполнения сборки
  • Dotnet-Loader-Shellcode - (от @modexpblog) - здесь - Отличные исследования, включая COM-интерфейсы для выполнения .NET в C -> Настоящий MVP
  • Donut - (от @TheRealWover и @modexpblog) - здесь - Заголовок COM-интерфейсов
  • Memory Patching AMSI Bypass - (от @_RastaMouse) - здесь - Исследование патчинга памяти AMSI
  • Metasploit-Execute-Assembly - (от @b4rtik) - здесь - Модифицированный патчинг AMSI и функция определения версии .NET
  • ExecuteAssembly - (от @med0x2e) - здесь - Модифицированный aggressor-скрипт
  • Hiding Your .NET ETW - (от @xpn) - здесь - Отличные исследования ETW
  • ETW BOF - (от @ajpc500) - здесь - Модифицированный патчинг ETW
  • ExecuteAssembly_Mailslot - (от @N4k3dTurtl3) - здесь - Модифицированное использование почтовых слотов для перенаправления консоли
  • @freefirex2 - Был так любезен, что поделился хорошими сведениями о внутреннем устройстве BOF и подводных камнях.

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

  1. Скопируйте папку inlineExecute-Assembly со всем содержимым на систему, к которой вы планируете подключаться через графическое приложение Cobalt Strike.
  2. Загрузите aggressor-скрипт inlineExecute-Assembly.cna.
  3. Выполните inlineExecute-Assembly --dotnetassembly /путь/к/assembly.exe для базового выполнения (см. примеры использования ниже для конкретных флагов).

Сборка собственной версии

Выполните следующую команду в каталоге src через x64 Native Tools Command Prompt для VS 2019.

cl.exe /c inlineExecute-Assembly.c /GS- /FoinlineExecute-Assemblyx64.o

Выполните следующую команду в каталоге src через x86 Native Tools Command Prompt для VS 2019.

cl.exe /c inlineExecute-Assembly.c /GS- /FoinlineExecute-Assemblyx86.o

Флаги

--dotnetassembly        Путь к сборке **обязательно**
--assemblyargs          Аргументы для сборки
--appdomain            Изменить имя по умолчанию AppDomain (значение по умолчанию: totesLegit, задаётся во включённом aggressor-скрипте) *Домен всегда выгружается*
--amsi                 Попытка отключить AMSI через патчинг памяти (в случае успеха AMSI будет отключён на всё время жизни процесса)
--etw                  Попытка отключить ETW через патчинг памяти (в случае успеха ETW будет отключён на всё время жизни процесса, если не отменить)
--revertetw            Попытка отключить ETW через патчинг памяти, а затем восстановить исходное состояние
--pipe                 Изменить имя по умолчанию именованного канала (значение по умолчанию: totesLegit, задаётся во включённом aggressor-скрипте)
--mailslot             Переключиться на использование почтовых слотов для перенаправления вывода консоли. Изменяет имя по умолчанию почтового слота (если оставить пустым, значение по умолчанию: totesLegit, задаётся во включённом aggressor-скрипте)
--main                 Изменить точку входа на Main() (значение по умолчанию: Main(string[] args))

Пример использования

Выполнение .NET сборки

Синтаксис

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe

Пример использования

Выполнение .NET сборки с аргументами

Синтаксис

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --assemblyargs AntiVirus AppLocker

Пример использования

Выполнение .NET сборки с аргументами и отключением AMSI

Синтаксис

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --assemblyargs AntiVirus AppLocker --amsi

Пример использования

Выполнение .NET сборки с аргументами и отключением ETW

Синтаксис

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --assemblyargs AntiVirus AppLocker --etw

Пример использования

Выполнение .NET сборки с аргументами и перенаправлением вывода через почтовый слот вместо именованного канала по умолчанию

Синтаксис

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --mailslot

Пример использования

Выполнение .NET сборки с аргументами и изменение имени именованного канала, заданного в aggressor-скрипте

Синтаксис

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --pipe forRealLegit

Пример использования

Выполнение .NET сборки и изменение домена приложения по умолчанию, заданного в aggressor-скрипте

Синтаксис

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --appdomain forRealLegit

Пример использования

Выполнение .NET сборки с точкой входа Main() вместо Main(string[] args)

Синтаксис

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/simpleMain.exe --main

Пример использования

Полный набор

Синтаксис

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --assemblyargs AntiVirus AppLocker --amsi --etw --appdomain forRealLegit --mailslot forRealLegit

Предостережения

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