取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区

渗透技巧 1年前 (2023) admin
432 0 0

本文来自权信安网络安全生态圈  

作者:Ridd1E师傅

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区

天是1月15

农历腊月二十四


属于南方小年


小年至 情意浓

作为春节的序曲

过了小年 就离过年不远啦~ 

天权信安网络安全团队来给大家送祝福啦


取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


恢复流程

· Winhex手工恢复U盘镜像DBR,是针对U盘分区中的DBR进行恢复,U盘分区中的DBR被恢复后,Winhex和取证软件便可以对U盘镜像分区进行识别,便于进行下一步的取证操作



· 若MBR未被破坏,首先分析MBR的分区表,确定分区的文件类型,为DBR的再构建做好准备。【注意:在FAT文件系统中,分区的引导扇区是DBR。但是在NTFS文件系统中的引导扇区是$Boot,它的结构与FAT文件系统的DBR类似】



· 跳转至分区对应的DBR,确认DBR的破坏情况



· 挑战至DBR的备份分区,查看备份分区是否被破坏,如果备份分区正常,则直接复制备份分区的数据粘贴至DBR,便可完成恢复,若备份分区遭到破坏,则进入下一步



· 根据分区对应文件类型和相关数据内容,计算并修改BPB参数,实现DBR的再构建,从而达到恢复的目的



重点知识

由于NTFS文件系统应用的广泛性,因此这一节的内容将以NTFS文件系统为例。



主引导记录

主引导扇区记录着硬盘本身的相关信息以及硬盘各个分区的大小以及位置信息。

主引导扇区由三部分组成:

· 主引导程序:占446字节

· 分区表:占64字节

· 有效标记55AA:占2字节

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


其中,对分区表的信息分析是我们对整个硬盘分析的关键步骤

MBR中分区表的相关信息如下:

· 占用64字节,其中包含4个磁盘分区表表项,每个磁盘分区表表项占用16个字节

· 描述了磁盘分区的状态。包括:分区的起始位置、终止位置、CHS地址、LBA地址、文件类型等

· 分区表的结构中包含六项参数:分区可引导性标志、分区的起始CHS地址、分区的文件类型代码、分区的结束CHS地址、分区的起始LBA地址、分区的大小(分区的扇区总数,在分区表每一条记录的最后4个字节)

在分区表中,常用的分区文件系统类型代码如下:

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区




分区引导扇区

NTFS文件系统的引导扇区是$Boot的第一个扇区,便于理解和记忆,我们可以将其认为是DBR。

NTFS文件系统的引导扇区中重要的部分便是BPB,因为其记录了有关该文件系统的重要信息。下面为BPB参数以及相关含义

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区
取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区
取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


我们还可以使用Winhex中的模板管理器,打开其中NTFS的DBR模板来直接查看相关参数,并且可以通过该模板直接对NTFS的DBR进行修改和再构建,较大地提高工作效率。打开模板时,首先要定位到模板对应的位置。在定位与模板对应的位置相同的情况下,Winhex会提示当前的数据与模板不相同,此时点击确认即可。

查询Winhex中NTFS的DBR模板相关参数的中文含义,只需按照当前DBR分区的偏移量转换成相应的字节偏移量对照上面的表格查表即可。

Winhex打开NTFS的DBR模板方法如下:

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区
取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区
取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区





需要修改的BPB参数


利用Winhex手工恢复NTFS文件系统的DBR时,一般需要修改的参数有:

· 每簇的扇区数量

确定MFT中的80h属性体为非常驻80h属性,则利用该计算方法:(簇流大小/簇流长度)/512。其中簇流大小和簇流长度需要转换为十进制。

· 当前分区的起始扇区号(隐藏扇区数)

在DBR中搜索:EB 52H

· 该分区的扇区总数(分区大小)

· $MFT起始簇号

使用Winhex的搜索功能,搜索文本(字符串):FILE,或者搜索十六进制数:46 49 4C 45 定位到$MFT,

· $MFTMirr的起始簇号

$MFT的文件记录的下一个记录便是$MFTMirr的文件记录。

BPB中的其余参数值一般按照NTFS文件系统中的BPB默认参数填写即可。





主文件表MFT


在MFT中80h中包含了相关文件数据内容的相关信息。80h在Winhex中的的位置是:取十六进制数46 49 4C 45所在的行为000h,那么80h从100h开始。

MFT的80h属性体可以分为两类:常驻属性和非常驻属性。

常驻属性:文件属性值能直接存储在MFT记录中,用于存储文件名。存储数据的量不大

非常驻属性:与常驻属性相反,非常驻属性时,文件属性值存储在MFT记录之外。

80h常驻属性的重要参数

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


80h非常驻属性的重要参数

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


80h非常驻属性中分析簇流长度(数据内容占用多少个簇)

例子:

起始位置(十六进制):40

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


观察知:

当前例子中只有一个簇流信息/簇流记录,32这一数字分成两部分来看:

左半边的数字3表示当前簇流的起始簇号使用了3个字节来表示,右半边的数字2意思是:在表示当前簇流所占用的簇数时使用了2个字节来表示

由于Winhex的特性,因此我们在读取数据时应当时从右往左读取。

所以当前簇流的起始簇号为:08 00 00H,当前簇流所占用的簇数为:00 80H。

紧接着08H的后面是十六进制数00,因此该例子中只有一组簇流信息。





操作实例

最近偶然发现了一个U盘镜像。于是我用Winhex打开了这个U盘的镜像,然后就看到了这个情况:

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


