Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Project-Onyx — Evasión avanzada de EDR mediante suplantación de telemetría de IA y sandboxing WASM. Project Onyx es un pipeline de Red Team PoC diseñado para demostrar técnicas avanzadas de evasión contra sistemas EDR modernos. Se aleja de la ofuscación tradicional basada en firmas para orientarse hacia el camuflaje conductual y el keying ambiental estricto. | Kitploit
Herramientas/GitHubGitHub/x-3306/project-onyx
Ingeniería InversaShellcodeEsteganografíaCriptografíaComando y ControlAprendizaje y EducaciónRed TeamingDesarrollo de PayloadsSeguridad de IA
GitHubx-3306/project-onyx

Project-Onyx

Ver Repositorio
1151658hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

Evasión avanzada de EDR mediante suplantación de telemetría de IA y sandboxing WASM. Project Onyx es un pipeline de Red Team PoC diseñado para demostrar técnicas avanzadas de evasión contra sistemas EDR modernos. Se aleja de la ofuscación tradicional basada en firmas para orientarse hacia el camuflaje conductual y el keying ambiental estricto.

Compartir

Banner

Proyecto Onyx

Evasion Avanzada de EDR mediante Suplantación de Telemetría de IA y Sandboxing WASM. Project Onyx es un pipeline PoC de Red Team diseñado para demostrar técnicas avanzadas de evasión contra sistemas EDR modernos. Se aleja del ofuscamiento tradicional basado en firmas hacia el camuflaje conductual y el keying estricto del entorno.

Este proyecto es una investigación de red team de prueba de concepto, que estudia un pipeline de ejecución multicapa no convencional. La arquitectura encadena cinco técnicas distintas: camuflaje de telemetría de IA, keying del entorno vinculado al hardware, esteganografía de pesos ONNX, sandboxing WebAssembly en memoria y C2 de Dead-Drop mediante actualizaciones de modelo descendentes (downlink) --> en una única cadena de entrega funcional.

Project Onyx no afirma ser un bypass funcional de sistemas EDR de producción. Es un boceto arquitectónico: cada componente está implementado y es funcional como parte de la cadena, pero cada capa requeriría investigación dedicada para ser significativa contra defensas del mundo real. Project Onyx se entiende mejor como un punto de partida estructurado para ese tipo de exploración. La carga útil en tiempo de ejecución está intencionalmente limitada a un beacon de heartbeat, permitiendo examinar todo el pipeline sin incluir comportamiento destructivo o de post-explotación.

Conceptos Clave / ACTUALIZACIÓN = Project Onyx v2

  1. Señuelo de IA (Camuflaje Conductual): Ahora, Project Onyx incrusta un modelo legítimo de clasificación de imágenes SqueezeNet 1.0 ONNX obtenido del espejo de ONNX Model Zoo de Hugging Face. Antes de que se ejecute el módulo heartbeat de WebAssembly, el host ejecuta cargas de trabajo repetidas de inferencia de tensores reales utilizando onnxruntime de Microsoft. Esto hace que el artefacto ONNX sea una parte activa del pipeline en lugar de un archivo decorativo como el anterior MLP pequeño.
  2. Keying del Entorno: Eleva significativamente el listón para el análisis en sandbox y la ingeniería inversa sin acceso a la máquina objetivo exacta. Las claves de descifrado se derivan dinámicamente del hash SHA-256 del MachineGuid del objetivo, el Volume Serial Number y el SID del usuario actual.
  3. Sandboxing WASM: La carga útil real se compila a WebAssembly (WASM) y se ejecuta completamente en memoria usando el intérprete wasm3. La aplicación host en C++ actúa simplemente como un cargador y puente de API, exponiendo funciones seguras del host al sandbox WASM.
  4. Bóveda de Pesos ONNX: El material clave AES-256 necesario para descifrar el módulo heartbeat de WebAssembly se incrusta en los bits menos significativos de la mantisa de los pesos ONNX float32. El host extrae esta bóveda de pesos de los bytes del modelo incrustado, la autentica, y solo entonces recupera el material clave de demostración.
  5. Bóveda de Metadatos de Respaldo: La bóveda de metadatos autenticada original permanece para compatibilidad y verificación en tiempo de compilación. Los nuevos activos prefieren la bóveda de pesos, mientras que la bóveda de metadatos documenta el mismo material protegido en una forma más inspeccionable.
  6. C2 de Dead-Drop mediante actualizaciones de modelo descendentes: El pipeline demuestra un canal de comunicación encubierto utilizando actualizaciones de modelo ONNX. Un operador puede incrustar una directiva autenticada dentro de los LSB de pesos que han cambiado naturalmente durante el fine-tuning. Estos cambios se identifican mediante análisis delta entre el modelo actualizado y el modelo de referencia (base). Para mantener un alcance seguro de PoC, el tiempo de ejecución acepta estrictamente solo las directivas heartbeat_ack y set_status, demostrando la viabilidad del canal sin permitir la ejecución arbitraria de comandos.

