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
shim — UEFI-Shim-Loader | Kitploit
Tools/GitHubGitHub/rhboot/shim
DefensivwerkzeugeEmbedded-System-SicherheitKryptographieHardware-SicherheitLieferkettensicherheitAuthentifizierung
GitHubrhboot/shim

shim

UEFI-Shim-Loader

Repository anzeigen
1.1k35030vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

shim, ein UEFI-Bootloader der ersten Stufe

shim ist eine triviale EFI-Anwendung, die beim Ausführen versucht, eine andere Anwendung zu öffnen und auszuführen. Zunächst versucht es, dies über die standardmäßigen EFI-Aufrufe LoadImage() und StartImage() zu tun. Wenn diese fehlschlagen (weil Secure Boot aktiviert ist und die Binärdatei beispielsweise nicht mit einem geeigneten Schlüssel signiert ist), validiert shim die Binärdatei anschließend gegen ein integriertes Zertifikat. Wenn dies gelingt und weder die Binärdatei noch der Signaturschlüssel gesperrt sind, verschiebt und führt shim die Binärdatei aus.

Protokolle

Shim-Lock-Protokoll

shim installiert außerdem ein Protokoll, das es dem Bootloader der zweiten Stufe ermöglicht, eine ähnliche Binärvalidierung durchzuführen. Dieses Protokoll hat eine GUID, wie in der Header-Datei shim.h beschrieben, und stellt einen einzelnen Einstiegspunkt bereit. Auf 64-Bit-Systemen erwartet dieser Einstiegspunkt, mit der SysV-ABI statt der MSABI aufgerufen zu werden, daher sollten Aufrufe daran nicht gekapselt werden.

Shim-Loader-Protokoll

Seit Version 16.1 überschreibt shim die Systemtabelle und installiert eine eigene Version der Funktionen LoadImage()/StartImage()/UnloadImage()/Exit(), sodass zweite Stufen sie einfach aus der Systemtabelle aufrufen können. Dies funktioniert unabhängig davon, ob shim die erste Stufe ist oder nicht, ohne dass shim-spezifischer Code in den zweiten Stufen erforderlich ist.

Wenn dieses Protokoll installiert ist, können signierte UKIs Unified Kernel Images geladen werden, selbst wenn der verschachtelte Kernel nicht signiert ist. Nachdem das UKI geladen und validiert wurde, erstellt shim eine interne Allowlist aller Abschnitte, die im UKI enthalten sind. Wenn ein Image aus einem solchen Abschnitt geladen wird, wird es gegen Denylists (derzeit DBX/MOKX/SBAT) validiert, aber nicht gegen Allowlists (DB/MOK-Hashes/ Signaturen) geprüft, da das äußere Image bereits validiert wurde und das innere Image somit durch diese Signaturen oder Hashes abgedeckt ist. Darüber hinaus wird das innere Image nicht im TPM gemessen, um Doppelmessungen zu vermeiden.

TPM

Auf Systemen mit einem TPM-Chip, der aktiviert und von der System-Firmware unterstützt wird, erweitert shim verschiedene PCRs um die Digests der Ziele, die es lädt. Eine vollständige Liste ist in der Datei README.tpm .

Builds und Tests

Um shim zu verwenden, platzieren Sie einfach ein DER-kodiertes öffentliches Zertifikat in einer Datei wie pub.cer und bauen Sie mit make VENDOR_CERT_FILE=pub.cer.

Es gibt einige Build-Optionen und einige Möglichkeiten, den Build anzupassen, die in BUILDING beschrieben werden.

Siehe den Testplan, und reichen Sie ein Ticket ein, falls etwas fehlschlägt!

Kontakte

Falls die Entwickler im Zusammenhang mit einem Sicherheitsvorfall oder einer Sicherheitslücke kontaktiert werden müssen, senden Sie bitte eine E-Mail an [email protected].

Tool herunterladen