Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
secure-boot-cert-servicing — Standalone assessment and servicing for the Secure Boot 2011 to 2023 certificate rollover (CVE-2023-24932 / KB5025885). Assess-only by default; no dependencies, no network, no telemetry. | Kitploit
Tools/GitHubGitHub/ets-mse/secure-boot-cert-servicing
Vulnerability AnalysisConfiguration AuditingFirmware Analysis
GitHubets-mse/secure-boot-cert-servicing

secure-boot-cert-servicing

Standalone assessment and servicing for the Secure Boot 2011 to 2023 certificate rollover (CVE-2023-24932 / KB5025885). Assess-only by default; no dependencies, no network, no telemetry.

View Repository

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
24 days agoNot yet reviewed

Secure Boot Certificate Rollover — assessment and servicing

A single, self-contained PowerShell script that assesses a Windows machine's Secure Boot certificate posture for the 2011 → 2023 rollover (CVE-2023-24932 / KB5025885) and, only when you explicitly ask it to, opts that machine in to the Microsoft servicing pipeline.

Published by Exchange Technology Services for customers and partners who manage their own endpoints.


The short version

The Secure Boot certificates Microsoft issued in 2011 are expiring and being replaced by 2023 versions.

CertificateDateStoreRole
Microsoft Corporation KEK CA 2011expired 24 Jun 2026KEKAuthorises updates to DB and DBX
Microsoft UEFI CA 2011expired 27 Jun 2026DBSigns third-party loaders / option ROMs
Windows Production PCA 201119 Oct 2026DBSigns the Windows boot loader

No machine stops booting on any of these dates. Microsoft's guidance is that a device reaching expiry without the new certificates "will still start and operate normally."

What is lost is the ability to receive early-boot security updates — new Secure Boot revocations, BitLocker bypass mitigations, boot-manager fixes. That is accumulating exposure rather than an outage.

After 19 Oct 2026, a machine whose firmware never took Windows UEFI CA 2023 also stops validating newly-signed Windows boot media, which can affect recovery, install and PXE media.

The KEK is the gate. Without Microsoft Corporation KEK 2K CA 2023 in firmware, Windows Update cannot deliver the DB update at all. A machine missing it cannot be remediated until the KEK arrives via Windows Update or an OEM BIOS update. This is the most common blocker in practice, and the script reports it explicitly rather than writing a value that would do nothing.


What this script does and does not do


Running it

Windows PowerShell 5.1, as Administrator — reading the UEFI variables requires elevation.

1. Unblock the file (Windows blocks downloaded scripts):

root@kitploit:~
Unblock-File .\Invoke-SecureBootCertServicing.ps1

2. Assess — safe, makes no changes:

root@kitploit:~
powershell.exe -ExecutionPolicy Bypass -File .\Invoke-SecureBootCertServicing.ps1

3. Apply, only if the assessment says the machine is ready:

root@kitploit:~
.\Invoke-SecureBootCertServicing.ps1 -Apply -SuspendBitLocker

Capturing the output

The report is written with Write-Host, so it renders on the console and is recorded by Start-Transcript. A plain > redirect will not capture it, and neither will piping to another command.

root@kitploit:~
Start-Transcript C:\Temp\secureboot.log
.\Invoke-SecureBootCertServicing.ps1
Stop-Transcript

For a machine-readable copy, useful when collecting results across a fleet:

root@kitploit:~
.\Invoke-SecureBootCertServicing.ps1 -JsonPath C:\Temp\secureboot.json

Verdicts


Two axes, deliberately not merged

The report shows servicing state and migration state separately.

  • Servicing state — what Microsoft's pipeline says it is doing.
  • Migration state — what is actually true of the boot path.

These genuinely disagree in the field. A machine can report UEFICA2023Status = Updated while both boot-manager binaries on disk are still 2011-signed — that happens when the firmware shipped the 2023 CA pre-enrolled, so the certificate side completed while the boot-manager side never ran. Folding the two into one field reports that machine as finished when it is half-migrated.

For the same reason the script does not derive status from WindowsUEFICA2023Capable. Microsoft's documentation says of that value, verbatim: "For reference only - do not use this key when getting status on Secure Boot updates." It is captured as a diagnostic only.


BitLocker

The servicing steps change firmware state, which can move the TPM PCRs a BitLocker protector is sealed to, which can produce a recovery-key prompt at the next boot.

  • The script refuses to arm a protected volume with no recovery-password protector — there would be no way back in.
  • It cannot verify that you hold a copy of that key. Confirm your escrow is healthy before running -Apply at scale.
  • -SuspendBitLocker suspends protection across the next reboot so the change re-seals without prompting. BitLocker resumes automatically afterwards.
  • The report states your PCR profile. A PCR 7 based profile is measured-boot safe for a certificate add. A profile including PCR 0/2/4 covers firmware and boot-manager measurements, which these steps do move — higher risk of a prompt.

