
AI टेलीमेट्री स्पूफिंग और WASM सैंडबॉक्सिंग के माध्यम से उन्नत EDR चोरी। प्रोजेक्ट Onyx एक PoC रेड टीम पाइपलाइन है जिसे आधुनिक EDR सिस्टम के खिलाफ उन्नत चोरी तकनीकों का प्रदर्शन करने के लिए डिज़ाइन किया गया है। यह पारंपरिक हस्ताक्षर-आधारित अस्पष्टता से व्यवहारिक छलावरण और सख्त पर्यावरणीय कुंजीकरण की ओर स्थानांतरित होता है।

AI टेलीमेट्री स्पूफिंग और WASM सैंडबॉक्सिंग के माध्यम से उन्नत EDR चोरी। प्रोजेक्ट ओनिक्स एक PoC रेड टीम पाइपलाइन है जिसे आधुनिक EDR सिस्टम के विरुद्ध उन्नत चोरी तकनीकों का प्रदर्शन करने के लिए डिज़ाइन किया गया है। यह पारंपरिक हस्ताक्षर-आधारित अस्पष्टता से हटकर व्यवहारिक छलावरण और सख्त पर्यावरणीय कुंजीकरण की ओर बढ़ता है।
यह प्रोजेक्ट प्रूफ-ऑफ-कॉन्सेप्ट रेड टीम अनुसंधान है, एक अपरंपरागत बहु-स्तरीय निष्पादन पाइपलाइन का अध्ययन। आर्किटेक्चर पाँच अलग-अलग तकनीकों को जोड़ता है: AI टेलीमेट्री छलावरण, हार्डवेयर-बद्ध पर्यावरण कुंजीकरण, ONNX भार स्टेग्नोग्राफ़ी, इन-मेमोरी WebAssembly सैंडबॉक्सिंग और डाउनलिंक मॉडल अपडेट के माध्यम से डेड-ड्रॉप C2 → एक एकल कार्यात्मक वितरण श्रृंखला में।
प्रोजेक्ट ओनिक्स उत्पादन EDR सिस्टम के कार्यशील बायपास का दावा नहीं करता है। यह एक वास्तुशिल्प रेखाचित्र है: प्रत्येक घटक श्रृंखला के भाग के रूप में कार्यान्वित और कार्यात्मक है, लेकिन प्रत्येक परत को वास्तविक दुनिया की सुरक्षा के विरुद्ध सार्थक बनने के लिए समर्पित शोध की आवश्यकता होगी। प्रोजेक्ट ओनिक्स को उस प्रकार के अन्वेषण के लिए एक संरचित प्रारंभिक बिंदु के रूप में समझा जाना चाहिए। रनटाइम पेलोड जानबूझकर एक हार्टबीट बीकन तक सीमित है, जिससे विनाशकारी या पोस्ट-एक्सप्लॉइटेशन व्यवहार भेजे बिना पूरी पाइपलाइन की जांच की जा सके।
onnxruntime का उपयोग करके वास्तविक टेंसर इनफ़रेंस वर्कलोड को बार-बार चलाता है। यह ONNX आर्टिफैक्ट को पिछले छोटे MLP जैसे सजावटी फ़ाइल के बजाय पाइपलाइन का एक सक्रिय भाग बनाता है।MachineGuid, Volume Serial Number और वर्तमान उपयोगकर्ता के SID के SHA-256 हैश से गतिशील रूप से प्राप्त होती हैं।wasm3 इंटरप्रेटर का उपयोग करके पूरी तरह से मेमोरी में निष्पादित किया जाता है। होस्ट C++ एप्लिकेशन केवल एक लोडर और API ब्रिज के रूप में कार्य करता है, WASM सैंडबॉक्स को सुरक्षित होस्ट फ़ंक्शन उजागर करता है।float32 ONNX भार के कम से कम महत्वपूर्ण मेंटिसा बिट्स में एम्बेडेड है। होस्ट इस वेट वॉल्ट को एम्बेडेड मॉडल बाइट्स से निकालता है, इसे प्रमाणित करता है, और उसके बाद ही डेमो कुंजी सामग्री को पुनर्प्राप्त करता है।heartbeat_ack और set_status निर्देशों को स्वीकार करता है, जो मनमाना कमांड निष्पादन को सक्षम किए बिना चैनल की व्यवहार्यता प्रदर्शित करता है।
पूर्ण एंड-टू-एंड तकनीकी रेखाचित्र के लिए docs/architecture.md देखें। (बेहतर समझ के लिए मैं अनुशंसा करता हूँ।)
और पूरी प्रक्रिया भी: मेरी गलतियाँ, वे अवधारणाएँ और विचार जो मैंने रास्ते में विचार किए, और प्रोजेक्ट ओनिक्स बनाते समय मेरे सामने आए वास्तुशिल्प ट्रेडऑफ़ → Medium
यह प्रोजेक्ट केवल शैक्षिक उद्देश्यों, सुरक्षा अनुसंधान और अधिकृत रेड टीम संचालन के लिए बनाया गया है।
इस रिपॉजिटरी (प्रोजेक्ट ओनिक्स) में प्रदर्शित तकनीकों का उद्देश्य सुरक्षा पेशेवरों को उन्नत चोरी विधियों को समझने और एंडपॉइंट सुरक्षा (EDR/XDR) में सुधार करने में मदद करना है।
इस सॉफ़्टवेयर का उपयोग किसी भी सिस्टम या नेटवर्क पर न करें जिसके आप मालिक नहीं हैं या जिसके परीक्षण के लिए आपके पास स्पष्ट, लिखित अनुमति नहीं है।
इस प्रोजेक्ट के लेखक (X-3306) कोई दायित्व नहीं मानते हैं और इस सॉफ़्टवेयर के उपयोग से होने वाले किसी भी दुरुपयोग, क्षति या अवैध गतिविधियों के लिए जिम्मेदार नहीं हैं। इस कोड को डाउनलोड करके, संकलित करके या उपयोग करके, आप अपने कार्यों की पूरी जिम्मेदारी लेने के लिए सहमत हैं।
DiagnosticsTool.cpp - C++ Windows होस्ट और Wasm3/ONNX एकीकरण।DiagnosticsTool.rc / resource.h - उत्पन्न संपत्तियों के लिए संसाधन बाइंडिंग।build.py - फ़िंगरप्रिंटिंग, ONNX बैट जनरेशन, वेट-वॉल्ट एम्बेडिंग, मेटाडेटा-वॉल्ट संगतता, डाउनलिंक मॉडल अपडेट के माध्यम से डेड-ड्रॉप C2 और WASM एन्क्रिप्शन के लिए सहायक।wasm_license_module/ - WebAssembly हार्टबीट मॉड्यूल के लिए Rust स्रोत।wasm3/source/ - CMake बिल्ड के लिए आवश्यक न्यूनतम वेंडर्ड Wasm3 स्रोत।assets/README2.md - उत्पन्न संपत्ति प्रारूप।docs/architecture.md - पूर्ण रनटाइम श्रृंखला और आर्किटेक्चर नोट्स।बिल्ड करने से पहले Windows पर इन्हें स्थापित करें:
Python निर्भरताएँ:
py -m pip install onnx numpy cryptography
Rust लक्ष्य:
rustup target add wasm32-unknown-unknown
CMake फ़ाइल ./onnxruntime पर एक ONNX रनटाइम स्रोत/बिल्ड ट्री की अपेक्षा करती है और
निम्न से स्थैतिक घटक पुस्तकालयों को लिंक करती है:
onnxruntime/build/Windows/Release/Releaseonnxruntime/build/Windows/Release/vcpkg_installed/x64-windows-static-md/libVS 2022 के लिए डेवलपर PowerShell से, ONNX रनटाइम को इस प्रकार बनाएँ:
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 प्रोजेक्ट ओनिक्स के साथ शिप नहीं किया गया है। प्रोजेक्ट ओनिक्स
स्थैतिक घटक .lib फ़ाइलों को लिंक करता है और अंतिम निष्पादन योग्य में dumpbin /DEPENDENTS में onnxruntime.dll सूचीबद्ध नहीं होना चाहिए।
वर्तमान 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 उत्पन्न करें:
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 वॉल्ट सत्यापित करें:
python build.py verify --trigger "<64-char lowercase fingerprint hash>" --model assets/model.onnx
सत्यापन कमांड विरासत मेटाडेटा वॉल्ट और छिपे हुए ONNX वेट वॉल्ट दोनों की जाँच करता है। दोनों को समान 32-वर्ण डेमो कुंजी सामग्री को अनलॉक करना होगा।
डिफ़ॉल्ट वाहक SqueezeNet 1.0 opset 12 है:
onnxmodelzoo/squeezenet1.0-12assets/base/squeezenet1.0-12.onnxdata_0, float[1, 3, 224, 224]softmaxout_1, float[1, 1000, 1, 1]बंडल बेस मॉडल प्राप्त करें या सत्यापित करें:
python build.py fetch-model
build.py build इस वास्तविक मॉडल की प्रतिलिपि बनाता है, प्रोजेक्ट ओनिक्स मेटाडेटा जोड़ता है, प्रमाणित ONNX वेट वॉल्ट को इसके float32 प्रारंभकर्ता LSB में एम्बेड करता है, और अंतिम संदर्भ मॉडल को assets/model.onnx पर लिखता है।
अतिरिक्त डाउनलिंक यह परीक्षण करने के लिए एक शोध विस्तार है कि क्या एक सामान्य ONNX मॉडल अपडेट एक साधारण PoC के रूप में एक प्रमाणित, छोटा नियंत्रण संकेत ले जा सकता है। यह जानबूझकर दो सुरक्षित निर्देशों तक सीमित है:
heartbeat_ack - रनटाइम हार्टबीट स्थिति को heartbeat_ack में बदलता है।set_status - रनटाइम हार्टबीट स्थिति को ऑपरेटर द्वारा चुनी गई सुरक्षित स्ट्रिंग जैसे lab_downlink_ack में बदलता है।एक लैब अपडेट मॉडल बनाएँ:
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
उपयोग से पहले इसे सत्यापित करें:
python build.py downlink-verify `
--trigger "<64-char lowercase fingerprint hash>" `
--reference-model assets/model.onnx `
--model assets/downlink_update.onnx
इसे एक कच्चे HTTPS मॉडल आर्टिफैक्ट पर इंगित करें, उदाहरण के लिए एक सार्वजनिक रिलीज़ संपत्ति:
$env:PROJECT_ONYX_DOWNLINK_MODEL_URL = "https://huggingface.co/<profile>/<repo>/resolve/main/downlink_update.onnx"
.\build\Release\ProjectOnyx.exe
या वेबहुक Slack/Teams का उपयोग करें:
प्रोजेक्ट ओनिक्स एक वास्तविक वेबहुक URL एम्बेड नहीं करता है। अधिकृत लैब रन के लिए, सेट करें:
वेरिएबल ProjectOnyx.exe शुरू करने वाली प्रक्रिया को दिखाई देना चाहिए। यदि आप निष्पादन योग्य पर डबल-क्लिक करते हैं, तो पहले इसे उपयोगकर्ता या सिस्टम पर्यावरण चर के रूप में सेट करें, फिर एक नया टर्मिनल खोलें या एक्सप्लोरर को पुनरारंभ करें और स्थानीय अपडेट मॉडल के साथ नेटिव होस्ट चलाएँ:
$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 का भी उपयोग कर सकते हैं)
रनटाइम स्टार्टअप पर एक फ़ेच/रीड करता है। यह पोल नहीं करता, बना नहीं रहता, डाउनलोड किए गए कोड को निष्पादित नहीं करता, या मनमाने आदेशों को संसाधित नहीं करता। अमान्य, समाप्त, असंबंधित या अप्रमाणित मॉडल अपडेट को अनदेखा किया जाता है।
रनटाइम सत्यापन नॉब्स:
$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 रनटाइम इनफ़रेंस चलते हैं। PROJECT_ONYX_REQUIRE_ONNX_TELEMETRY=1 टेलीमेट्री विफलताओं को कठोर विफलताओं में बदल देता है, जो तब उपयोगी होता है जब यह सत्यापित किया जा रहा हो कि ONNX चरण को छोड़ा नहीं जा रहा है। PROJECT_ONYX_LAB_OUTPUT_PATH अंतिम हार्टबीट JSON को स्थानीय फ़ाइल में लिखता है ताकि वेबहुक की आवश्यकता के बिना लैब सत्यापन किया जा सके।
यह रिपॉजिटरी एक वास्तविक SqueezeNet संदर्भ मॉडल भेजती है क्योंकि यह GitHub के लिए पर्याप्त छोटा है जबकि अभी भी एक वैध प्रशिक्षित तंत्रिका नेटवर्क है। एक मजबूत शोध आर्टिफैक्ट के लिए, वास्तविक फाइन-ट्यूनिंग या किसी अन्य सामान्य मॉडल-रखरखाव प्रक्रिया के माध्यम से एक अपडेटेड मॉडल बनाएँ। डाउनलिंक एम्बेडर तब अपने बिट परिवर्तनों को उन भारों तक सीमित कर सकता है जो पहले से संदर्भ मॉडल के सापेक्ष बदल गए हैं। यह "फाइन-ट्यूनिंग शोर के अंदर छिपाने" विचार का व्यावहारिक संस्करण है, पूर्ण साइड-प्रोजेक्ट लिंक: https://github.com/X-3306/ONNXStego
त्वरित लैब सत्यापन के लिए, downlink-build संदर्भ मॉडल से एक बीजित यादृच्छिक फाइन-ट्यूनिंग जैसा कवर अपडेट संश्लेषित कर सकता है। यह एंड-टू-एंड यांत्रिकी को साबित करता है और LSB रिकॉर्ड के लिए प्राकृतिक उम्मीदवार भार देता है, लेकिन यह वास्तविक कार्य, डेटासेट और फाइन-ट्यूनिंग प्रक्रिया पर अनुभवजन्य मूल्यांकन का विकल्प नहीं है।
रिलीज़ निष्पादन योग्य को कॉन्फ़िगर और बनाएँ:
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
अंतिम निष्पादन योग्य है:
build\Release\ProjectOnyx.exe
वैकल्पिक निर्भरता जाँच:
& "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 मॉड्यूल एक साधारण PoC के रूप में हार्टबीट JSON को प्रारूपित करने और लौटाने तक सीमित है। अतिरिक्त मॉडल-अपडेट डाउनलिंक केवल heartbeat_ack / set_status व्हाइटलिस्ट के माध्यम से उस हार्टबीट स्थिति को बदल सकता है। यदि आपके पास इस प्रोजेक्ट के लिए कुछ दिलचस्प विचार हैं, तो संपर्क करने में संकोच न करें: [email protected]