Project Onyx Chain

Altamente Recomendado

Ver docs/architecture.md para el ESQUEMA técnico completo de extremo a extremo. (Lo recomiendo, para una mejor comprensión).

y también el proceso completo: mis errores, los conceptos e ideas que consideré en el camino, y las compensaciones arquitectónicas que enfrenté al construir Project Onyx --> Medium

Aviso Legal

Este proyecto se crea únicamente con fines educativos, investigación en seguridad y operaciones autorizadas de Red Team.

Las técnicas demostradas en este repositorio (Project Onyx) están destinadas a ayudar a los profesionales de seguridad a comprender métodos avanzados de evasión y mejorar las defensas de endpoints (EDR/XDR).

No utilice este software en ningún sistema o red que no posea o para el cual no tenga permiso explícito y por escrito para realizar pruebas.

El autor de este proyecto (X-3306) no asume ninguna responsabilidad y no se hace responsable de ningún uso indebido, daño o actividad ilegal causada por el uso de este software. Al descargar, compilar o utilizar este código, usted acepta asumir toda la responsabilidad por sus acciones.

Estructura del Repositorio

  • DiagnosticsTool.cpp - Host de Windows en C++ e integración con Wasm3/ONNX.
  • DiagnosticsTool.rc / resource.h - enlaces de recursos para activos generados.
  • build.py - ayudante para fingerprinting, generación de señuelo ONNX, incrustación de bóveda de pesos, compatibilidad de bóveda de metadatos, Dead-Drop C2 mediante actualizaciones de modelo descendentes y cifrado WASM.
  • wasm_license_module/ - código fuente Rust para el módulo heartbeat de WebAssembly.
  • wasm3/source/ - código fuente mínimo de Wasm3 (vendored) requerido por la compilación CMake.
  • assets/README2.md - formatos de activos generados.
  • docs/architecture.md - cadena de tiempo de ejecución completa y notas de arquitectura.

Requisitos Previos

Instale estos en Windows antes de compilar:

  • Visual Studio 2022 con Desarrollo de escritorio con C++.
  • CMake 3.25 o más reciente.
  • Python 3.10 o más reciente.
  • Rustup y Cargo.
  • Git.

Dependencias de Python:

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

Objetivo Rust:

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

Compilación Estática de ONNX Runtime

El archivo CMake espera un árbol de fuente/compilación de ONNX Runtime en ./onnxruntime y enlaza las bibliotecas de componentes estáticos desde:

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

Desde una Developer PowerShell para VS 2022, compile ONNX Runtime así:

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

El onnxruntime.dll generado no se distribuye con Project Onyx. Project Onyx enlaza los archivos .lib de componentes estáticos y el ejecutable final no debería listar onnxruntime.dll en dumpbin /DEPENDENTS.

Generar Activos

Obtenga el hash de fingerprint para el dispositivo Windows actual:

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

Use la segunda línea impresa como valor de --trigger.

Compile el módulo Rust WebAssembly:

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

Genere assets/model.onnx y 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

Verifique las bóvedas ONNX:

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

El comando de verificación comprueba tanto la bóveda de metadatos heredada como la bóveda de pesos ONNX oculta. Ambas deben desbloquear el mismo material clave de demostración de 32 caracteres.

Modelo ONNX Real

El portador predeterminado es SqueezeNet 1.0 opset 12:

  • source: onnxmodelzoo/squeezenet1.0-12
  • file: assets/base/squeezenet1.0-12.onnx
  • licencia: Apache-2.0 en la tarjeta del modelo de Hugging Face
  • input: data_0, float[1, 3, 224, 224]
  • output: softmaxout_1, float[1, 1000, 1, 1]
  • tamaño: aproximadamente 4.95 MB
  • pesos float32: aproximadamente 1.23 millones

