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

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

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

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

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

Категории

Все категории
Loading categories
Project-Onyx — Продвинутый обход EDR с помощью спуфинга AI-телеметрии и WASM-песочницы. Project Onyx — это PoC-конвейер Red Team, предназначенный для демонстрации продвинутых техник обхода современных EDR-систем. Он отходит от традиционной сигнатурной обфускации в сторону поведенческой маскировки и строгой привязки к окружению. | Kitploit
Инструменты/GitHubGitHub/x-3306/project-onyx
Обратная инженерияШелл-кодСтеганографияКриптографияКомандование и УправлениеОбучение и ОбразованиеRed TeamingРазработка Полезной НагрузкиБезопасность ИИ
GitHubx-3306/project-onyx

Project-Onyx

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

Популярное

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

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

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

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

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

Описание

Продвинутый обход EDR с помощью спуфинга AI-телеметрии и WASM-песочницы. Project Onyx — это PoC-конвейер Red Team, предназначенный для демонстрации продвинутых техник обхода современных EDR-систем. Он отходит от традиционной сигнатурной обфускации в сторону поведенческой маскировки и строгой привязки к окружению.

Поделиться

Banner

Project Onyx

Продвинутый обход EDR с помощью подмены AI-телеметрии и WASM-песочницы. Project Onyx — это PoC-конвейер для Red Team, предназначенный для демонстрации продвинутых техник обхода современных EDR-систем. Он отходит от традиционной сигнатурной обфускации в сторону поведенческой маскировки и строгой привязки к окружению.

Этот проект — исследование уровня proof-of-concept в области red team, изучающее нетрадиционный многоуровневый конвейер исполнения. Архитектура объединяет пять различных техник: маскировку AI-телеметрии, привязку к аппаратному окружению, стенографию в весах ONNX, WebAssembly-песочницу в памяти и Dead-Drop C2 через нисходящие обновления модели --> в единую функциональную цепочку доставки.

Project Onyx не претендует на рабочий обход промышленных EDR-систем. Это архитектурный набросок: каждый компонент реализован и функционален в рамках цепочки, но каждый слой потребует отдельного исследования, чтобы стать значимым против реальных защит. Project Onyx лучше всего воспринимать как структурированную отправную точку для такого рода исследований. Исполняемая нагрузка намеренно ограничена маяком-heartbeat, что позволяет изучить весь конвейер без поставки деструктивного или постэксплуатационного поведения.

Основные концепции / ОБНОВЛЕНИЕ = Project Onyx v2

  1. AI-приманка (поведенческая маскировка): Теперь Project Onyx внедряет легитимную модель классификации изображений SqueezeNet 1.0 ONNX, полученную из зеркала ONNX Model Zoo на Hugging Face. Перед выполнением WebAssembly-модуля heartbeat хост выполняет многократные реальные тензорные вычисления (inference) с использованием onnxruntime от Microsoft. Это делает ONNX-артефакт активной частью конвейера, а не декоративным файлом, как прежняя крошечная MLP.
  2. Привязка к окружению (Environmental Keying): Это значительно поднимает планку для анализа в песочнице и реверс-инжиниринга без доступа к конкретной целевой машине. Ключи расшифровки динамически выводятся из SHA-256-хэша MachineGuid целевой системы, Volume Serial Number и SID текущего пользователя.
  3. WASM-песочница: Фактическая нагрузка компилируется в WebAssembly (WASM) и полностью выполняется в памяти с помощью интерпретатора wasm3. C++-приложение-хост выступает лишь в роли загрузчика и моста API, предоставляя безопасные хост-функции WASM-песочнице.
  4. Хранилище в весах ONNX (ONNX Weight Vault): Ключевой материал AES-256, необходимый для расшифровки WebAssembly-модуля heartbeat, внедряется в наименее значимые биты мантиссы весов ONNX типа float32. Хост извлекает это хранилище из внедрённых байтов модели, проверяет его подлинность и только затем восстанавливает демонстрационный ключевой материал.
  5. Резервное хранилище метаданных (Metadata Vault Fallback): Исходное аутентифицированное хранилище метаданных сохранено для совместимости и проверки на этапе сборки. Новые артефакты предпочитают хранилище в весах, тогда как хранилище метаданных документирует тот же защищённый материал в более удобной для инспекции форме.
  6. Dead-Drop C2 через нисходящие обновления модели: Конвейер демонстрирует скрытый канал связи с использованием обновлений ONNX-моделей. Оператор может внедрить аутентифицированную директиву в наименее значимые биты (LSB) весов, которые естественным образом изменились в ходе тонкой настройки (fine-tuning). Эти изменения выявляются с помощью дельта-анализа между обновлённой моделью и эталонной (базовой) моделью. Чтобы сохранить безопасные рамки PoC, рантайм строго принимает только директивы heartbeat_ack и set_status, демонстрируя жизнеспособность канала без включения произвольного выполнения команд.

