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

Продвинутый обход 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, что позволяет изучить весь конвейер без поставки деструктивного или постэксплуатационного поведения.
onnxruntime от Microsoft. Это делает ONNX-артефакт активной частью конвейера, а не декоративным файлом, как прежняя крошечная MLP.MachineGuid целевой системы, Volume Serial Number и SID текущего пользователя.wasm3. C++-приложение-хост выступает лишь в роли загрузчика и моста API, предоставляя безопасные хост-функции WASM-песочнице.float32. Хост извлекает это хранилище из внедрённых байтов модели, проверяет его подлинность и только затем восстанавливает демонстрационный ключевой материал.heartbeat_ack и set_status, демонстрируя жизнеспособность канала без включения произвольного выполнения команд.
Смотрите 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 перед сборкой:
Зависимости Python:
py -m pip install onnx numpy cryptography
Целевая платформа Rust:
rustup target add wasm32-unknown-unknown
CMake-файл ожидает дерево исходного кода/сборки ONNX Runtime в ./onnxruntime и связывает статические компонентные библиотеки из:
onnxruntime/build/Windows/Release/Releaseonnxruntime/build/Windows/Release/vcpkg_installed/x64-windows-static-md/libИз Developer PowerShell для VS 2022 соберите ONNX Runtime следующим образом:
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-устройства:
python build.py fingerprint --show-components
Используйте вторую выведенную строку в качестве значения --trigger.
Соберите Rust WebAssembly-модуль:
cargo build --manifest-path wasm_license_module/Cargo.toml --target wasm32-unknown-unknown --release
Сгенерируйте assets/model.onnx и assets/license_module.wasm.aes: