Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2022-34301 — Demonstriert die Umgehung von Secure Boot über CVE-2022-34301 mittels der von Eurosoft signierten UEFI-Shell (esdiags.efi), wobei der Befehl mm verwendet wird, um gSecurity2 zu nullifizieren und unsignierte UEFI-Anwendungen zu laden. | Kitploit
Tools/GitHubGitHub/themalwareguardian/cve-2022-34301
PersistenzmechanismenSchwachstellenanalyseExploitationHardware-SicherheitLernen & BildungFirmware-AnalyseBinary-Exploitation
GitHubthemalwareguardian/cve-2022-34301

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

CVE-2022-34301

Demonstriert die Umgehung von Secure Boot über CVE-2022-34301 mittels der von Eurosoft signierten UEFI-Shell (esdiags.efi), wobei der Befehl mm verwendet wird, um gSecurity2 zu nullifizieren und unsignierte UEFI-Anwendungen zu laden.

Repository anzeigen
121vor 21 TagenNoch nicht geprüft
Teilen

🕷️ CVE-2022-34301 - Eurosoft Boot Loader Vulnerability

Eurosoft Pc-Check UEFI Diagnostics Shell - Bring Your Own Vulnerable UEFI Application (BYOVUA) - Secure Boot bypass via signierter UEFI Shell und gSecurity2-Korruption.




📑 Inhaltsverzeichnis

  • Überblick
  • Hintergrund
    • Bring Your Own Vulnerable UEFI Application
    • Die signierte Shell
    • Die Schwachstelle
    • Der mm-Befehl
    • gSecurity2 und das Security Architectural Protocol
    • Parallele zu Kernel-BYOVD
  • Funktionsweise
    • Phase 1 - Die signierte Shell booten
    • Phase 2 - Security2-Protokoll-Handles auflisten
    • Phase 3 - gSecurity2 im Speicher lokalisieren
    • Phase 4 - gSecurity2 nullifizieren
    • Phase 5 - Unsigned UEFI Applications laden
    • Phase 6 - Persistenz via startup.nsh
    • Extra - Entdeckungsprozess
  • Exploit
  • Lab-Setup
  • Referenzen



Überblick

Dieses Repository demonstriert die BYOVUA (Bring Your Own Vulnerable UEFI Application)-Technik durch die Ausnutzung von CVE-2022-34301, einer Secure-Boot-Bypass-Schwachstelle in der Eurosoft Pc-Check UEFI-Diagnoseumgebung.

In diesem Fall ist die von Secure Boot vertraute Komponente esdiags.efi, eine UEFI Shell, die als Teil von Eurosofts Pc-Check UEFI-Hardware-Diagnoseprodukt vertrieben wird und von einer Zertifikatskette signiert ist, der Microsofts UEFI Third Party Certificate Authority vertraut. Nach der Ausführung stellt diese Shell den mm-Befehl (memory modify) bereit und bietet somit beliebige Speicher-Lese- und Schreibfähigkeiten während der Pre-OS-Boot-Phase.

Dieses Primitiv kann dann verwendet werden, um den gSecurity2-Global-Pointer im DXE-Kern zu lokalisieren und zu nullifizieren. Infolgedessen wird die nachfolgende UEFI-Image-Verifikation deaktiviert, wodurch unsignierte UEFI-Anwendungen, Bootkits, trotz aktiviertem Secure Boot geladen werden können.




Hintergrund


Bring Your Own Vulnerable UEFI Application

BYOVUA ist das UEFI-Äquivalent zur BYOVD-Technik (Bring Your Own Vulnerable Driver), die auf Kernel-Ebene verwendet wird. Anstatt einen signierten Kernel-Treiber mit einer Schwachstelle mitzubringen, bringt der Angreifer eine signierte UEFI-Anwendung mit - in diesem Fall eine vollständige UEFI Shell -, die Funktionalität enthält, die Secure Boot untergraben kann.

Da die Anwendung mit einer Zertifikatskette signiert ist, der Secure Boot vertraut, wird sie ohne Fragen akzeptiert und ist somit auf jedem System vertrauenswürdig, das die Microsoft UEFI Third Party Certificate Authority in seiner Secure-Boot-Datenbank (db) enthält - was praktisch auf jedem UEFI-fähigen PC zutrifft, der im letzten Jahrzehnt ausgeliefert wurde. Einmal ausgeführt, bieten ihre integrierten Befehle dem Angreifer direkten Hardware- und Speicherzugriff, der vor dem Laden des Betriebssystems operiert, in einer Umgebung, in der moderne Sicherheitskontrollen (ASLR, DEP, Kernel-Schutzmechanismen) schlicht nicht existieren.


