Windows 注册表是 Windows 系统中非常重要的配置数据库,里面保存了系统、硬件、用户、软件、服务、网络、外接设备、启动项等大量信息。微软官方将其描述为一个分层数据库,数据以树状结构组织,每个节点叫 Key,Key 下面可以有子 Key 和 Value。对取证来说,注册表经常可以用来还原“谁用过这台电脑、插过什么设备、运行过什么程序、配置过什么启动项、访问过什么文件夹”。(微软官方说明Microsoft Learn)
一、注册表取证能查什么
注册表取证主要用于分析这些问题:
1. 这台电脑有哪些用户?
2. 用户最后一次登录或使用痕迹是什么?
3. 是否插入过 U 盘、移动硬盘、手机等外接设备?
4. 是否运行过某些程序?
5. 是否存在恶意启动项、服务、计划任务?
6. 用户是否访问过某些文件夹或网络路径?
7. 系统时区、计算机名、网络配置是什么?
8. 是否存在远控、后门、持久化配置?
注册表本身不能解决所有问题,它更适合和事件日志、Prefetch、LNK、Jump Lists、浏览器记录、MFT、UsnJrnl 等证据一起交叉验证。
二、注册表的基本结构
注册表可以简单理解成一个树状数据库:
Hive 注册表配置单元
Key 键,类似文件夹
Subkey 子键
Value 值,类似具体配置项
Data 值里面保存的数据
例如:
HKEY_LOCAL_MACHINE
└── SOFTWARE
└── Microsoft
└── Windows
└── CurrentVersion
└── Run
其中 Run 这个键下面的值,可能记录开机自启动程序。
微软官方文档中中说明,Hive 是注册表中 Key、Subkey 和 Value 的逻辑组合,并且有对应的支持文件。
这些 Hive 会在系统启动或用户登录时加载到内存中。(Microsoft Learn)
三、常见注册表 Hive 文件
在做取证时,如果不使用软件进行仿真,那我们可以尝试从镜像中提取注册表 Hive 文件进行分析。
1. 系统级 Hive
路径一般在:
C:\Windows\System32\Config\
常见文件:
| Hive 文件 |
主要作用 |
SYSTEM |
硬件、服务、驱动、USB 设备、ControlSet、时区等 |
SOFTWARE |
已安装软件、系统配置、部分启动项 |
SAM |
本地用户、组信息 |
SECURITY |
安全策略、权限、部分凭据相关信息 |
DEFAULT |
默认用户配置 |
这些系统 Hive 文件通常位于 C:\Windows\System32\Config,用户相关 Hive 则位于用户配置文件目录中。微软文档也说明,用户配置文件 Hive 会在用户登录时创建并加载到 HKEY_USERS 下。
2. 用户级 Hive
每个用户都有自己的注册表文件。
常见位置:
C:\Users\用户名\NTUSER.DAT
C:\Users\用户名\AppData\Local\Microsoft\Windows\UsrClass.dat
常见用途:
| Hive 文件 |
主要作用 |
NTUSER.DAT |
当前用户的软件设置、Recent、UserAssist、TypedPaths、部分 MRU 记录 |
UsrClass.dat |
ShellBags、用户级 COM、资源管理器相关痕迹 |
简单理解:
SYSTEM / SOFTWARE / SAM / SECURITY 偏系统层面
NTUSER.DAT / UsrClass.dat 偏用户行为层面
四、注册表取证的基本流程
第一步:从镜像中提取 Hive
使用镜像解析软件导出Hive文件。
常见需要导出的文件:
C:\Windows\System32\Config\SYSTEM
C:\Windows\System32\Config\SOFTWARE
C:\Windows\System32\Config\SAM
C:\Windows\System32\Config\SECURITY
C:\Windows\System32\Config\DEFAULT
C:\Users\用户名\NTUSER.DAT
C:\Users\用户名\AppData\Local\Microsoft\Windows\UsrClass.dat
C:\Windows\AppCompat\Programs\Amcache.hve
第二步:使用工具打开 Hive
常用工具:
| 工具 | 用途