很明显这是一个损坏的U盘镜像,除了起始扇区之外便没有了其他信息,那么接下来的工作便是尝试着手工去恢复这个U盘镜像。

首先,我们先观察,Winhex打卡的U盘镜像的信息;

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


在Winhex显示的页面中我们可以很直接地看到起始扇区和分区1,而且Winhex还贴心地告诉我们分区类型为MBR。然后点开分区1,全都是00,“似乎”什么数据都没有了。

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区
取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


因此,推断MBR扇区是正常的状态,那么出问题的便是拓展名是?的分区1了。Winhex无法识别该分区的文件系统。因为MBR扇区属于正常的状态,所以我们第一步先去看一下MBR扇区中是否包含什么有用的信息。





确定MBR状态并分析DBR状态

通过上面的介绍,可以观察分析该U盘镜像的MBR中的分区表,可以发现分区1是NTFS的文件系统

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


看到这里,脑海中出现关于NTFS文件系统的相关内容。

接着,我们通过单击“分区1”,跳转至该分区所在的位置,查看其引导扇区:

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


发现该分区的第一扇区全为0,很干净。通过前面的分析我们可以知道:该分区的文件系统是NTFS,NTFS文件系统的DBR是存在备份的,这个DBR的备份存储在分区的最后一个扇区,如果备份存在,那么我们直接复制粘贴至DBR便可以完成恢复。

因此,我们直接跳转到DBR的备份扇区进行查看:

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


仍然还是全部都是十六进制数00,DBR的备份也被破坏了。所以,接下来,我们通过计算BPB的相关参数,来实现手工恢复DBR






计算BPB相关参数实现手工恢复DBR

计算BPB相关参数时,我们使用Winhex的NTFS的DBR模板辅助恢复。在Winhex中调出NTFS的DBR模板

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


根据之前提到的重要知识点,除了每簇的扇区数、隐藏扇区数、MFT起始簇号、MFTMirr起始簇号,该分区的扇区总数外,其他参数按照NTFS的DBR默认参数,在Winhex里进行填写即可。

在填写默认参数时,可以打开一个正常的NTFS文件系统的分区,在该分区内,打开NTFS的DBR模板,便可以得到其余DBR参数的默认值。填写完成后得到如下表格:

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


接下来,我们开始逐步计算BPB中的相关参数





获取$MFT的起始簇号

利用Winhex中的搜索功能,选择搜索文本:FILE,定位到第一个$MFT,查看$MFT记录

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


锁定$MFT的80h属性体,即上图中的红框部分。同时关注到蓝框的部分,这一部分中包含了簇流的相关信息,黄框部分包含了当前簇流大小的信息。利用Winhex的显示特点,读取数据时应该从右往左依次读取数据,于是我们得到了簇流大小、当前簇流所占的簇数、当前簇流的起始位置

· 簇流大小:40000H = 262144

· 当前簇流所占的簇数(绿框中读取数据):80H = 128

· 当前簇流的起始位置(褐色框中读取数据):80000H = 524288






获取每簇的扇区数

在获取$MFT的起始簇号时,我们便求出了簇流大小和当前簇流所占的簇数,因此,我们直接利用公式可以求出每簇的扇区数位:4




获取隐藏的扇区数

获取隐藏的扇区数便是获取分区的起始扇区。在一开始,我们便单击Winhex中的分区1,跳转到了分区的起始扇区,即:

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


左下角的扇区便是隐藏扇区数,即:63




获取当前分区的扇区总数

在MBR中,我们发现在当前U盘镜像中,只存在一个分区

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


分区的大小便是每个分区记录的最后四个字节。

在本案例中为:777FC1H = 7831489




获取

$MFTMirr起始簇号

我们知道$MFTMirr是$MFT的备份,而且$MFT的下一个文件记录便是$MFTMirr的文件记录,因此,Winhex的搜索中直接搜索文本:FILE,选择第二个便找到$MFTMirr的位置。

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


确定$MFTMirr起始簇号的方法与确定$MFT起始簇号的方法一样,寻找到80H中Run List的部分,从右往左依次读取十六进制数据,将其转换成十进制数得到$MFTMirr起始簇号。




填写参数

将我们刚刚求得的参数的知填入NTFS的DBR模板中便完成手工恢复。

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区


使用Winhex再次打开U盘镜像便看到数据了。

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区






天权信安网络安全团队

网络无边 安全有界

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区
2022,感恩有您
2023,携手同行

 用技术撬动未来,用奋斗描绘成功!


        天权信安网络安全团队(简称“天权信安”)成立于2022年,是国内一支研究红蓝对抗、内网渗透、红队武器库、电子取证、CTF竞赛、靶场及网安相关活动的安全团队。这里聚集了一群热爱网络安全的有志之士,为“网络安全爱好者”提供一个更好的学习交流生态圈。天权信安欢迎技术大咖、CTF选手等资深专业人士前来分享网络安全前沿技术、攻防实战经验、内网渗透、IOT安全、电子取证、CTF、工控安全等技术、经验分享,帮助大家了解最新网络安全动态,提升安全技术水平,拓宽知识领域,致力于打造一个开放共享的网络安全生态圈。

取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区




                 往期回顾                


那年我与MISC编码的那些事

安卓入门–apktool的使用

2022IS河南工业控制安全部分web题解




原文始发于微信公众号(天权信安):取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区

版权声明:admin 发表于 2023年1月15日 上午11:10。
转载请注明:取证小技能之Winhex手工恢复NTFS文件系统的U盘镜像的引导扇区 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...