界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

analyzing-windows-shellbag-artifacts

analyzing-windows-shellbag-artifacts

【效率与协作】分析 Windows ShellBag 注册表取证痕迹,使用 SBECmd 和 ShellBags Explorer 重建文件夹浏览活动,检测对可移动介质和网络共享的访问,并在删除后仍能确认用户与目录的交互行为。

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

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.DATSoftware\Microsoft\Windows\Shell\BagMRU文件夹层级树
NTUSER.DATSoftware\Microsoft\Windows\Shell\Bags每个文件夹的视图设置
UsrClass.datLocal Settings\Software\Microsoft\Windows\Shell\BagMRU桌面/资源管理器 Shell
UsrClass.datLocal 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 条目

参考资料

我的收藏