Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Project-Onyx — AI 텔레메트리 스푸핑 및 WASM 샌드박싱을 통한 고급 EDR 우회. Project Onyx는 최신 EDR 시스템에 대한 고급 우회 기술을 시연하도록 설계된 PoC 레드 팀 파이프라인입니다. 기존의 서명 기반 난독화에서 벗어나 동작 위장 및 엄격한 환경 키잉으로 전환합니다. | Kitploit
도구/GitHubGitHub/x-3306/project-onyx
Reverse EngineeringShellcodeSteganographyCryptographyCommand and ControlLearning & EducationRed TeamingPayload DevelopmentAI Security
GitHubx-3306/project-onyx

Project-Onyx

AI 텔레메트리 스푸핑 및 WASM 샌드박싱을 통한 고급 EDR 우회. Project Onyx는 최신 EDR 시스템에 대한 고급 우회 기술을 시연하도록 설계된 PoC 레드 팀 파이프라인입니다. 기존의 서명 기반 난독화에서 벗어나 동작 위장 및 엄격한 환경 키잉으로 전환합니다.

11516572개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

Banner

프로젝트 오닉스

AI 텔레메트리 스푸핑 및 WASM 샌드박싱을 통한 고급 EDR 우회. 프로젝트 오닉스는 최신 EDR 시스템에 대한 고급 우회 기술을 시연하기 위해 설계된 PoC 레드 팀 파이프라인입니다. 전통적인 시그니처 기반 난독화에서 벗어나 행동적 위장(behavioral camouflage)과 엄격한 환경 키잉(environmental keying)을 지향합니다.

이 프로젝트는 비전통적인 다중 계층 실행 파이프라인을 연구하는 개념 증명 레드 팀 연구입니다. 아키텍처는 다섯 가지 뚜렷한 기술을 연결합니다: AI 텔레메트리 위장, 하드웨어 기반 환경 키잉, ONNX 가중치 스테가노그래피, 인메모리 WebAssembly 샌드박싱, 다운링크 모델 업데이트를 통한 Dead-Drop C2 --> 하나의 기능적 전달 체인으로 이어집니다.

프로젝트 오닉스는 실제 운영 중인 EDR 시스템을 우회할 수 있다고 주장하지 않습니다. 이는 아키텍처 스케치입니다: 각 구성 요소는 체인의 일부로 구현되어 기능하지만, 각 계층이 실제 방어 체계에 의미를 가지려면 전용 연구가 필요합니다. 프로젝트 오닉스는 그러한 탐구를 위한 구조화된 출발점으로 이해하는 것이 가장 좋습니다. 런타임 페이로드는 의도적으로 하트비트 비컨으로 제한되어, 파괴적이거나 사후 익스플로잇 행위 없이 전체 파이프라인을 검사할 수 있습니다.

