目录
介绍
1、MFT
MFT
,全称Master File Table
,即主文件表,它是NTFS
文件系统的核心。它是包含了NTFS
卷中所有文件信息的数据库,在$MFT
中每个文件(包括MFT
本身)至少有一个MFT
,记录着该文件的各种信息。这些信息被称为属性。
NTFS
使用MFT
条目定义它们对应的文件,有关文件的所有信息,比如大小、时间、权限等都存在MFT
条目中,或者由MFT
条目描述存储在MFT
外部的空间中。
MFT
由一个个MFT
项(也称为文件记录(File Record
))组成,每个MFT
项占用1024
字节的空间。这个概念相当于Linux
中的inode
,File Record
在$MFT
文件中物理上是连续的,且从0开始编号,每个MFT
项的前部几十个字节有着固定的头结构,用来描述本MFT
项的相关信息。后面的字节存放着“属性”。
2、MFT与数据恢复
在正常情况下,MTF
条目会随着文件添加到NTFS
卷中而增加,因此MFT
的大小也会增加,当文件从NTFS
卷中删除时,其MFT
条目会被标记为free
(空闲),以准备被重复使用,此条目会继续存在,直到它被新文件覆盖。但MFT
所占空间大小不会因为删除文件而缩小。
例子:假如现在有100个MFT
条目和一个文件X
,现在删除文件X
并立即创建500个以上文件,那么文件X
的MFT
条目将会被覆盖。虽然文件的内容可能存在与硬盘上,但包含名称、元数据等的MFT
条目将被覆盖。
例子2:现在MFT
有10000个条目,删除1000个文件和立即添加2个新文件。此时,可以恢复998个条目。不过文件的数据是否可以恢复得看它们是否已被覆盖。
这种文件数据和MFT
条目分开的方式,会导致在删除操作后存在以下几种可能性:
1、文件被删除,但MFT
条目和文件数据是100%可恢复的,则删除的文件可以100%被恢复。
2、文件被删除,MFT
条目可恢复,但部分文件数据被覆盖,则该文件部分可被恢复。
3、文件被删除,MFT
条目可恢复,但是文件数据被100%覆盖,则该文件不可恢复,但该文件相关属性信息(名称、日期、大小等信息)可被恢复。
4、文件被删除,MFT
条目和文件数据100%可恢复,但文件已100%丢失,这种情况下。取证调查可以揭示该文件的大量信息,但不是通过MFT,而是使用其他证物。
5、文件被删除且MFT
100%被覆盖,但文件数据未100%被覆盖。剩余的文件可以从磁盘上未分配的空间恢复。但雕刻数据的结果取决于碎片、可恢复数据的数量(可能是100%)和文件的性质。
当然,MFT
被覆盖时,存在非100%被覆盖的情况,这种情况被称为MFT
文件松弛,标准上来说,MFT
条目被分配1024字节的固定空间。如果MFT
条目小于1024字节。比如1000字节,则剩下为额外松弛空间。比如一个只有200字节长的密码文件,其文件数据也会被放置在MFT
内,这种文件数据称为常驻数据。而文件名称、日期等元数据只占用大约500字节左右,如果删除了文件并在其位置创建了新的MFT条目,且不包括常驻数据。这意味着即使这个文件被删除,如果仔细检查也能恢复。
攻击者利用的是Timestomp
技术。Timestomp
是一种修改文件时间戳(修改,访问,创建和更改时间)的技术,通常用于模拟同一文件夹中的文件。该技术可以用在攻击者修改或创建的文件上,使得它们在取证调查人员或文件分析工具面前更加隐蔽。Timestomp
可以与文件名伪装(Masquerading
)结合使用来隐藏恶意软件和工具。通常可以通过$FN
($FILE_NAME
)和$SI
($STANDARD_INFORMATION
)属性时间戳来查找异常。因为$FN
只能由内核级进程更改,攻击者想修改非常困难。
步骤
打开C:\Users\Administrator\Desktop\应急工具集\mft
的mft工具文件夹
运行中输入cmd
,打开命令行,输入
python2 Analyzemft.py -f "C:\Users\Administrator\Desktop\案例\mft\$MFT" -o CynetIR-TimeMachine.csv -e
在C:\Users\Administrator\Desktop\应急工具集\mft
的mft工具文件夹下,输出了csv文件
打开csv文件,筛选在/Users/DFIR/Desktop
目录的文件
Mod-File.txt
在其文件日期修改日期和访问日期上都很不正常,都是2019-01-01 01:01:01.0000000
,通过比较FN Info Creation date(FN_CTime)
和Std Info Creation date(SI_CTime)
发现两种时间不一致。