sumeshi/ntfsdump
GitHub: sumeshi/ntfsdump
一款无需挂载即可从 NTFS 磁盘镜像中直接提取文件、目录和备用数据流的取证工具。
Stars: 22 | Forks: 6
# ntfsdump
[](LICENSE)
[](https://badge.fury.io/py/ntfsdump)
[](https://pypi.org/project/ntfsdump/)
[](https://github.com/sumeshi/ntfsdump/actions/workflows/test.yaml)

一个直接从 NTFS 镜像文件中提取文件、目录和备用数据流的高效工具。
## 🚀 概述
`ntfsdump` 允许数字取证调查人员和事件响应人员无需挂载磁盘镜像即可无缝提取记录。通过利用强大的后端库(如 `pytsk3` 和 `libyal`),它支持读取标准磁盘镜像格式(RAW、E01、VHD(x)、VMDK),并能可靠地转储 NTFS 结构。
## 📦 功能
- **直接提取**:无需挂载开销,直接从 NTFS 分区提取文件。
- **支持多种格式**:支持读取 `.raw`、`.e01`、`.vhd`、`.vhdx` 和 `.vmdk`。
- **递归目录转储**:无缝提取整个文件夹。
- **备用数据流 (ADS)**:支持提取隐藏的备用数据流。
- **智能路径重建**:当输出深度嵌入目录中的单个文件并使用绝对路径(例如 `\Windows\System32...`)时,`ntfsdump` 会在输出目标文件夹中重建目录结构,使工件保持完美有序。
- **Glob 和通配符查询**:支持提取匹配工件的基本功能(例如 `.*`)。
- **可作为 CLI 或 Python 模块使用**:具有极高的灵活性,可集成到其他自动化工具中。
## ⚙️ 执行环境
- **Python**:兼容 Python 3.13+。
- **预编译二进制文件**:在 [GitHub 发布](https://github.com/sumeshi/ntfsdump/releases) 区域提供 Windows 和 Linux 版本。
## 📂 安装
```
# 从 PyPI
pip install ntfsdump
# 从 GitHub Releases(预编译二进制文件)
chmod +x ./ntfsdump
./ntfsdump --help
```
## 🛠️ 要求和文件前置条件
镜像文件必须满足以下条件:
- **格式**:`raw`、`e01`、`vhd`、`vhdx`、`vmdk`。
- **文件系统**:`NTFS`。
- **分区表**:`GPT`(MBR 通常会自动检测,但官方支持 GPT)。
## 💻 使用方法
### 命令行界面
您可以直接向 CLI 传递参数。输出路径可以是文件路径或目录路径。
```
ntfsdump [OPTIONS] [PATHS...]
```
**选项**:
- `--help`、`-h`:显示帮助信息。
- `--version`、`-V`:显示程序版本。
- `--quiet`、`-q`:抑制标准输出。
- `--no-log`:禁止创建日志文件。
- `--flat`:将所有工件纯粹提取到单个文件夹中,而不重建目录结构。
- `--volume`、`-n`:指定目标 NTFS 卷号(默认值:自动检测主操作系统卷)。
- `--format`、`-f`:镜像文件格式(默认值:`raw`)。选项:`raw`、`e01`、`vhd`、`vhdx`、`vmdk`。
- `--output`、`-o`:保存导出输出的目录或文件。
#### 示例
转储单个文件:
```
ntfsdump -o ./dump ./path/to/your/image.raw /$MFT
```
递归转储整个目录:
```
ntfsdump -o ./dump ./path/to/your/image.raw /Windows/System32/winevt/Logs
```
从分割的 E01 镜像中提取(提供起始段 `.E01`):
```
ntfsdump --format=e01 -o ./dump ./path/to/your/image.E01 /Windows/System32/winevt/Logs
```
通过标准输入(管道)配合 [ntfsfind]( 提取 `$MFT`
- **ADS**:`/$Extend/$UsnJrnl:$J` -> 从 `$UsnJrnl` 提取 `$J` ADS 文件。
- **目录**:`/Windows/System32/winevt/Logs` -> 递归提取所有事件日志。
- **前缀扩展**:`/Windows/Prefetch/.*` -> 提取 `Prefetch` 目录中的所有文件。
## 📝 日志
默认情况下,会在当前目录生成执行日志(例如 `ntfsdump_20240101_153205_1234.log`),以安全记录哪些文件成功转储或失败。
*要完全禁用日志,请追加 `--no-log` 标志。*
## 🤝 贡献
我们欢迎报告、问题和功能请求。请在 [GitHub 仓库](https://github.com/sumeshi/ntfsdump) 上提交。:sushi: :sushi: :sushi:
## 📜 许可证
根据 [LGPLv3+](LICENSE) 许可证发布。
技术支持:
- [pytsk](https://github.com/py4n6/pytsk)
- [libewf](https://github.com/libyal/libewf)
- [libvhdi](https://github.com/libyal/libvhdi)
- [libvmdk](https://github.com/libyal/libvmdk)
标签:ADS, disk image parsing, E01, forensics, incident response, libyal, NTFS, NTFS analysis, Python, pytsk3, VHD, VMDK, 取证工具, 备用数据流, 数字取证, 文件恢复, 文件提取, 无后门, 磁盘镜像, 自动化脚本, 身份验证滥用, 镜像分析