Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
illusion-rs — Rusty Hypervisor - Hyperviseur de type 1 Blue Pill UEFI Windows en Rust (Nom de code : Illusion) | Kitploit
Outils/GitHubGitHub/memn0ps/illusion-rs
Outils DéfensifsCriminalistique MémoireMécanismes de PersistanceRétro-ingénierieVirtualisation de SécuritéAnalyse de MalwareSécurité MatérielleAnalyse de BinairesArticles et RechercheRed TeamingArchived
41360il y a 4 moisVérifié par Kitploit
GitHub
memn0ps/illusion-rs

illusion-rs

Rusty Hypervisor - Hyperviseur de type 1 Blue Pill UEFI Windows en Rust (Nom de code : Illusion)

Voir le dépôtSite web

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Windows UEFI Blue Pill Type-1 Hypervisor en Rust (Nom de code : Illusion)

License Issues Forks Stars

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

Un hyperviseur de recherche de type 1 basé sur Rust, léger, sûr en termes de mémoire et extrêmement rapide, avec des hooks pour Intel VT-x, axé sur l'étude des concepts fondamentaux de la virtualisation.

Remarque : L'hyperviseur Illusion (Windows UEFI Blue Pill Type-1 Hypervisor en Rust) est plus stable, prend en charge davantage de fonctionnalités et est globalement mieux conçu. L'hyperviseur Matrix (Windows Kernel Blue Pill Type-2 Hypervisor en Rust) est une version plus ancienne et expérimentale, et n'est pas destiné à une utilisation en production. Les deux projets servent de modèles pour aider les personnes à débuter dans le développement d'hyperviseurs en Rust.

Description

Pagination : Traduction des adresses virtuelles x64 en adresses physiques

Ce diagramme illustre le mécanisme de traduction des adresses virtuelles x64 en adresses physiques dans les systèmes de pagination traditionnels. Dans l'architecture x64, cette traduction implique quatre niveaux de tables de pages : PML4, PDPT, PDT et PT (Page Map Level 4, Page Directory Pointer Table, Page Directory Table et Page Table). Chaque niveau utilise 9 bits de l'adresse virtuelle pour indexer le niveau suivant, pointant finalement vers une adresse physique spécifique en RAM. Ce processus est géré par le système d'exploitation et l'unité de gestion de la mémoire (MMU), qui traduit les adresses virtuelles utilisées par le logiciel en adresses physiques utilisées par le matériel.

Traduction d'adresse virtuelle x64
Figure 1 : Traduction d'adresse virtuelle x64 (Crédits complets : Guided Hacking)

Tables de pages étendues (EPT) : Traduction d'adresse de second niveau (SLAT)

