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
matrix-rs — Rusty Hypervisor: hipervisor Type-2 Blue Pill del kernel de Windows en Rust (Nombre en clave: Matrix) | Kitploit
Herramientas/GitHubGitHub/memn0ps/matrix-rs
Forensia de MemoriaAnálisis Dinámico de Código (DAST)Evasión de IDS/IPSIngeniería InversaVirtualización de SeguridadAprendizaje y EducaciónArchived
GitHubmemn0ps/matrix-rs

matrix-rs

Rusty Hypervisor: hipervisor Type-2 Blue Pill del kernel de Windows en Rust (Nombre en clave: Matrix)

Ver Repositorio
35642hace 3 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 →
Compartir
Sitio web

Hipervisor Type-2 Blue Pill del núcleo de Windows en Rust (Nombre en clave: Matrix)

License Issues Forks Stars

Blog: https://memn0ps.github.io/hypervisors-for-memory-introspection-and-reverse-engineering/

Un hipervisor de investigación tipo 2 basado en Rust, ligero, seguro en cuanto a memoria y extremadamente rápido, con hooks para Intel VT-x, centrado en el estudio de los conceptos fundamentales de la virtualización.

Nota: El hipervisor Illusion (hipervisor Type-1 Blue Pill para Windows UEFI en Rust) es más estable, admite más funciones y, en general, tiene un mejor diseño. El hipervisor Matrix (hipervisor Type-2 Blue Pill del núcleo de Windows en Rust) es una versión experimental más antigua y no está pensada para uso en producción. Ambos proyectos sirven como plantillas para ayudar a la gente a empezar con el desarrollo de hipervisores en Rust.

Hooks de EPT Figura 0: Hooks de tablas de páginas extendidas (EPT) (Matrix)