핵심 개념 / 업데이트 = Project Onyx v2

  1. AI Decoy (행동적 위장): 이제 프로젝트 오닉스는 Hugging Face의 ONNX Model Zoo 미러에서 가져온 합법적인 SqueezeNet 1.0 ONNX 이미지 분류 모델을 포함합니다. WebAssembly 하트비트 모듈이 실행되기 전에, 호스트는 Microsoft의 onnxruntime을 사용하여 실제 텐서 추론 워크로드를 반복 실행합니다. 이로 인해 ONNX 아티팩트는 이전의 작은 MLP처럼 장식용 파일이 아니라 파이프라인의 활성 부분이 됩니다.
  2. 환경 키잉(Environmental Keying): 정확한 대상 머신에 접근하지 않고도 샌드박스 분석 및 리버스 엔지니어링의 난이도를 크게 높입니다. 복호화 키는 대상의 MachineGuid, Volume Serial Number, 현재 사용자 SID의 SHA-256 해시에서 동적으로 파생됩니다.
  3. WASM 샌드박싱: 실제 페이로드는 WebAssembly(WASM)로 컴파일되어 wasm3 인터프리터를 사용하여 전적으로 메모리 내에서 실행됩니다. 호스트 C++ 애플리케이션은 단순히 로더 및 API 브리지 역할을 하며, WASM 샌드박스에 안전한 호스트 함수들을 노출합니다.
  4. ONNX 가중치 볼트(Weight Vault): WebAssembly 하트비트 모듈을 복호화하는 데 필요한 AES-256 키 자료는 float32 ONNX 가중치의 최하위 가수 비트에 내장됩니다. 호스트는 내장된 모델 바이트에서 이 가중치 볼트를 추출하고 인증한 후에만 데모 키 자료를 복구합니다.
  5. 메타데이터 볼트 폴백: 호환성 및 빌드 시 검증을 위해 원래의 인증된 메타데이터 볼트가 남아 있습니다. 새 자산은 가중치 볼트를 선호하지만, 메타데이터 볼트는 검사 가능한 형태로 동일한 보호 자료를 문서화합니다.
  6. 다운링크 모델 업데이트를 통한 Dead-Drop C2: 파이프라인은 ONNX 모델 업데이트를 사용하는 은밀한 통신 채널을 시연합니다. 운영자는 파인튜닝 중에 자연스럽게 변경된 가중치의 LSB 내에 인증된 지시를 내장할 수 있습니다. 이러한 변경은 업데이트된 모델과 참조(기본) 모델 간의 델타 분석을 통해 식별됩니다. 안전한 PoC 범위를 유지하기 위해 런타임은 heartbeat_ack 및 set_status 지시만 엄격히 수락하여 임의 명령 실행 없이 채널의 실행 가능성을 입증합니다.

Project Onyx Chain

강력 권장

전체 엔드투엔드 기술 스케치는 docs/architecture.md를 참조하세요. (더 나은 이해를 위해 권장합니다.)

그리고 전체 과정: 제 실수, 진행하면서 고려한 개념 및 아이디어, 그리고 Project Onyx를 구축하면서 직면한 아키텍처 트레이드오프에 대한 내용은 Medium에서 확인하세요.

법적 고지

이 프로젝트는 교육 목적, 보안 연구, 그리고 허가된 레드 팀 운영을 위해서만 제작되었습니다.

이 저장소(Project Onyx)에 시연된 기술은 보안 전문가들이 고급 우회 방법을 이해하고 엔드포인트 방어(EDR/XDR)를 개선하는 데 도움을 주기 위한 것입니다.

소유하지 않거나 명시적인 서면 허가를 받지 않은 시스템이나 네트워크에서 이 소프트웨어를 사용하지 마십시오.

이 프로젝트의 저자(X-3306)는 어떠한 책임도 지지 않으며, 이 소프트웨어의 사용으로 인한 오용, 손해 또는 불법 활동에 대해 책임을 지지 않습니다. 이 코드를 다운로드, 컴파일 또는 사용함으로써 귀하는 자신의 행동에 대한 전적인 책임을 진다는 데 동의합니다.

저장소 구조

  • DiagnosticsTool.cpp - C++ Windows 호스트 및 Wasm3/ONNX 통합.
  • DiagnosticsTool.rc / resource.h - 생성된 자산에 대한 리소스 바인딩.
  • build.py - 핑거프린팅, ONNX 미끼 생성, 가중치 볼트 내장, 메타데이터 볼트 호환성, 다운링크 모델 업데이트를 통한 Dead-Drop C2, WASM 암호화를 위한 도우미.
  • wasm_license_module/ - WebAssembly 하트비트 모듈용 Rust 소스.
  • wasm3/source/ - CMake 빌드에 필요한 최소화된 vendored Wasm3 소스.
  • assets/README2.md - 생성된 자산 형식.
  • docs/architecture.md - 전체 런타임 체인 및 아키텍처 노트.

전제 조건

빌드하기 전에 Windows에 다음을 설치하십시오:

  • C++를 사용한 데스크톱 개발 워크로드가 포함된 Visual Studio 2022.
  • 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 파일은 ./onnxruntime에 ONNX Runtime 소스/빌드 트리가 있다고 가정하며, 다음에서 정적 구성 요소 라이브러리를 링크합니다:

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

