取证笔记
关于 NTFS 内部结构、MFT 格式以及数字取证工作流程的简短笔记。
证明一份文件曾经存在——尽管它现在已经不在磁盘上
当 dir 返回为空,$MFT 通常仍能给出答案。一份实务指南:如何从 NTFS 元数据中证明某文件曾经存在,以及在审阅中能立住脚的告诫。
把 $UsnJrnl 与 $MFT 配对,做出真正的时间线
$MFT 是一张快照。$UsnJrnl 是产生这张快照的变更序列。实务视角下如何把两者配对、reason 码各自的含义,以及 journal 在哪里会撒谎。
Windows 中的 $MFT 文件:NTFS 主文件表(MFT)详解
Windows 中的 $MFT 文件是什么:MFT 记录的结构、属性、开头的系统文件,以及主文件表损坏时该怎么办。
勒索软件在 $MFT 中的样子
大规模扩展名变化、突发写入、被删除的原件,以及在一次加密运行中出现在 Master File Table 上的模式。来自实务者的取证视角。
MFTECmd 与真正经得起用的 MFT 解析器
将 Eric Zimmerman 的 $MFT 解析器 MFTECmd 与 omerbenamram/mft、analyzeMFT 及浏览器解析进行对比:何时用哪个,以及各自的输出格式。
用 MFT 从 NTFS 恢复已删除文件
NTFS 上的实务恢复流程:哪些情况下已删除文件还能救回来,该用什么工具,哪些数据是真没了,以及常驻数据这一招。
用 $MFT 构建一条经得起审查的时间线
基于 MFT 的时间线构建实务方法:应该输出哪些时间戳、如何与 USN 与事件日志合并、以及朴素 super timeline 在哪里会误导。
用 Python 解析 $MFT 又不至于赔上一个周末
在 Python 中解析 NTFS $MFT 的三种可行方式:纯 Python 用 analyzeMFT,需要类型化对象模型用 libmft,速度重要时用 shell out 调用 Rust 解析器。
备用数据流:人人都会忘记的第二个 $DATA 属性
命名的 $DATA 属性与你能看到的文件并行存在。实务视角下的 ADS 藏身处、Windows 对它的用法,以及为什么按文件枚举找不到 ADS 而 MFT 取证可以找到。
$MFTMirr(MFT 镜像)是什么:内容与 NTFS 何时使用它
$MFTMirr 镜像 $MFT 的前几条记录,使记录 0 无法读取时卷仍可挂载。本文讲解其内容、chkdsk 如何使用它,以及为何要一并获取。
在不破坏运行中的 Windows 主机的前提下提取 $MFT
从一台运行中的 Windows 系统取得取证可信的 $MFT 的三种可靠方法,会悄悄损坏拷贝的常见错误,以及在信任文件之前要先核验什么。
Volume Shadow Copy 与 $MFT:每一份快照都是被冻结的 MFT
每份 VSS 快照都包含一个时间点上完整的 $MFT。如何枚举、挂载、抽取和做差分,以及快照如何挽救案件的若干例子。
为什么 NTFS 给取证的远比 FAT 多得多
FAT 记录下一个簇。NTFS 记录一切。从 FAT 到 Master File Table 的转变到底为证据恢复改变了什么——实务视角。
NTFS 上文件被删除时,到底什么留了下来
NTFS 上的删除只是清掉一个 bit 并更新一项索引。记录、属性,以及通常还包括数据,都在等着。实务视角下哪些可恢复,可恢复多久。
常驻数据:住在 MFT 里的小文件
小文件把整个 $DATA 属性存在 MFT 记录里。大小阈值、它救你案子的几种情形,以及这一招的边界。
NTFS 反取证:攻击者实际怎么做,以及什么会让他们暴露
Timestomping、ADS 载荷、USN 删除、MFT 涂写。实务视角的 NTFS 反取证手法清单,配上每种手法擦不掉的具体工件。
MFT 的四个时间戳,以及 timestomping 在其中如何显形
每条 MFT 记录都携带两组共四个的时间戳。它们为什么会发散、在被篡改时会呈现何种样貌,以及能逮住偷懒工具的亚秒级线索。
MFT 记录内部,逐字节解读
对一条 1,024 字节 FILE 记录的细读:签名、头部、fixup 数组、属性流,以及在十六进制编辑器中读取原始字节时真正重要的那些字段。