BitLocker state is read three independent ways (Get-BitLockerVolume, manage-bde, and Win32_EncryptableVolume) and reconciled. If the readers disagree, or if none can read the volume, the script refuses to change firmware rather than guess.


Parameters

Virtual machines are excluded by default: the 2023 CA reaches the firmware baseline via a BIOS update, and a VM's firmware comes from its hypervisor — a guest on an un-updated host cannot complete the migration on its own.


What to expect after applying

  • It will not finish on the first reboot. Windows applies the certificate update, then the boot-manager update, typically across more than one restart with a scheduled task running in between.
  • Microsoft gates this per device. Setting the value queues the work; Microsoft's staged rollout decides when each machine is eligible. If nothing appears to happen, re-run and read the "Microsoft gate" line — it states the reason, for example "Under Observation - More Data Needed".
  • Re-run at any time to check progress. It is safe to run repeatedly.

Validation

Tested end to end on Windows 11 (build 26200, PowerShell 5.1, running as SYSTEM), UEFI with Secure Boot enabled, BitLocker fully encrypted with TPM + RecoveryPassword protectors on a PCR 7,11 profile:

  • Correctly identified a half-migrated machine — firmware trusting Windows UEFI CA 2023 while bootmgfw.efi was still signed by Microsoft Windows Production PCA 2011 — and did not report it as finished, despite that machine simultaneously reporting UEFICA2023Status = Updated and WindowsUEFICA2023Capable = 2.
  • All three BitLocker readers agreed and were reconciled.
  • Refusal gates verified: virtual machine (exit 2), and the 0x80 revocation bit (exit 1).
  • -Apply wrote 0x5944, confirmed by an independent registry read.
  • -SuspendBitLocker followed by a reboot: the machine returned with no recovery prompt and BitLocker auto-resumed.
  • Start-Transcript captured the full report; the JSON output contained no recovery-key material.

Not yet observed: a machine completing the full migration to FullyMigrated. The final step is gated by Microsoft's staged per-device rollout, which is outside anyone's control. The script surfaces that gate's stated reason rather than leaving it as an unexplained no-op.


Licence

MIT — see LICENSE. Provided as-is, with no warranty. Review it before running it in your environment; it is a single readable file for exactly that reason.

Download Tool
PropertyDetail
Default behaviourAssessment only. Zero writes without -Apply.
DependenciesNone. No modules, no installer. Windows PowerShell 5.1.
Network accessNone. It never contacts any host.
Telemetry / reportingNone. Everything it finds, it prints to your console. Nothing leaves the machine.
BitLocker recovery keysNever read, printed, or transmitted. It only checks whether a recovery-password protector exists.
What -Apply writesExactly one registry value: AvailableUpdates = 0x5944 under HKLM\SYSTEM\CurrentControlSet\Control\Secureboot. The documented KB5025885 opt-in. Additive — it adds the 2023 certificate without removing the 2011 one.
Irreversible actionsHard-refused. The 0x80 DBX revocation bit is permanent while Secure Boot stays enabled; the script refuses any value carrying it unless -AllowRevocation is passed explicitly. Do not pass it.
RebootsIt never reboots the machine and never prompts the user.
VerdictMeaningExit
ReadyToArmKEK 2023 present, DB not yet migrated, not opted in. -Apply is the next step.0
HalfMigratedFirmware trusts the 2023 CA but the machine still boots a 2011-signed loader. Fine today; would fail to boot if 2011 were ever revoked. Still needs the boot-manager update.0
HalfMigrated-ArmedAs above, and already opted in. Restart the machine — do not run -Apply again.0
AlreadyQueuedOpted in, waiting on Microsoft's staged rollout.0
InProgress / RebootPendingServicing underway. Reboot and re-run to watch progress.0
FullyMigratedDone. Boot manager is 2023-signed.2
BlockedNoKek2023KEK 2023 missing. Install pending Windows Updates and/or the OEM BIOS update first.3
BlockedFirmwareKekFirmware has no KEK signed by this machine's Platform Key. Needs an OEM BIOS update (or, on a VM, a host update).3
NotApplicable-*Legacy BIOS, or Secure Boot disabled.2
ErrorServicing reported a fault; the error code is printed.0
ParameterDefaultPurpose
-ApplyoffPerform the write. Without it, read-only.
-SuspendBitLockeroffSuspend BitLocker across the servicing reboot.
-RebootCount1How many reboots to suspend across (1–15).
-JsonPathnoneAlso write the assessment as JSON.
-MountPointsystem driveVolume to evaluate.
-ApplyValue0x5944The AvailableUpdates DWORD.
-AllowRevocationoffRequired for any value carrying the irreversible 0x80 DBX bit. Do not pass this.
-AllowVirtualMachineoffPermit arming a VM.
-AllowServeroffPermit arming a Server SKU.