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
CVE-2022-34301 — Démontre le contournement de Secure Boot CVE-2022-34301 via le UEFI Shell signé Eurosoft (esdiags.efi), en utilisant la commande mm pour annuler gSecurity2 et charger des applications UEFI non signées. | Kitploit
Outils/GitHubGitHub/themalwareguardian/cve-2022-34301
Mécanismes de PersistanceAnalyse des VulnérabilitésExploitationSécurité MatérielleApprentissage et ÉducationAnalyse de MicrologicielExploitation de Binaires
GitHub

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 →
themalwareguardian/cve-2022-34301

CVE-2022-34301

Démontre le contournement de Secure Boot CVE-2022-34301 via le UEFI Shell signé Eurosoft (esdiags.efi), en utilisant la commande mm pour annuler gSecurity2 et charger des applications UEFI non signées.

Voir le dépôt
120il y a 20 joursPas encore vérifié
Partager

🕷️ CVE-2022-34301 - Vulnérabilité du chargeur d'amorçage Eurosoft

Eurosoft Pc-Check UEFI Diagnostics Shell - Bring Your Own Vulnerable UEFI Application (BYOVUA) - Contournement de Secure Boot via un Shell UEFI signé et une corruption de gSecurity2.




📑 Table des matières

  • Vue d'ensemble
  • Contexte
    • Bring Your Own Vulnerable UEFI Application
    • Le Shell signé
    • La vulnérabilité
    • La commande mm
    • gSecurity2 et le Security Architectural Protocol
    • Parallèle avec le BYOVD au niveau du noyau
  • Fonctionnement
    • Phase 1 - Démarrer le Shell signé
    • Phase 2 - Énumérer les handles du protocole Security2
    • Phase 3 - Localiser gSecurity2 en mémoire
    • Phase 4 - Neutraliser gSecurity2
    • Phase 5 - Charger des applications UEFI non signées
    • Phase 6 - Persistance via startup.nsh
    • Bonus - Processus de découverte
  • Exploit
  • Configuration du laboratoire
  • Références



Vue d'ensemble

Ce dépôt illustre la technique BYOVUA (Bring Your Own Vulnerable UEFI Application) en exploitant CVE-2022-34301, une vulnérabilité de contournement de Secure Boot dans l'environnement de diagnostic UEFI Eurosoft Pc-Check.

Dans ce cas, le composant approuvé par Secure Boot est esdiags.efi, un Shell UEFI distribué dans le cadre du produit de diagnostic matériel Pc-Check UEFI d'Eurosoft, signé par une chaîne de certificats approuvée par l'UEFI Third Party Certificate Authority de Microsoft. Une fois exécuté, ce shell expose la commande mm (memory modify) et fournit donc des capacités de lecture et d'écriture arbitraires en mémoire durant la phase de démarrage pré-OS.

Cette primitive peut ensuite être utilisée pour localiser et neutraliser le pointeur global gSecurity2 dans le cœur DXE. En conséquence, la vérification des images UEFI suivantes est désactivée, permettant le chargement d'applications UEFI non signées, des bootkits, malgré l'activation de Secure Boot.




Contexte


Bring Your Own Vulnerable UEFI Application

BYOVUA est l'équivalent UEFI de la technique BYOVD (Bring Your Own Vulnerable Driver) utilisée au niveau du noyau. Au lieu d'apporter un pilote noyau signé comportant une vulnérabilité, l'attaquant apporte une application UEFI signée - dans ce cas, un Shell UEFI complet - qui contient des fonctionnalités capables de compromettre Secure Boot.

Comme l'application est signée avec une chaîne de certificats approuvée par Secure Boot, elle est acceptée sans contestation, ce qui la rend approuvée sur tout système incluant l'UEFI Third Party Certificate Authority de Microsoft dans sa base de données Secure Boot (db) - c'est-à-dire pratiquement tous les PC compatibles UEFI livrés au cours de la dernière décennie. Une fois en cours d'exécution, ses commandes intégrées fournissent à l'attaquant un accès direct au matériel et à la mémoire qui opère avant le chargement du système d'exploitation, dans un environnement où les contrôles de sécurité modernes (ASLR, DEP, protections du noyau) n'existent tout simplement pas.


Le Shell signé

