超级UEFI无安全启动磁盘
超级UEFI无安全启动磁盘是一个_概念验证(不积极维护或增强)_引导镜像,带有GRUB2启动加载程序,设计用于作为恢复USB闪存驱动器的基础。
主要特点: 磁盘在启用UEFI安全启动模式下完全功能。它可以在没有可信、无效或缺少签名的情况下启动任何操作系统或.efi文件。
功能:
- GRUB2启动加载程序
- 支持32位(ia32)/ 64位(x86_64)UEFI(+安全启动)
- 支持BIOS / UEFI CSM
- 启动任何操作系统
- 从GRUB2启动任何.efi可执行文件
- 从另一个.efi应用程序启动任何.efi可执行文件
- 加载任何UEFI驱动程序
基于:
- Red Hat shim (v15-8),来自Fedora,用微软密钥签名,用于初始引导
- 修改后的Linux Foundation PreLoader用于绕过UEFI安全策略安装
- 带有链式加载器、linux/linuxefi和shim安全绕过补丁的GRUB2
描述
安全启动是UEFI固件的一个功能,旨在通过阻止加载没有可接受数字签名的驱动程序或操作系统加载程序来确保引导过程的安全。
大多数现代计算机默认启用安全启动,这是Windows 10认证过程的要求。尽管可以在所有典型的主板UEFI设置菜单中禁用它,但有时不容易实现,例如由于用户不知道企业笔记本电脑的UEFI设置密码。
此磁盘在安装到USB闪存驱动器并从中引导后,可以有效地禁用安全启动保护功能,并临时允许执行几乎所有操作,就像禁用了安全启动一样。这对于数据恢复、操作系统重新安装或仅仅从USB引导而不需要额外步骤非常有用。
安装
下载发布页面的镜像文件,使用以下程序之一将其写入USB闪存:
- Rosa ImageWriter(用于Windows和Linux)
- Etcher(用于Windows、Linux和macOS)
警告:您的所有USB闪存数据将被删除。
镜像包含一个单一的FAT32 500MiB分区。使用gparted或类似工具调整其大小以获取完整的USB驱动器空间。
用法
在启用安全启动的电脑上首次引导时,将显示"访问违规"消息框。按OK并选择“从文件注册证书”菜单选项。选择ENROLL_THIS_KEY_IN_MOKMANAGER.cer
并确认证书注册。
没有安全启动的计算机将无需手动干预直接引导至GRUB。
常见问题
-
这个磁盘在安全启动下工作吗?
是的,它可以。在首次引导使用MokManager软件手动注册密钥后,它可以加载任何未签名或不可信的Linux内核或.efi文件或驱动程序。您无需禁用安全启动即可执行首次引导密钥注册。 -
这个磁盘在没有安全启动或禁用安全启动的UEFI电脑上工作吗?
是的,它就像一个普通的GRUB2一样工作。 -
这个磁盘在旧的带有BIOS的计算机上工作吗?
是的,它就像任何其他GRUB2引导程序一样工作。 -
这个磁盘可以用于在UEFI 引导工具包/病毒中绕过安全启动吗?
不,实际上不行。这个磁盘需要在首次引导时实际用户的手动干预,这消除了引导工具包隐藏的目的。 -
我可以用另一个EFI启动加载程序(rEFInd、syslinux、systemd-boot)替换GRUB吗?
是的,替换grubx64_real.efi
/grubia32_real.efi
为您的文件。启动加载程序不需要签名,并且由于grubx64.efi
/grubia32.efi
(预加载器)安装的安全策略,它也应启动任何 .efi 文件,如同磁盘中包含的GRUB2一样。
技术信息
此磁盘的UEFI引导过程分为3个阶段。
bootx64.efi (shim) → grubx64.efi (preloader) → grubx64_real.efi (grub2) → EFI 文件/操作系统
阶段 1:主板加载shim。Shim是一个特殊的加载程序,它仅加载下一个可执行文件,在我们的情况下是grubx64.efi(预加载器)。Shim用微软密钥签名,这使其可以在启用安全启动模式的所有标准PC主板上启动。
Shim包含嵌入的Fedora证书(因为它是从Fedora存储库中提取的)。如果启用了安全启动,由于grubx64.efi未使用嵌入的Fedora证书签名,shim将引导另一个可执行文件MokManager.efi,这是一个特殊的shim密钥管理软件。MokManager要求用户继续进行密钥或哈希注册过程。
shim的较新版本安装了UEFI LoadImage、StartImage、ExitBootServices和Exit函数的钩子以“防止非参与引导加载程序”,这需要绕过以用于此磁盘的用例。Fedora的shim没有安装自定义的UEFI安全策略,这就是为什么即使您使用MokManager添加了它们的哈希或证书,也不可能从第二阶段引导加载程序加载自签署的efi文件。
阶段 2:预加载器是类似于shim的软件。它还执行可执行文件验证并加载下一个efi文件。此磁盘中包含的预加载器是一个精简版,只执行一个功能:安装允许所有的UEFI安全策略。这允许使用LoadImage/StartImage UEFI函数加载任意efi可执行文件,即使在GRUB之外(例如,在UEFI Shell中),并绕过shim硬化。
阶段 3:GRUB2是一个众所周知的通用引导加载程序。它已被补丁处理,以无需额外验证地加载Linux内核(linux/linuxefi命令),将.efi二进制文件加载到内存并跳转到其入口点(链式加载命令),并模仿“参与引导加载程序”以适应shim。
其他信息
阅读我关于此主题的文章:利用已签名的引导加载程序绕过UEFI安全启动(也有俄语版本)
注释
超级UEFI无安全启动磁盘GRUB2设置suisbd=1
变量。可以在grub.conf
共享多个引导加载程序之间用来检测磁盘的补丁GRUB2。
自第3版起,GRUB使用标准UEFI .efi文件加载程序,因为内部加载程序实现存在一些问题。要使用内部加载程序,请在GRUB配置文件中添加set efi_internal_loader=1
。两种方法均可加载不可信任的.efi文件。