Project Onyx Chain

Настоятельно рекомендуется

Смотрите docs/architecture.md — ПОЛНУЮ сквозную техническую схему. (Рекомендую для лучшего понимания).

а также весь процесс: мои ошибки, концепции и идеи, которые я рассматривал по ходу работы, и архитектурные компромиссы, с которыми я столкнулся при создании Project Onyx --> Medium

Правовой отказ от ответственности

Этот проект создан исключительно в образовательных целях, для исследований в области безопасности и авторизованных операций Red Team.

Техники, продемонстрированные в этом репозитории (Project Onyx), предназначены для того, чтобы помочь специалистам по безопасности понять продвинутые методы обхода и улучшить защиту конечных точек (EDR/XDR).

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

Автор этого проекта (X-3306) не принимает на себя ответственность и не несёт ответственности за любое неправомерное использование, ущерб или незаконные действия, вызванные использованием этого программного обеспечения. Загружая, компилируя или используя этот код, вы соглашаетесь нести полную ответственность за свои действия.

Структура репозитория

  • DiagnosticsTool.cpp — C++ Windows-хост и интеграция Wasm3/ONNX.
  • DiagnosticsTool.rc / resource.h — привязки ресурсов для генерируемых артефактов.
  • build.py — вспомогательный инструмент для снятия отпечатка системы (fingerprinting), генерации ONNX-приманки, внедрения хранилища в веса, совместимости с хранилищем метаданных, Dead-Drop C2 через нисходящие обновления модели и шифрования WASM.
  • wasm_license_module/ — исходный код на Rust для WebAssembly-модуля heartbeat.
  • wasm3/source/ — минимальный включённый в проект (vendored) исходный код Wasm3, необходимый для сборки через CMake.
  • assets/README2.md — форматы генерируемых артефактов.
  • docs/architecture.md — полная цепочка выполнения и заметки по архитектуре.

Предварительные требования

Установите следующее в Windows перед сборкой:

  • Visual Studio 2022 с компонентом «Разработка классических приложений на C++».
  • CMake 3.25 или новее.
  • Python 3.10 или новее.
  • Rustup и Cargo.
  • Git.

Зависимости Python:

root@kitploit:~
py -m pip install onnx numpy cryptography

Целевая платформа Rust:

root@kitploit:~
rustup target add wasm32-unknown-unknown

Статическая сборка ONNX Runtime

CMake-файл ожидает дерево исходного кода/сборки ONNX Runtime в ./onnxruntime и связывает статические компонентные библиотеки из:

  • onnxruntime/build/Windows/Release/Release
  • onnxruntime/build/Windows/Release/vcpkg_installed/x64-windows-static-md/lib

Из Developer PowerShell для VS 2022 соберите ONNX Runtime следующим образом:

root@kitploit:~
git clone --recursive https://github.com/microsoft/onnxruntime.git onnxruntime
.\onnxruntime\build.bat --config Release --parallel --compile_no_warning_as_error --skip_tests --build_shared_lib --use_vcpkg --cmake_extra_defines VCPKG_TARGET_TRIPLET=x64-windows-static-md onnxruntime_BUILD_UNIT_TESTS=OFF