Obtenga o verifique el modelo base incluido:

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

build.py build copia este modelo real, agrega metadatos de Project Onyx, incrusta la bóveda de pesos ONNX autenticada en los LSB de su inicializador float32, y escribe el modelo de referencia final en assets/model.onnx.

Dead-Drop C2 Solo Heartbeat mediante Actualización de Modelo Descendente

El downlink adicional es una extensión de investigación para probar si una actualización normal de modelo ONNX puede transportar una señal de control autenticada y diminuta como un PoC simple. Está deliberadamente limitado a dos directivas seguras:

  • heartbeat_ack - cambia el estado de heartbeat en tiempo de ejecución a heartbeat_ack.
  • set_status - cambia el estado de heartbeat en tiempo de ejecución a una cadena segura elegida por el operador, como lab_downlink_ack.

Cree un modelo de actualización de laboratorio:

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

Verifíquelo antes de usar:

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

Configuración de Webhook y Modelo

Apúntelo a un artefacto de modelo HTTPS sin procesar, por ejemplo un activo de versión pública:

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

O use webhook Slack/Teams:

Project Onyx no incrusta una URL de webhook real. Para ejecuciones de laboratorio autorizadas, establezca:

La variable debe ser visible para el proceso que inicia ProjectOnyx.exe. Si hace doble clic en el ejecutable, configúrela primero como variable de usuario o de sistema, luego abra un nuevo terminal o reinicie el Explorador. Y ejecute el host nativo con un modelo de actualización local:

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

(También puede usar Teams)

El tiempo de ejecución realiza una única recuperación/lectura al inicio. No sondea, persiste, ejecuta código descargado ni procesa comandos arbitrarios. Las actualizaciones de modelo inválidas, expiradas, no relacionadas o no autenticadas son ignoradas.

Parámetros de verificación en tiempo de ejecución:

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"

IMPORTANTE, Por Favor Lea: Modelo de Referencia, Fine-Tuning y Deltas Naturales

PROJECT_ONYX_ONNX_TELEMETRY_PASSES controla cuántas inferencias reales de ONNX Runtime se ejecutan antes de que la ruta de desbloqueo de la bóveda continúe. PROJECT_ONYX_REQUIRE_ONNX_TELEMETRY=1 convierte los fallos de telemetría en fallos duros, lo cual es útil para validar que la etapa ONNX no se está saltando. PROJECT_ONYX_LAB_OUTPUT_PATH escribe el JSON final de heartbeat en un archivo local para verificación de laboratorio sin necesidad de un webhook.

Este repositorio incluye un modelo de referencia SqueezeNet real porque es lo suficientemente pequeño para GitHub mientras sigue siendo una red neuronal entrenada legítima. Para un artefacto de investigación más sólido, cree un modelo actualizado mediante fine-tuning real u otro proceso normal de mantenimiento de modelo. El incrustador de downlink puede entonces restringir sus cambios de bits a pesos que ya cambiaron en relación con el modelo de referencia. Esa es la versión práctica de la idea de "ocultar dentro del ruido de fine-tuning", enlace al proyecto completo: https://github.com/X-3306/ONNXStego

Para una validación rápida en laboratorio, downlink-build puede sintetizar una actualización de cobertura similar a un fine-tuning aleatorio sembrado a partir del modelo de referencia. Eso prueba la mecánica de extremo a extremo y proporciona pesos candidatos naturales para el registro LSB, PERO NO es un sustituto de la evaluación empírica en una tarea real, conjunto de datos y procedimiento de fine-tuning.

Compilación Final

Configure y compile el ejecutable de lanzamiento:

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

El ejecutable final es:

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

Verificación opcional de dependencias:

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

Esperado: ninguna dependencia de onnxruntime.dll.

Alcance

La demostración no incluye persistencia, escalada de privilegios, acceso a credenciales, movimiento lateral, ejecución arbitraria de comandos, comportamiento destructivo ni tokens de webhook privados incluidos. El módulo WebAssembly está restringido a formatear y devolver un JSON de heartbeat como un PoC simple. El downlink adicional de actualización de modelo solo puede alterar ese estado de heartbeat a través de la lista blanca heartbeat_ack / set_status. Si tiene algunas ideas interesantes para este proyecto, no dude en contactar: [email protected]

Project Onyx Daily Trend Project Onyx Weekly Trend

Descargar herramienta