VS 2022용 개발자 PowerShell에서 다음과 같이 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 파일을 링크하며 최종 실행 파일은 dumpbin /DEPENDENTS에 onnxruntime.dll이 표시되지 않아야 합니다.

자산 생성

현재 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
  • 라이선스: Hugging Face 모델 카드의 Apache-2.0
  • 입력: data_0, float[1, 3, 224, 224]
  • 출력: softmaxout_1, float[1, 1000, 1, 1]
  • 크기: 약 4.95 MB
  • float32 가중치: 약 123만 개

번들된 기본 모델을 가져오거나 확인합니다:

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

build.py build는 이 실제 모델을 복사하고 Project Onyx 메타데이터를 추가하며, 인증된 ONNX 가중치 볼트를 float32 초기화 변수의 LSB에 내장하고 최종 참조 모델을 assets/model.onnx에 씁니다.

모델 업데이트 다운링크를 통한 하트비트 전용 Dead-Drop C2

추가 다운링크는 정상적인 ONNX 모델 업데이트가 인증된 작은 제어 신호를 간단한 PoC로 전달할 수 있는지 테스트하기 위한 연구 확장입니다. 의도적으로 두 가지 안전한 지시로 제한됩니다:

  • heartbeat_ack - 런타임 하트비트 상태를 heartbeat_ack로 변경합니다.
  • set_status - 런타임 하트비트 상태를 운영자가 선택한 안전한 문자열(예: 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

Webhook 및 모델 구성

예를 들어 공개 릴리스 자산과 같은 원시 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는 볼트 해제 경로가 계속되기 전에 실행되는 실제 ONNX Runtime 추론 횟수를 제어합니다. PROJECT_ONYX_REQUIRE_ONNX_TELEMETRY=1은 텔레메트리 실패를 하드 실패로 전환하며, 이는 ONNX 단계가 건너뛰어지지 않는지 확인하는 데 유용합니다. PROJECT_ONYX_LAB_OUTPUT_PATH는 웹훅 없이 실험실 확인을 위해 최종 하트비트 JSON을 로컬 파일에 씁니다.

이 저장소는 GitHub에 충분히 작으면서도 여전히 합법적인 훈련된 신경망이기 때문에 실제 SqueezeNet 참조 모델을 제공합니다. 더 강력한 연구 아티팩트를 위해서는 실제 파인튜닝 또는 다른 정상적인 모델 유지 관리 프로세스를 통해 업데이트된 모델을 생성하십시오. 그러면 다운링크 임베더는 참조 모델에 비해 이미 변경된 가중치로 비트 변경을 제한할 수 있습니다. 이것이 "파인튜닝 노이즈 내에 숨기기" 아이디어의 실용적인 버전이며, 전체 사이드 프로젝트 링크: https://github.com/X-3306/ONNXStego

빠른 실험실 검증을 위해 downlink-build는 참조 모델에서 시드된 무작위 파인튜닝 유사 커버 업데이트를 합성할 수 있습니다. 이는 엔드투엔드 메커니즘을 입증하고 LSB 레코드에 대한 자연적인 후보 가중치를 제공하지만, 실제 작업, 데이터 세트 및 파인튜닝 절차에 대한 경험적 평가를 대체하지는 않습니다.

최종 빌드

릴리스 실행 파일을 구성하고 빌드합니다:

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 모듈은 하트비트 JSON을 포맷하고 반환하는 간단한 PoC로 제한됩니다. 추가 모델 업데이트 다운링크는 heartbeat_ack / set_status 화이트리스트를 통해서만 하트비트 상태를 변경할 수 있습니다. 이 프로젝트에 대한 흥미로운 아이디어가 있으면 언제든지 연락주세요: [email protected]

Project Onyx Daily Trend Project Onyx Weekly Trend

도구 다운로드