# Analyzing Windows Shellbag Artifacts

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

- Skill: `killvxk/analyzing-windows-shellbag-artifacts` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add killvxk/analyzing-windows-shellbag-artifacts`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/analyzing-windows-shellbag-artifacts/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/analyzing-windows-shellbag-artifacts

---


# 分析 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（命令行）

```powershell
# 从注册表配置单元目录解析 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）

```powershell
# 启动 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 条目

## 参考资料

- Shellbag 取证分析 2025: https://www.cybertriage.com/blog/shellbags-forensic-analysis-2025/
- SANS ShellBag 取证: https://www.sans.org/blog/computer-forensic-artifacts-windows-7-shellbags
- Magnet Forensics ShellBag 分析: https://www.magnetforensics.com/blog/forensic-analysis-of-windows-shellbags/
- ShellBags Explorer: https://ericzimmerman.github.io/