Les tables de pages étendues (EPT) sont une fonctionnalité des technologies de virtualisation assistée par matériel telles que Intel VT-x et les Nested Page Tables (NPT) d'AMD-V. L'EPT implémente la traduction d'adresse de second niveau (SLAT), spécialement conçue pour les environnements virtualisés. Alors que la pagination traditionnelle traduit les adresses virtuelles en adresses physiques au sein du système d'exploitation invité, l'EPT ajoute une couche supplémentaire en traduisant les adresses physiques invitées (utilisées par le système d'exploitation invité) en adresses physiques hôtes (utilisées par l'hyperviseur). Cette seconde couche de traduction est gérée par l'hyperviseur, permettant aux systèmes d'exploitation invités de gérer leurs propres tables de pages de manière indépendante. La SLAT améliore les performances en minimisant le besoin de sorties de VM lors des opérations mémoire, ce qui réduit la surcharge et améliore l'efficacité de la virtualisation.

Le diagramme ci-dessous montre comment implémenter des hooks EPT cachés dans le Windows UEFI Blue Pill Type-1 Hypervisor (Nom de code : Illusion) écrit en Rust.

Hooks EPT
Figure 2 : Hooks des tables de pages étendues (EPT) (Illusion)

Fonctionnalités

Fonctionnalités compatibles avec PatchGuard

  • ✅ Hooks cachés d'appels système (Syscall) via la System Service Descriptor Table (SSDT).
  • ✅ Hooks inline cachés du noyau.
  • ✅ Hooks cachés des registres spécifiques au modèle (MSR).

Fonctionnalités spécifiques au processeur

  • ✅ Tables de pages étendues (EPT).
  • ✅ Registres de plage de types de mémoire (MTRRs).
  • ❌ Intel Processor Trace (PT).

Fonctionnalités compatibles avec Microsoft Hyper-V

  • ❌ Prise en charge de l'exécution en tant qu'hyperviseur imbriqué sous Microsoft Hyper-V (Type-2) avec la Virtualization Based Security (VBS) activée.
  • ❌ Prise en charge de l'exécution en tant qu'hyperviseur principal au-dessus de Microsoft Hyper-V (Type-1) avec la Virtualization Based Security (VBS) activée.

Gestion des sorties de VM

  • ✅ Gestion des sorties de VM : ExceptionOrNmi (#GP, #PF, #BP, #UD) (0), InitSignal (3), StartupIpi (4), Cpuid (10), Getsec (11), Hlt (12), Invd (13), Vmcall (18), Vmclear (19), Vmlaunch (20), Vmptrld (21), Vmptrst (22), Vmresume (24), Vmxon (27), Vmxoff (26), ControlRegisterAccesses (28), Rdmsr (31), Wrmsr (32), MonitorTrapFlag (37), Rdtsc (49), EptViolation (48), EptMisconfiguration (50), Invept (53), Invvpid (55), Xsetbv (55).

Détection d'hyperviseur

  • ✅ Masquer la mémoire de l'hyperviseur à l'invité à l'aide de l'EPT (rediriger la mémoire invitée qui pointe vers la mémoire hôte vers une page factice remplie de 0xFF).
  • ✅ Contournement de la détection d'hyperviseur basé sur des tables de pages personnalisées (assure l'isolation et la sécurité vis-à-vis de l'invité, y compris le vidage de CR3).
  • ✅ Contournement de la détection d'hyperviseur basé sur des GDT et IDT personnalisées (assure l'isolation et la sécurité vis-à-vis de l'invité).
  • ✅ Contournement de la détection d'hyperviseur basé sur CPUID (désactiver HypervisorPresent et supprimer la signature de l'ID du fournisseur pour les informations de fonctionnalité et le fournisseur d'hyperviseur).
  • ✅ Contournement de la détection d'hyperviseur basé sur les MSR (injecter #GP pour les vmexits MSR Hyper-V invalides, non pris en charge et réservés).
  • ✅ Contournement de la détection d'hyperviseur basé sur les CR (masquer CR0 et CR4 pour dissimuler les bits spécifiques à l'hyperviseur).
  • ✅ Contournement de la détection d'hyperviseur basé sur XSETBV (injecter #GP pour les vmexits XSETBV invalides ou non pris en charge).
  • ✅ Contournement de la détection d'hyperviseur basé sur VMCALL (injecter #GP pour les vmexits VMCALL invalides ou non pris en charge).
  • ✅ Contournement de la détection d'hyperviseur basé sur ExceptionOrNMI (injecter #GP, #PF, #BP, #UD pour des vmexits d'exception spécifiques).
  • ✅ Vmexits inconditionnels (injecter #UD pour les vmexits inconditionnels, mais pour Vmxon, injecter #UD s'il ne contient pas VMXE ; sinon, injecter #GP s'il contient VMXE).
  • ❌ Contournement de la détection d'hyperviseur basé sur l'EPT (vérification d'écriture, vérification de timing et vérification de thread).
  • ❌ Contournement de la détection d'hyperviseur basé sur RDTSC.
  • ✅ Supprimer la mémoire de l'hyperviseur de la carte/table mémoire UEFI (identifier les régions mémoire occupées par l'hyperviseur et modifier la carte mémoire UEFI pour marquer ces régions comme UNUSABLE).

Isolation et sécurité

  • ✅ Implémentations personnalisées de la Global Descriptor Table (GDT), de l'Interrupt Descriptor Table (IDT) et des tables de pages pour renforcer la sécurité et l'isolation de l'hyperviseur.

Matériel pris en charge

Télécharger l’outil