Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
shim — Caricatore shim UEFI | Kitploit
Strumenti/GitHubGitHub/rhboot/shim
Strumenti DifensiviSicurezza Sistemi EmbeddedCrittografiaSicurezza HardwareSicurezza della Supply ChainAutenticazione
GitHubrhboot/shim

shim

Caricatore shim UEFI

Vedi Repository
1.1k35051 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

shim, un bootloader UEFI di primo stadio

shim è un'applicazione EFI semplice che, quando viene eseguita, tenta di aprire ed eseguire un'altra applicazione. Inizialmente proverà a farlo tramite le chiamate EFI standard LoadImage() e StartImage(). Se queste falliscono (ad esempio perché Secure Boot è abilitato e il binario non è firmato con una chiave appropriata), validerà quindi il binario rispetto a un certificato integrato. Se questa operazione ha successo e se il binario o la chiave di firma non sono vietati, shim rilocherà ed eseguirà il binario.

protocolli

protocollo shim lock

shim installerà anche un protocollo che consente al bootloader di secondo stadio di eseguire una simile validazione dei binari. Questo protocollo ha un GUID come descritto nel file di intestazione shim.h e fornisce un unico punto di ingresso. Sui sistemi a 64 bit, questo punto di ingresso si aspetta di essere chiamato con l'ABI SysV piuttosto che con MSABI, quindi le chiamate ad esso non dovrebbero essere incapsulate.

protocollo shim loader

Dalla versione 16.1, shim sostituisce la system table e installa una propria versione delle funzioni LoadImage()/StartImage()/UnloadImage()/Exit(), così che i secondi stadi possano semplicemente chiamarle dalla system table, e funzionerà sia che shim sia il primo stadio sia che non lo sia, senza richiedere codice specifico di shim nei secondi stadi.

Quando questo protocollo è installato, gli UKI firmati Unified Kernel Images possono essere caricati anche se il kernel annidato non è firmato, poiché dopo che l'UKI è stato caricato e validato, shim costruisce una allowlist interna di tutte le sezioni contenute nell'UKI. Quando un'immagine viene caricata da una di queste sezioni, viene validata rispetto alle denylist (DBX/MOKX/SBAT al momento della scrittura), ma non viene verificata rispetto alle allowlist (hash/firme DB/MOK), poiché l'immagine esterna era già stata validata e l'immagine interna è quindi coperta da quelle firme o hash. Inoltre, l'immagine interna non viene misurata nel TPM, per evitare doppie misurazioni.

TPM

Sui sistemi con un chip TPM abilitato e supportato dal firmware di sistema, shim estenderà vari PCR con i digest dei target che sta caricando. Un elenco completo è nel file README.tpm .

build e test

Per usare shim, basta inserire un certificato pubblico con codifica DER in un file come pub.cer e compilare con make VENDOR_CERT_FILE=pub.cer.

Ci sono un paio di opzioni di build e un paio di modi per personalizzare la build, descritti in BUILDING.

Vedi il piano di test e apri un ticket se qualcosa fallisce!

contatti

Nel caso in cui sia necessario contattare gli sviluppatori per un incidente di sicurezza o una vulnerabilità, invia un'email a [email protected].

Scarica lo strumento