esdiags.efi est un Shell UEFI distribué dans le cadre de Pc-Check UEFI d'Eurosoft, un produit de diagnostic matériel pré-démarrage utilisé par les fabricants de PC, les organisations de services et les équipes informatiques pour les tests de systèmes bare-metal.

PropriétéValeur
FichierEFI/Boot/Bootx64.efi (Microsoft) -> EFI/Boot/esdiags.efi (Shell)
ÉditeurEurosoft (UK) Ltd
CVECVE-2022-34301
SignatureMicrosoft Corporation UEFI CA 2011 (Third Party)
DécouverteEclypsium (Mickey Shkatov, Jesse Michael) - Août 2022
PrésentationDEF CON 30 - "One Bootloader to Load Them All"
RévocationAjouté à la DBX via Microsoft KB5012170 (Août 2022)

La vulnérabilité

La vulnérabilité n'est pas un bug - c'est un défaut de conception. Les Shells UEFI sont des outils de diagnostic légitimes qui n'ont jamais été conçus pour s'exécuter dans des environnements Secure Boot. Cependant, en les signant avec un certificat approuvé par Microsoft et en les distribuant dans le cadre de produits commerciaux, les éditeurs ont involontairement créé un contournement signé de Secure Boot.

Le problème central : un binaire signé approuvé par Secure Boot fournit des capacités de lecture/écriture mémoire non restreintes via ses commandes intégrées. Cette combinaison brise tout le modèle de confiance de Secure Boot.


La commande mm

La commande mm (memory modify) est une commande intégrée standard du Shell UEFI qui fournit un accès direct en lecture et en écriture à la mémoire système. Elle est documentée dans la UEFI Shell Specification (Section 5.3).``` MM Address [Value] [-w 1|2|4|8] [-MEM | -MMIO | -IO | -PCI | -PCIE] [-n]

| Paramètre | Description |
|-----------|-------------|
| `Address` | Adresse mémoire cible |
| `Value` | Valeur à écrire (omettre pour une lecture seule) |
| `-w` | Largeur : 1, 2, 4 ou 8 octets |
| `-MEM` | Accès à la mémoire système |
| `-MMIO` | E/S mappées en mémoire |
| `-IO` | Accès au port d'E/S |
| `-n` | Non interactif (aucune invite pour l'adresse suivante) |

---

<div id='gsecurity2'/>

### ***gSecurity2 et le protocole d'architecture de sécurité***

La vérification des images de démarrage sécurisé dans UEFI est assurée par les [Security Architectural Protocols](https://uefi.org/specs/PI/1.8/V2_DXE_Architectural_Protocols.html#security-architectural-protocols), définis dans la spécification UEFI Platform Initialization (PI).

Le cœur DXE (DxeMain) maintient un pointeur global appelé [`gSecurity2`](https://github.com/tianocore/edk2/blob/edk2-stable202608/MdeModulePkg/Core/Dxe/DxeMain.h#L252), qui pointe vers la structure `EFI_SECURITY2_ARCH_PROTOCOL`. Ce protocole contient un unique pointeur de fonction - `FileAuthenticationState` - qui est appelé par `LoadImage()` chaque fois qu'une image UEFI est chargée :```c
// EFI_SECURITY2_ARCH_PROTOCOL structure (PI Specification)
typedef struct _EFI_SECURITY2_ARCH_PROTOCOL {
	EFI_SECURITY_FILE_AUTHENTICATION_STATE FileAuthenticationState;
} EFI_SECURITY2_ARCH_PROTOCOL;

// GUID: 94AB2F58-1438-4EF1-9152-18941A3A0E68

Lorsque LoadImage() est appelé, le cœur DXE vérifie :```c if (gSecurity2 != NULL) { Status = gSecurity2->FileAuthenticationState(gSecurity2, DevicePath, FileBuffer, FileSize, BootPolicy ); if (EFI_ERROR(Status)) { // Image rejected - signature verification failed } }

En définissant `gSecurity2 = NULL`, la vérification `if` échoue et `FileAuthenticationState` n'est jamais appelée. La vérification de l'image est complètement ignorée - **Secure Boot reste "activé" mais n'est plus appliqué**. Des applications UEFI non signées peuvent alors être chargées librement.
Télécharger l’outil