Сгенерированный onnxruntime.dll не поставляется вместе с Project Onyx. Project Onyx связывается со статическими компонентными .lib-файлами, и в итоговом исполняемом файле onnxruntime.dll не должен присутствовать в dumpbin /DEPENDENTS.

Генерация артефактов

Получите хэш-отпечаток для текущего Windows-устройства:

root@kitploit:~
python build.py fingerprint --show-components

Используйте вторую выведенную строку в качестве значения --trigger.

Соберите Rust WebAssembly-модуль:

root@kitploit:~
cargo build --manifest-path wasm_license_module/Cargo.toml --target wasm32-unknown-unknown --release

Сгенерируйте assets/model.onnx и assets/license_module.wasm.aes:

root@kitploit:~
python build.py build `
  --trigger "<64-char lowercase fingerprint hash>" `
  --secret "<exactly-32-demo-key-chars>" `
  --model-output assets/model.onnx `
  --wasm-input wasm_license_module/target/wasm32-unknown-unknown/release/wasm_license_module.wasm `
  --wasm-output assets/license_module.wasm.aes

Проверьте хранилища ONNX:

root@kitploit:~
python build.py verify --trigger "<64-char lowercase fingerprint hash>" --model assets/model.onnx

Команда проверки проверяет как устаревшее хранилище метаданных, так и скрытое хранилище в весах ONNX. Оба должны открывать один и тот же 32-символьный демонстрационный ключевой материал.

Реальная ONNX-модель

Основной носитель по умолчанию — SqueezeNet 1.0 opset 12:

  • источник: onnxmodelzoo/squeezenet1.0-12
  • файл: assets/base/squeezenet1.0-12.onnx
  • лицензия: Apache-2.0 на карточке модели Hugging Face
  • вход: data_0, float[1, 3, 224, 224]
  • выход: softmaxout_1, float[1, 1000, 1, 1]
  • размер: около 4.95 МБ
  • весов float32: около 1.23 млн

Загрузите или проверьте включённую базовую модель:

root@kitploit:~
python build.py fetch-model

build.py build копирует эту реальную модель, добавляет метаданные Project Onyx, внедряет аутентифицированное хранилище в веса ONNX в наименее значимые биты (LSB) его инициализаторов float32 и записывает итоговую эталонную модель в assets/model.onnx.

Dead-Drop C2 только с heartbeat через нисходящие обновления модели

Дополнительный нисходящий канал — это исследовательское расширение для проверки того, может ли обычное обновление ONNX-модели переносить аутентифицированный крошечный управляющий сигнал в качестве простого PoC. Он намеренно ограничен двумя безопасными директивами:

  • heartbeat_ack — изменяет статус heartbeat в рантайме на heartbeat_ack.
  • set_status — изменяет статус heartbeat в рантайме на выбранную оператором безопасную строку, например lab_downlink_ack.

Создайте лабораторную модель обновления:

root@kitploit:~
python build.py downlink-build `
  --trigger "<64-char lowercase fingerprint hash>" `
  --reference-model assets/model.onnx `
  --output assets/downlink_update.onnx `
  --command set_status `
  --status lab_C2_test `
  --expires-unix 4102444800 `
  --cover-seed 2026 `
  --cover-fraction 0.08 `
  --cover-noise-scale 0.00004

Проверьте её перед использованием:

