ntfstool 项目介绍
简介
NTFSTool 是一个专注于 NTFS 卷的取证工具。该工具专为帮助用户读取分区信息(MBR、分区表、VBR)以及主文件表、Bitlocker 加密卷、EFS 加密文件、USN 日志等信息而设计。用户可以在 AppVeyor 或 GitHub 的最新版本获取该工具。
功能
取证功能
NTFSTool 提供主引导记录、卷引导记录、分区表以及 $MFT 文件记录的完整结构显示。用户可以导出任何文件(如 $MFT 或 SAM)并解析分析 USN 日志和 LogFile,包括从替代数据流 (ADS) 中的流。$MFT 可以以 CSV 或 JSON 格式导出,并对 Zone.Identifier 进行解析,以快速识别下载的文件。还支持通过读取图像文件、实时磁盘或虚拟磁盘查找标记为“未使用”的文件记录并恢复文件(如果文件已经被重写则可能仅能恢复部分)。
该工具还支持稀疏文件和压缩文件(lznt1、xpress)。
Bitlocker 支持
对于受 Bitlocker 加密的分区,NTFSTool 支持显示 FVE 记录,检查密码和密钥(bek、密码、恢复密钥),提取 VMK 和 FVEK。虽然该工具不支持暴力破解功能,因为基于 GPU 的破解工具(如 Bitcracker 和 Hashcat)更为有效,但是它可以为这些工具提供哈希值。
EFS 支持
NTFSTool 可以列出、显示和解密使用必要输入(SID、密码)的主密钥、私钥和证书。用户可以使用导出命令备份证书和私钥,然后在另一台机器上重新导入备份以读取加密文件,或者使用 efs.decrypt
命令通过备用密钥解密文件。
USN 日志分析
通过自定义规则分析 USN 日志记录,可用于检测可疑程序和操作,并提供日志概览(例如删除、创建的文件百分比)。
UNIX 风格 Shell
NTFSTool 提供一个有限的 shell,可以使用 exit、cd、ls、cat、pwd、cp、quit、rec 等少量命令。命令 rec
可以显示 MFT 记录的详细信息。
使用帮助和示例
该工具提供了帮助命令,可显示每个命令的描述和示例。选项可以以十进制或“0x”前缀的十六进制数字输入。
常用命令包括:
info
: 显示所有磁盘和卷的信息mbr
: 显示磁盘的 MBR 结构、代码和分区extract
: 从卷中提取文件image
: 创建磁盘或卷的映像文件efs.decrypt
: 使用 PKCS12 (pfx) 格式的密钥解密 EFS 加密文件
限制
目前 ntfstool 有一些尚未支持的功能,并且缺乏文档支持。用户可以随时通过打开问题或请求新功能来帮助改进该工具。
构建指南
要构建 ntfstool,首先需安装 Visual Studio 2022 和 vcpkg(用于所需的第三方库)。以下是步骤概述:
- 从 GitHub 克隆 vcpkg 仓库并安装。
- 将其集成到 Visual Studio 环境中。
- 在编译时,Visual Studio 会检测到
vcpkg.json
文件并自动安装所需的包。
使用的第三方库包括 OpenSSL、nlohmann-json、distorm、cppcoro 和 RE2 等。
示例
以下是一些工具功能的实际示例:
info
: 显示磁盘和卷的详细信息。mbr
: 分析磁盘的 MBR 结构和分区。extract
: 按路径提取文件到指定输出路径。
通过这些功能,用户可以对磁盘上的数据结构进行深入分析和操作,从而满足不同的取证需求。