通过windows启动流程分析rootkit的潜在位置

本文详细解析了Windows从固件启动到系统完全启动的整个流程,包括BIOS/EFI、启动管理器、启动加载器等阶段,并着重指出可能隐藏Rootkit的位置,如服务/驱动启动、会话管理器等环节,为Rootkit学习者提供了参考。
摘要由CSDN通过智能技术生成

通过学习windows启动流程,我们可以了解该过程中系统启动了什么服务,加载了什么驱动,运行了什么程序,这对学习rootkit有参考意义。

下图是windows从引导开始,到windows子系统启动完成的整个流程:

在这里插入图片描述

我将跟随书本的顺序,将一些我认为可以藏rootkit的位置加粗表示出来。

固件启动

书上介绍了两种固件启动方式,分别是BIOS和EFI。

BIOS固件启动

机器启动时进行加电自检(Power-on Self-test, POST),POST的工作有确定板载内存大小,对内存进行循环检测,枚举主板上存储设备并确定状态等。

接下来BIOS搜索可引导设备列表以查找引导扇区。硬盘的第一个扇区是主引导记录(MBR),是由windows安装程序写进去的,MBR包含引导代码和分区表,分区表由4个分区表项构成,每个分区表项指向一个主分区。MBR在分区表中找到活动分区(也叫可引导分区,也叫系统卷),然后加载活动分区的引导扇区到内存。引导扇区也叫卷引导记录(Volume Boot Record, VBR),它是分区的第一个扇区,包含一小段引导代码。

在这里插入图片描述

VBR中的引导代码负责读取分区文件系统,执行 %SystemDrive%\bootmgr ,这是一个16位启动器管理程序,在实模式下运行,负责建立必须的数据结构,把机器切换到保护模式,把启动管理器的保护模式版本加载到内存。

EFI固件启动

这种方式更简单些,加电自检(POST)后,执行 %SystemDrive%\EFI\Microsoft\Boot\Bootmgfw.efi程序,将机器切换到保护模式。

启动管理器

BIOS和EFI机器最终都将启动管理器 bootmgr / Bootmgfw.efi 加载到内存中执行。

启动管理器通过注册表储巢文件中的配置数据启动系统,这个文件叫做 BCD(启动配置数据),它存储在下面两个位置之一:

  • %SystemDrive%\Boot\ 对于BIOS机器
  • %SystemDrive%\EFI\Microsoft\Boot\ 对于EFI机器

在这里插入图片描述

一般使用 bcdedit 工具对这个文件进行操作,比如之前配置WIN7双机调试环境时,就使用了这个工具。

bcdedit /enum

上面这个命令可以枚举BCD对象,如果配置了双机调试,应该至少能看到3条记录,我这没配置:

在这里插入图片描述

启动加载器

  • BIOS: winload.exe
  • EFI: winload.efi

启动加载器首先加载 SYSTEM 注册表储巢(位于%SystemRoot%\System32\config),并将它装载到注册表 HKLM\SYSTEM 键下。

然后加载数字签名目录文件 nt5.cat 验证

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值