第一个感染UEFI的BootKit——DreamBoot复现

环境Windows 8 64位企业版
在这里插入图片描述
首先看下UEFI的启动过程。

                                   **DreamBoot的HOOK情况**

其中bootmgfw.efi被EFI固件在0x10000000地址处加载。
在加载winload.exe的入口点代码前,进行
.text:0000000010108D78 call bootmgfw_Archpx64TransferTo64BitApplicationAsm_hook
Patch的内容:五个字节 0xFF,0xD0,0x48,0x8B,0x25

在加载ntoskrnl.exe代码入口点和初始化内核gdt/idt前
.text:0000000140115820 patch iOslArchTransferToKernel()
Patch的内容:9个字节0x48,0x33,0xF6,0x4C,0x8B,0xE1,0x4C,0x8B,0xEA

smss.exe的导出函数:nt!NtSetInformationThread
kiSystemStartup的一个子函数sub_1406F3360
Patch NX flag activation

Anti patch-guard

  • sub_1406C5050 proc near
  • INIT:00000001406C5060 sub rsp, 28h
  • INIT:00000001406C5064 cmp cs:InitSafeBootMode, 0
  • INIT:00000001406C506B jnz short loc_1406C509A
  • INIT:00000001406C506D movzx edx, byte ptr cs:KdDebuggerNotPresent
  • INIT:00000001406C5091 idiv r8d

如何复现运行Dreamboot?

在这里插入图片描述
编译虚拟机设置,把默认的bios启动更改为UEFI启动。

Dreamboot复现成功后,电脑开机时出现的界面。
在这里插入图片描述
除了EFI加载基地址会变以外,其余均不会改变地址。
在这里插入图片描述

在这里插入图片描述
开机之后先在内核看到一个未知模块的PE,是注册了一个镜像加载回调,可以判定系统已经被成功感染。
在这里插入图片描述
在这里插入图片描述
再次启动后发现没有签名的Microsoft驱动。

首先,感谢任何一个阅读,关注或点赞我博客的朋友!! 当然博客中的任何问题都欢迎大家随时指出! 欢迎有兴趣的人私信留下你的联系方式,我们可以一起沟通,一起学习哦!我的学习交流QQ群366469549。 再次感谢大家的支持!!! 我会再接再厉的!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摔不死的笨鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值