Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
shim — UEFI shim loader | Kitploit
Outils/GitHubGitHub/rhboot/shim
Defensive ToolsEmbedded Systems SecurityCryptographyHardware SecuritySupply Chain SecurityAuthentication
GitHubrhboot/shim

shim

UEFI shim loader

Voir le dépôt
1.1k350il y a 24 joursVérifié par Kitploit

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

shim, un chargeur d'amorçage UEFI de premier étage

shim est une application EFI simple qui, lorsqu'elle est exécutée, tente d'ouvrir et d'exécuter une autre application. Elle tente d'abord de le faire via les appels EFI standard LoadImage() et StartImage(). Si ceux-ci échouent (parce que Secure Boot est activé et que le binaire n'est pas signé avec une clé appropriée, par exemple), elle valide ensuite le binaire par rapport à un certificat intégré. Si cela réussit et que le binaire ou la clé de signature ne sont pas interdits, shim relocalise et exécute le binaire.

protocoles

protocole de verrouillage shim

shim installera également un protocole qui permet au chargeur d'amorçage de deuxième étage d'effectuer une validation binaire similaire. Ce protocole possède un GUID comme décrit dans le fichier d'en-tête shim.h et fournit un point d'entrée unique. Sur les systèmes 64 bits, ce point d'entrée s'attend à être appelé avec l'ABI SysV plutôt que MSABI, de sorte que les appels vers celui-ci ne doivent pas être enveloppés.

protocole de chargement shim

Depuis la version 16.1, shim remplace la table système et installe sa propre version des fonctions LoadImage()/StartImage()/UnloadImage()/Exit(), afin que les deuxièmes étages puissent simplement les appeler depuis la table système, et que cela fonctionne que shim soit ou non le premier étage, sans nécessiter de code spécifique à shim dans les deuxièmes étages.

Lorsque ce protocole est installé, les UKI signés Unified Kernel Images peuvent être chargés même si le noyau imbriqué n'est pas signé, car une fois l'UKI chargé et validé, shim construit une liste d'autorisation interne de toutes les sections contenues dans l'UKI. Lorsqu'une image est chargée depuis l'une de ces sections, elle est validée par rapport aux listes de blocage (DBX/MOKX/SBAT au moment de la rédaction), mais elle n'est pas vérifiée par rapport aux listes d'autorisation (hashs/signatures DB/MOK), car l'image externe a déjà été validée et l'image interne est donc couverte par ces signatures ou hashs. De plus, l'image interne n'est pas mesurée dans le TPM, afin d'éviter les doubles mesures.

TPM

Sur les systèmes dotés d'une puce TPM activée et prise en charge par le firmware du système, shim étendra divers PCRs avec les condensats des cibles qu'il charge. Une liste complète se trouve dans le fichier README.tpm .

compilation et tests

Pour utiliser shim, placez simplement un certificat public encodé DER dans un fichier tel que pub.cer et compilez avec make VENDOR_CERT_FILE=pub.cer.

Il existe quelques options de compilation et plusieurs façons de personnaliser la compilation, décrites dans BUILDING.

Consultez le plan de test et ouvrez un ticket si quelque chose échoue !

contacts

Dans le cas où les développeurs doivent être contactés au sujet d'un incident de sécurité ou d'une vulnérabilité, veuillez envoyer un courriel à [email protected].

Télécharger l’outil