Die signierte Shell

esdiags.efi ist eine UEFI Shell, die als Teil von Eurosofts Pc-Check UEFI vertrieben wird, einem Pre-Boot-Hardware-Diagnoseprodukt, das von PC-Herstellern, Serviceorganisationen und IT-Teams für Bare-Metal-Systemtests verwendet wird.

EigenschaftWert
DateiEFI/Boot/Bootx64.efi (Microsoft) -> EFI/Boot/esdiags.efi (Shell)
HerstellerEurosoft (UK) Ltd
CVECVE-2022-34301
SignierungMicrosoft Corporation UEFI CA 2011 (Third Party)
EntdeckungEclypsium (Mickey Shkatov, Jesse Michael) - August 2022
PräsentationDEF CON 30 - "One Bootloader to Load Them All"
WiderrufHinzugefügt zur DBX via Microsoft KB5012170 (August 2022)

Die Schwachstelle

Die Schwachstelle ist kein Bug - sie ist ein Designfehler. UEFI Shells sind legitime Diagnosewerkzeuge, die niemals dafür gedacht waren, in Secure-Boot-Umgebungen ausgeführt zu werden. Indem die Hersteller sie jedoch mit einem von Microsoft vertrauten Zertifikat signierten und als Teil kommerzieller Produkte vertrieben, schufen sie unbeabsichtigt einen signierten Bypass für Secure Boot.

Das Kernproblem: Eine signierte Binärdatei, der Secure Boot vertraut, bietet uneingeschränkte Speicher-Lese-/Schreibfähigkeiten durch ihre integrierten Befehle. Diese Kombination bricht das gesamte Secure-Boot-Vertrauensmodell.


Der mm-Befehl

Der mm-Befehl (memory modify) ist ein standardmäßiger integrierter Befehl der UEFI Shell, der direkten Lese- und Schreibzugriff auf den Systemspeicher bietet. Er ist in der UEFI Shell Specification (Abschnitt 5.3) dokumentiert.``` MM Address [Value] [-w 1|2|4|8] [-MEM | -MMIO | -IO | -PCI | -PCIE] [-n]

| Parameter | Beschreibung |
|-----------|-------------|
| `Address` | Ziel-Speicheradresse |
| `Value` | Zu schreibender Wert (für Nur-Lesen weglassen) |
| `-w` | Breite: 1, 2, 4 oder 8 Bytes |
| `-MEM` | Systemspeicherzugriff |
| `-MMIO` | Speicherzugeordnete E/A |
| `-IO` | E/A-Port-Zugriff |
| `-n` | Nicht-interaktiv (keine Aufforderung für nächste Adresse) |

---

<div id='gsecurity2'/>

### ***gSecurity2 und das Security Architectural Protocol***

Die Secure-Boot-Image-Verifikation in UEFI wird durch die [Security Architectural Protocols](https://uefi.org/specs/PI/1.8/V2_DXE_Architectural_Protocols.html#security-architectural-protocols) erzwungen, die in der UEFI Platform Initialization (PI) Specification definiert sind.

Der DXE-Kern (DxeMain) verwaltet einen globalen Zeiger namens [`gSecurity2`](https://github.com/tianocore/edk2/blob/edk2-stable202608/MdeModulePkg/Core/Dxe/DxeMain.h#L252), der auf die Struktur `EFI_SECURITY2_ARCH_PROTOCOL` zeigt. Dieses Protokoll enthält einen einzigen Funktionszeiger - `FileAuthenticationState` - der von `LoadImage()` bei jedem Laden eines UEFI-Images aufgerufen wird:```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

Wenn LoadImage() aufgerufen wird, prüft der DXE-Core:```c if (gSecurity2 != NULL) { Status = gSecurity2->FileAuthenticationState(gSecurity2, DevicePath, FileBuffer, FileSize, BootPolicy ); if (EFI_ERROR(Status)) { // Image rejected - signature verification failed } }

Durch das Setzen von `gSecurity2 = NULL` schlägt die `if`-Prüfung fehl und `FileAuthenticationState` wird nie aufgerufen. Die Image-Verifizierung wird vollständig übersprungen – **Secure Boot bleibt „aktiviert", wird aber nicht mehr durchgesetzt**. Unsigned UEFI-Anwendungen können dann frei geladen werden.
Tool herunterladen