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

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

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

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

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

Категории

Все категории
Loading categories
execute-assembly-pico — PICO для Crystal Palace, который реализует хостинг CLR для выполнения .NET-сборки в памяти. | Kitploit
Инструменты/GitHubGitHub/ofasgard/execute-assembly-pico
Шелл-кодПост-эксплуатацияТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubofasgard/execute-assembly-pico

execute-assembly-pico

PICO для Crystal Palace, который реализует хостинг CLR для выполнения .NET-сборки в памяти.

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

Популярное

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

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

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

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

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

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

PICO для Crystal Palace, реализующий нативное размещение CLR для выполнения добавленной .NET-сборки в памяти, с использованием той же техники, что и генератор шеллкода donut. Это позволяет загружать .NET-инструменты, такие как Rubeus или Seatbelt, из позиционно-независимого кода, не сбрасывая их на диск.

Скриншот PICO в действии: выполнение добавленной сборки Seatbelt

Сборка

Вам понадобятся MinGW GCC, утилита zip и исполняемые файлы CPL, необходимые для компоновки проекта. Измените config.spec, чтобы указать .NET-сборку, которую вы хотите связать с проектом, и аргументы командной строки, которые нужно передать. Измените Makefile, чтобы указать расположение crystalpalace.jar.

Чтобы собрать PICO отдельно (в формате COFF), выполните make pico. Чтобы собрать пример раннера и слинковать его с PICO, выполните make runner.

Пример раннера записывается в out/runner.bin. Конфигурация по умолчанию вызывает добавленную сборку Rubeus для выполнения "asktgt" с некоторыми стандартными тестовыми учётными данными при его запуске:

Скриншот PICO в действии: выполнение добавленной сборки Rubeus

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

Сигнатура точки входа PICO выглядит следующим образом:

root@kitploit:~
HRESULT (*EXECUTE_ASSEMBLY_PICO)(char *assembly, size_t assembly_len, WCHAR *argv[], int argc);

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

Перехват вывода

Этот PICO просто вызывает сборку с переданными вами аргументами. Он не предпринимает никаких попыток перехватить вывод.

Если вам нужно передавать входные данные через STDIN или перехватывать вывод из STDOUT, измените свой загрузчик, чтобы использовать вызовы WIN32 API, такие как CreatePipe() и SetStdHandle(), и подключите стандартные устройства ввода-вывода вашего процесса к анонимному каналу. Затем вы сможете читать из него и писать в него как обычно.

Благодарности

  • Raphael Mudge за Crystal Palace и LibTCG.
  • XPNSec за этот gist, который помог мне понять базовый процесс размещения CLR.
  • TheWover за генератор/загрузчик Donut. Я широко использовал его реализацию выполнения сборки в памяти и напрямую применил clr.h в PICO.
Скачать инструмент