Características

  • ✅ Tablas de páginas extendidas (EPT): compatibilidad con los registros de rango de tipos de memoria (MTRR).
  • ✅ Manejo de salidas de VM (VM Exits): manejo de ExceptionOrNmi (#GP, #PF, #BP, #UD), Cpuid, Getsec, Vmcall, Vmclear, Vmlaunch, Vmptrld, Vmptrst, Vmresume, Vmxon, Vmxoff Rdmsr, Wrmsr, Invd, Rdtsc, , , , , .

Hardware compatible

  • ✅ Procesadores Intel con soporte de VT-x y tablas de páginas extendidas (EPT).
  • ❌ Procesadores AMD con soporte de AMD-V (SVM) y tablas de páginas anidadas (NPT).

Plataformas compatibles

  • ✅ Windows 10 - Windows 11, solo x64.

Instalación

  1. Instala Rust desde aquí.
  2. Cambia a Rust Nightly: rustup toolchain install nightly y rustup default nightly.
  3. Instala LLVM: winget install LLVM.LLVM.
  4. Instala las herramientas: cargo install cargo-make cargo-expand cargo-edit cargo-workspaces.
  5. Instala WDK/SDK/EWDK: pasos aquí.
  6. Establece la variable de entorno WDKContentRoot para que apunte a la ruta de instalación de WDK, si no se ha establecido automáticamente durante la instalación de WDK:
root@kitploit:~
[System.Environment]::SetEnvironmentVariable("WDKContentRoot", "C:\Program Files (x86)\Windows Kits\10", [System.EnvironmentVariableTarget]::User)

Compilar el proyecto

  • Desarrollo: cargo make --profile development.
  • Producción: cargo make --profile release.

Depuración

Habilitación de los modos de depuración

  • Modo de prueba: activa la firma de prueba con bcdedit.exe /set testsigning on.
  • Depuración de Windows: sigue los pasos de esta guía de Microsoft.
root@kitploit:~
bcdedit.exe /bootdebug {bootmgr} on
bcdedit.exe /bootdebug on
bcdedit.exe /debug on

Depuración en red con Windbg

Configuración: bcdedit.exe /dbgsettings net hostip:w.x.y.z port:n.

Filtro de impresión de depuración (Debug Print Filter)

  1. Abre regedit.exe.
  2. Ve a HKLM\SYSTEM\CurrentControlSet\Control\Session Manager.
  3. Crea Debug Print Filter con el DWORD DEFAULT = 8.

Depuración por puerto serie en VMware

  1. Añade un puerto serie en VMware: 'Usar archivo de salida'.
  2. Configura en la VM de Windows: $serialPort = New-Object System.IO.Ports.SerialPort COM2,9600,None,8,One; $serialPort.Open().

Administración del servicio

Usa el Controlador de servicios (sc.exe) para crear y administrar el servicio del hipervisor:

root@kitploit:~
sc.exe create matrix type= kernel binPath= C:\Windows\System32\drivers\matrix.sys
sc.exe query matrix
sc.exe start matrix

Uso

  1. Configuración para VMware Workstation

    Compila el proyecto: sigue las instrucciones de compilación proporcionadas en las secciones anteriores para compilar el proyecto.

  2. Configurar VMware Workstation

    Configura el puerto serie de VMware para la depuración.

Configuración del puerto serie de VMware Figura 1: Configuración del puerto serie de VMware

Asegúrate de que "Virtualize Intel VT-x/EPT or AMD-V/RVI" esté habilitada y de que "Virtualize IOMMU (IO memory management unit)" esté habilitada.

Configuración de procesadores de VMware Figura 2: Configuración de procesadores de VMware

  1. Copia el controlador

    Copia el controlador matrix.sys al directorio C:\Windows\System32\drivers.

  2. Depuración por puerto serie en VMware

    Ejecuta el script de PowerShell de la sección Depuración por puerto serie para abrir el puerto serie.

  3. Carga el hipervisor

    Usa el script de PowerShell load.ps1 que se muestra en la sección Administración del servicio para crear e iniciar el servicio del hipervisor.

Carga del hipervisor Figura 3: Carga del hipervisor

Prueba de concepto (PoC)

Configuración de la PoC con registros y Windbg Figura 4: Configuración de la PoC con registros y Windbg

Ejecución de la PoC con registros y Windbg Figura 5: Ejecución de la PoC con registros y Windbg

Agradecimientos, referencias y motivación

Un enorme agradecimiento a las increíbles personas y recursos que han dado forma a este proyecto. Un reconocimiento especial a todos los que se enumeran a continuación. Aunque no utilicé todos estos recursos en mi trabajo, han sido minas de oro de información, muy útiles para cualquiera que se adentre en el desarrollo de hipervisores, incluido yo.

  • Daax (@daaximus): Por su excelente serie gratuita sobre desarrollo de hipervisores, uno de los mejores recursos disponibles, que ha influido enormemente en mi trabajo gracias a su exhaustiva investigación y sus claras explicaciones. Su apoyo y sus respuestas a mis preguntas fueron inestimables para que empezara con el desarrollo de hipervisores:

    • 7 Days to Virtualization.
    • MMU Virtualization via Intel EPT.
  • Satoshi Tanda (@tandasat): La guía, los proyectos y los programas de formación estructurada de Satoshi Tanda han sido increíblemente útiles. Sus explicaciones detalladas y sus contribuciones en GitHub han mejorado significativamente mi comprensión, convirtiéndolo en un gran mentor a lo largo de mi camino:

    • Hypervisor Development for Security Researchers.
    • Hypervisor 101 in Rust.
    • Proyectos adicionales: Hello-VT-rp, DdiMon, HyperPlatform, MiniVisorPkg.
  • Jess (@jessiep_): Por su inestimable apoyo y colaboración en varias áreas de este proyecto, aportando conocimientos y experiencia esenciales, y por sus rápidas respuestas a mis preguntas.

  • Drew (@drew): Por su ayuda, orientación y rápidas respuestas a mis preguntas en diversos aspectos del desarrollo de hipervisores.

  • Sina Karvandi (@Intel80x86): Por su detallada serie gratuita Hypervisor From Scratch:

    • Serie de tutoriales.

Recursos comunitarios y técnicos

  • Secret Club: Información sobre sistemas anti-trampas y detección de hipervisores, que también inspiró este proyecto:

    • System emulation detection por @Daax, @iPower, @ajkhoury, @drew.
    • BattlEye hypervisor detection por @vmcall, @Daax.
  • Otros recursos esenciales:

    • Manual del desarrollador de software de Intel.
    • de Maurice Heumann (@momo5502) Detecting Hypervisor-Assisted Hooking.
    • x64 Virtual Address Translation de Guided Hacking en YouTube.
    • Publicación del foro de UnKnoWnCheaTs por @namazso.
    • RVM1.5, Barbervisor, rustyvisor, orange_slice, mythril, uhyve, maystorm.
    • Desarrollo de hipervisores AMD-V por Back Engineering, .

Ayudantes y colaboradores

Un agradecimiento especial a:

  • Daax.
  • Satoshi Tanda (@tandasat).
  • Drew (@drew).
  • iPower (@iPower).
  • Namazso (@namazso).
  • Jess (@jessiep_).
  • Matthias @not-matthias.
  • @felix-rs / @joshuа.
  • Ryan McCrystal / @rmccrystal.
  • Jim Colerick (@vmprotect).

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Para más información, consulta los detalles de la Licencia MIT.

Descargar herramienta
EptViolation
EptMisconfiguration
Invept
Invvpid
Xsetbv
  • ✅ Hooks inline ocultos del kernel: hooks de punto de interrupción (int3) compatibles con PatchGuard.
  • ✅ Hooks ocultos de llamadas al sistema (syscall): hooks compatibles con PatchGuard para entradas de funciones de la Tabla de descriptores de servicios del sistema (SSDT).
  • ✅ Aislamiento y seguridad: implementaciones personalizadas de la Tabla de descriptores globales (GDT), la Tabla de descriptores de interrupciones (IDT) y las tablas de páginas para mejorar la seguridad y el aislamiento del hipervisor. Créditos a @namazso por concienciar sobre este tema.
  • Repositorio de GitHub.
  • Matthias (@not-matthias): Por su impactante trabajo en el proyecto amd_hypervisor, que inspiró e influyó enormemente en esta investigación.

  • Nick Peterson (@everdox) y Aidan Khoury (@ajkhoury): Por sus esclarecedoras exploraciones de la introspección de hipervisores y el hooking de syscalls:

    • Patchguard: Hypervisor Based Introspection [P1].
    • Patchguard: Hypervisor Based Introspection [P2].
    • Syscall Hooking Via Extended Feature Enable Register (EFER).
  • bluepill por @_xeroxz
  • hvpp por @wbenny.
  • HyperHide por @Air14.
  • Cómo funciona AetherVisor por dentro, por M3ll0wN1ght.
  • Librería de Rust para usar funcionalidades y registros específicos de x86 (amd64) (crate x86 para Rust).
  • HyperBone de DarthTon (basado en la legendaria versión de Alex Ionescu) en UnknownCheats.
  • Joanna Rutkowska: pionera del concepto de hipervisor Blue Pill, una de las primeras pruebas de concepto.