Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
3564220hace 4 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, 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.

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:
[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.
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:

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.

Descargar herramienta