| name | analyzing-windows-shellbag-artifacts |
| description | 分析 Windows ShellBag 注册表取证痕迹,使用 SBECmd 和 ShellBags Explorer 重建文件夹浏览活动,检测对可移动介质和网络共享的访问,并在删除后仍能确认用户与目录的交互行为。 |
| domain | cybersecurity |
| subdomain | digital-forensics |
| tags | ["shellbags","windows-registry","sbecmd","shellbags-explorer","folder-access","user-activity","removable-media","network-shares","bagmru","dfir"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
分析 Windows ShellBag 取证痕迹
概述
ShellBag 是 Windows 注册表取证痕迹,用于追踪用户通过 Windows 资源管理器与文件夹的交互方式,存储视图设置,如图标大小、窗口位置、排序顺序和视图模式。从取证角度看,ShellBag 能提供文件夹访问的确切证据——即便文件夹已不存在于系统中。当用户通过 Windows 资源管理器、打开/保存对话框或控制面板浏览到某文件夹时,用户注册表配置单元中会创建或更新一条 ShellBag 条目。这些条目在文件夹删除、驱动器断开连接甚至跨用户配置文件重置后仍会保留,使其在证明用户导航到本地驱动器、USB 设备、网络共享或 zip 压缩包中的特定目录时极具价值。
注册表位置
Windows 7/8/10/11
| 配置单元 | 键路径 | 存储内容 |
|---|
| NTUSER.DAT | Software\Microsoft\Windows\Shell\BagMRU | 文件夹层级树 |
| NTUSER.DAT | Software\Microsoft\Windows\Shell\Bags | 每个文件夹的视图设置 |
| UsrClass.dat | Local Settings\Software\Microsoft\Windows\Shell\BagMRU | 桌面/资源管理器 Shell |
| UsrClass.dat | Local Settings\Software\Microsoft\Windows\Shell\Bags | 附加视图设置 |
BagMRU 结构
BagMRU 键包含一个以数字编号的子键层级树,表示目录结构。每个子键值包含一个 Shell Item(SHITEMID)二进制 blob,对文件夹标识进行编码:
- 根(BagMRU):桌面命名空间根
- BagMRU\0:通常为"我的电脑"
- BagMRU\0\0:第一个驱动器(如 C:)
- BagMRU\0\0\0:C: 上的第一个子文件夹
每个 Shell Item 包含:
- 项目类型(文件夹、驱动器、网络、zip、控制面板)
- 短名称(8.3 格式)
- 长名称(Unicode)
- 创建/修改时间戳
- NTFS 文件夹的 MFT 条目/序列号
使用 EZ Tools 分析
SBECmd(命令行)
# 从注册表配置单元目录解析 ShellBag
SBECmd.exe -d "C:\Evidence\Registry" --csv C:\Output --csvf shellbags.csv
# 从实时系统解析(需要管理员权限)
SBECmd.exe --live --csv C:\Output --csvf live_shellbags.csv
# 关键输出列:
# AbsolutePath - 完整重建路径
# CreatedOn - 文件夹首次被浏览的时间
# ModifiedOn - 视图设置最后更改时间
# AccessedOn - 最后访问时间戳
# ShellType - Shell 项目类型(Directory、Drive、Network 等)
# Value - 原始 Shell 项目数据
ShellBags Explorer(GUI)
# 启动 GUI 工具进行交互式分析
ShellBagsExplorer.exe
# 加载注册表配置单元:File > Load Hive
# 在树形结构中导航查看文件夹层级
# 右键点击条目查看详细 Shell 项目属性
取证调查场景
证明 USB 设备浏览行为
Shellbag Path: My Computer\E:\Confidential\Project_Files
ShellType: Directory (on removable volume)
CreatedOn: 2025-03-15 09:30:00 UTC
这证明用户通过 Windows 资源管理器导航到了 E:\Confidential\Project_Files,
即使 USB 驱动器已不再连接。
卷盘符 E: 和目录时间戳可与 USBSTOR 和 MountPoints2 注册表条目关联。
检测网络共享访问
Shellbag Path: \\FileServer01\Finance\Q4_Reports
ShellType: Network Location
AccessedOn: 2025-02-20 14:15:00 UTC
这证明用户浏览了网络共享,即使该共享已停用或访问权限已撤销。
识别已删除文件夹的访问记录
Shellbag Path: C:\Users\suspect\Documents\Exfiltration_Staging
ShellType: Directory
CreatedOn: 2025-01-10 08:00:00 UTC
即使 C:\Users\suspect\Documents\Exfiltration_Staging 已不存在,
ShellBag 条目仍证明用户创建并导航到了该文件夹。
局限性
- ShellBag 只记录文件夹级别的交互,不记录单个文件的访问
- 只通过 Windows 资源管理器 Shell 和打开/保存对话框创建
- 命令行访问(cmd、PowerShell)不生成 ShellBag 条目
- 通过 API 进行的编程化文件访问不生成 ShellBag 条目
- 时间戳可能反映视图设置更改,不一定是文件夹访问
- Windows 可能在资源管理器关闭期间批量更新 ShellBag 条目
参考资料