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

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

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

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

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

Категории

Все категории
Loading categories
inject-assembly — Внедрение сборок .NET в существующий процесс | Kitploit
Инструменты/GitHubGitHub/kyleavery/inject-assembly
ЭксплуатацияШелл-кодПост-эксплуатацияRed Teaming
GitHubkyleavery/inject-assembly

inject-assembly

Внедрение сборок .NET в существующий процесс

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

Популярное

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

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

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

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

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

inject-assembly - Выполнение .NET в существующем процессе

Этот инструмент является альтернативой традиционному fork and run для Cobalt Strike. Загрузчик может быть внедрён в любой процесс, включая текущий Beacon. Долго выполняющиеся сборки продолжат работу и будут отправлять вывод обратно в Beacon, аналогично поведению execute-assembly.

inject-assembly состоит из двух компонентов:

  1. BOF-инициализатор: Небольшая программа, отвечающая за внедрение загрузчика сборки в удалённый процесс с переданными аргументами. Она использует BeaconInjectProcess для выполнения внедрения, что означает возможность настройки этого поведения в профиле Malleable C2 или с помощью BOF для внедрения процессов (начиная с версии 4.5).

  2. PIC-загрузчик сборки: Основная часть проекта. Загрузчик инициализирует среду выполнения .NET, загружает предоставленную сборку и выполняет её. Загрузчик создаёт новый AppDomain в целевом процессе, чтобы загруженная сборка могла быть полностью выгружена после завершения выполнения.

Связь между удалённым процессом и Beacon осуществляется через именованный канал (named pipe). Агрессор-скрипт генерирует имя канала и передаёт его BOF-инициализатору.

Примечательные особенности

  • Патчит Environment.Exit(), чтобы предотвратить завершение удалённого процесса.
  • Затирание заголовка .NET сборки (байты MZ, e_lfanew, DOS-заголовок, Rich Text, PE-заголовок).
  • Генерация случайного имени канала на основе SourcePoint.
  • Отсутствие блокировки Beacon, даже если сборка загружается в текущий процесс.

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

Скачайте и загрузите агрессор-скрипт inject-assembly.cna в Cobalt Strike. Затем вы можете выполнять сборки с помощью следующей команды:

root@kitploit:~
inject-assembly pid assembly [args...]

Укажите 0 в качестве PID для выполнения в текущем процессе Beacon.

Рекомендуется использовать другой инструмент, например FindObjects-BOF, чтобы найти процесс, который уже загружает среду выполнения .NET, но это не является обязательным требованием для работы inject-assembly.

Предупреждения

  • В настоящее время поддерживаются только x64 удалённые процессы.
  • В программе есть несколько проверок для снижения вероятности сбоя удалённого процесса, но это всё равно может произойти.
  • Стандартное внедрение процессов Cobalt Strike может привести к обнаружению. Рассмотрите возможность использования пользовательского BOF внедрения или перехвата IAT через UDRL.
  • Некоторые сборки полагаются на Environment.Exit() для завершения выполнения. Это помешает фазе очистки загрузчика, но вы всё ещё можете отключить именованный канал с помощью jobkill.
  • Раскомментируйте строки 3 или 4 в scmain.c, чтобы включить режимы ошибок или подробного вывода соответственно. По умолчанию они отключены для уменьшения размера шеллкода.

Ссылки

Этот проект был бы невозможен без следующих проектов:

  • Определения и реализация, связанные с CLR — https://github.com/TheWover/donut
  • Интерфейс заданий Beacon и структура проекта — https://github.com/SecIdiot/netntlm

Другие функции и вдохновение были взяты из следующих ресурсов:

  • https://github.com/med0x2e/ExecuteAssembly
  • https://github.com/anthemtotheego/InlineExecute-Assembly
  • https://www.mdsec.co.uk/2020/08/massaging-your-clr-preventing-environment-exit-in-in-process-net-assemblies
Скачать инструмент