root@kitploit:~
python build.py downlink-verify `
  --trigger "<64-char lowercase fingerprint hash>" `
  --reference-model assets/model.onnx `
  --model assets/downlink_update.onnx

Конфигурация вебхука и модели

Укажите его на сырой HTTPS-артефакт модели, например на публичный файл релиза:

root@kitploit:~
$env:PROJECT_ONYX_DOWNLINK_MODEL_URL = "https://huggingface.co/<profile>/<repo>/resolve/main/downlink_update.onnx"
.\build\Release\ProjectOnyx.exe

Или используйте вебхук Slack/Teams:

Project Onyx не содержит встроенного реального URL вебхука. Для авторизованных лабораторных запусков задайте:

Переменная должна быть видима процессу, запускающему ProjectOnyx.exe. Если вы запускаете исполняемый файл двойным щелчком, сначала задайте её как пользовательскую или системную переменную окружения, затем откройте новый терминал или перезапустите Explorer и запустите нативный хост с локальной моделью обновления:

root@kitploit:~
$env:PROJECT_ONYX_DOWNLINK_MODEL_PATH = "$($PWD.Path)\assets\downlink_update.onnx"; $env:PROJECT_ONYX_SLACK_WEBHOOK_URL = "https://hooks.slack.com/services/..."; .\build\Release\ProjectOnyx.exe

(Можно также использовать Teams)

Рантайм выполняет одно получение/чтение при запуске. Он не опрашивает сервер, не сохраняет данные, не выполняет загруженный код и не обрабатывает произвольные команды. Недействительные, просроченные, посторонние или неаутентифицированные обновления модели игнорируются.

Параметры проверки рантайма:

root@kitploit:~
$env:PROJECT_ONYX_ONNX_TELEMETRY_PASSES = "24"
$env:PROJECT_ONYX_REQUIRE_ONNX_TELEMETRY = "1"
$env:PROJECT_ONYX_LAB_OUTPUT_PATH = "$($PWD.Path)\assets\lab_heartbeat.json"

ВАЖНО, прочтите: эталонная модель, тонкая настройка и естественные дельты

PROJECT_ONYX_ONNX_TELEMETRY_PASSES управляет количеством реальных вычислений (inference) ONNX Runtime, выполняемых перед продолжением пути разблокировки хранилища. PROJECT_ONYX_REQUIRE_ONNX_TELEMETRY=1 превращает сбои телеметрии в жёсткие сбои, что полезно при проверке того, что этап ONNX не пропускается. PROJECT_ONYX_LAB_OUTPUT_PATH записывает итоговый heartbeat-JSON в локальный файл для лабораторной проверки без необходимости вебхука.

Этот репозиторий поставляется с реальной эталонной моделью SqueezeNet, потому что она достаточно мала для GitHub и при этом является легитимно обученной нейронной сетью. Для более сильного исследовательского артефакта создайте обновлённую модель с помощью реальной тонкой настройки или другого обычного процесса обслуживания модели. Тогда встраиватель нисходящего канала сможет ограничить изменения битов только теми весами, которые уже изменились относительно эталонной модели. Это практическая версия идеи «спрятаться в шуме тонкой настройки»; ссылка на полноценный сайд-проект: https://github.com/X-3306/ONNXStego

Для быстрой лабораторной проверки downlink-build может синтезировать из эталонной модели детерминированное (с зерном) случайное обновление-обёртку, имитирующее тонкую настройку. Это подтверждает сквозную работу механики и даёт естественные веса-кандидаты для LSB-записи, НО не заменяет эмпирическую оценку на реальной задаче, наборе данных и процедуре тонкой настройки.

Финальная сборка

Настройте и соберите release-исполняемый файл:

root@kitploit:~
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release

Итоговый исполняемый файл:

root@kitploit:~
build\Release\ProjectOnyx.exe

Необязательная проверка зависимостей:

root@kitploit:~
& "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x64\dumpbin.exe" /DEPENDENTS build\Release\ProjectOnyx.exe

Ожидается: отсутствие зависимости от onnxruntime.dll.

Область применения

Демо не включает персистентность, повышение привилегий, доступ к учётным данным, горизонтальное перемещение, произвольное выполнение команд, деструктивное поведение или встроенные приватные токены вебхуков. WebAssembly-модуль ограничен форматированием и возвратом heartbeat-JSON в качестве простого PoC. Дополнительный нисходящий канал обновлений модели может изменять только этот статус heartbeat через белый список heartbeat_ack / set_status. Если у вас есть интересные идеи для этого проекта, не стесняйтесь обращаться: [email protected]

Project Onyx Daily Trend Project Onyx Weekly Trend

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