手工修復U盤DBR 練習案例 From 創享杯電子數據取證線上大比武


背景

檢材下載地址:https://pan.baidu.com/s/1BBKjMF15UTVBoMUsJ0GxMQ 提取碼:cppu

(PS:由於鏡像中大部分數據都是 \(00\) ,所以這個壓縮包的壓縮率特別誇張,高達 \(99.9\%\)

該檢材來自於2020年4月美亞柏科舉辦的第一屆“創享杯”電子數據取證線上大比武,我們拿到的是一個 DBR 受損的U盤的 .001 鏡像,

選手需要首先修復鏡像的DBR,才能導入取證大師等對文件系統進行進一步分析,本文將詳細講解這一過程。

前置知識(已盡量精簡)

主引導記錄 MBR(Master Boot Record):一般為硬盤的第一個扇區,負責引導操作系統掛載硬盤完成啟動工作,

包含硬盤分區表(DPT),可以根據其找到操作系統所在分區並執行啟動文件,並定位所有硬盤分區。

分區引導扇區 DBR(DOS Boot Record):是一段存儲文件系統的基本參數和操作系統引導程序的代碼,其在磁盤中獨占一個扇區,一般標志着一個分區的開始。

DBR 的格式比較固定,以 NTFS 文件系統為例,大部分變量為固定值,但仍有需要人工關注的自定義數值,即下表所列。

字節偏移 字段長度 字段功能
0x0D 1 每簇的扇區數(通常是 8)
0x1C~0X1F 4 隱藏扇區數(分區前的扇區數/分區的起始扇區)
0x28~0x2F 8 文件系統的扇區總數
0x30~0x37 8 MFT 的起始簇號(元文件MFT的起始簇號)
0x38~0x3F 8 MFT 備份的起始簇號(MFTMirr 文件的起始簇號)

主文件表 MFT(Main File Table):是文件系統的核心,記錄文件/文件夾的元數據和部分數據,每個 MFT 占用 \(2\) 個扇區。

修復流程

確定 DBR 狀態

我們首先嘗試直接用取證大師分析該U盤鏡像的文件系統,

只被識別為了“為分配簇”,於是用 WinHex 打開:

可以識別到“起始扇區”和“分區1”,MBR 扇區應該是正常的,

單擊“分區一”查看該分區的第一個扇區(DBR 的位置),發現全是 \(00\)

基本可以確定,由於唯一的分區 DBR 為空白,故取證軟件無法解析文件系統,

但對於 NTFS 文件系統的分區(如何確定是 NTFS 下面會講),最后一個扇區會是 DBR 備份。

我們嘗試跳轉查找,但只能看到一眾 \(00\) ,說明 DBR 備份也同樣杯破壞。

於是我們的任務就是重建出 DBR 扇區這 \(512\) 個字節的信息,讓取證軟件能讀取該鏡像。

至於為什么能確定本分區是 NTFS 文件系統,這個答案要在開頭的 MBR 的磁盤分區表中發現。

選中部分為“分區1”的磁盤分區表表項,偏移 \(5\) 的位置記錄了分區文件系統類型,\(07\) 對應着 NTFS。

於是我們知道“分區1”的文件系統為 NTFS,以下操作同樣是基於該前提。

重建 DBR

逐字節填充 DBR 扇區是不太可行的,我們可以拷貝本地另一個分區的 DBR 過來,再修改關鍵參數。

這張圖就是我拷貝的另一 NTFS 分區的 DBR,右邊的窗口是 WinHex 的可視化模板,“查看” —— “模板管理器” —— “Boot Sector NTFS” 喚出。

紅圈的部分即可能需要修改的內容,從上到下分別是每簇的扇區數、分區的起始扇區、文件系統的扇區總數、MFT 的起始簇號和 MFT 備份的起始簇號。

下面我們逐一修正。

0xC 每簇的扇區數 和 0x30 - 0x37 MFT 起始簇號

這個問題也被出到了比賽題目里,“答案格式”暗示了答案不會\(4\),即不是常規的 \(8\) 個扇區,需要人工計算。

WinHex 全局搜索 \(46\;49\;4C\;45\) (或字符串 \(FILE\)) 定位到第一個 MFT 表,即 $MFT 的記錄。

如圖所示,偏移 \(0×128(64bit)\) 的位置記錄的是簇流大小,偏移 \(0×141(16bit)\) 的位置記錄的是簇流長度,

偏移 \(0×143(32bit)\) 的位置記錄的是起始簇位置,他們的值分別是:

簇流大小 \(40000H = 262144\;\;\) 簇流長度 \(80H = 128\;\;\) 起始簇位置 \(80000H = 524288\)

根據下列公式計算出每簇的扇區數:

\(簇大小 = ( 簇流大小 / 簇流長度 ) / 512 = (262144/128)/512 = 4 扇區\)

0x1C - 0x1F 隱藏扇區數

隱藏扇區數即分區的起始扇區,在 WinHex 中可以容器找到,定位到 DBR 的 \(EB\;52\) 處,左下角顯示扇區號為 \(63\)

0x28 - 0x2F 文件系統的扇區總數

由於 MBR 需要負責定位所有的分區位置,所以這個值可以在 MBR 的磁盤分區表中找到。

分區表的每一條記錄有 \(16\) 字節,偏移為 \(0C - 0F\)\(4\) 個字節記錄的就是該分區的大小。

由於鏡像中只有一個分區,所以這 \(4\) 個字節正好挨在了 MBR 結束符 \(55\;AA\) 前面,值為 \(777FC1H = 7831489\)

0x38 - 0x3F MFT 備份起始簇號

MFT 備份起始簇號即 $MFTMirr 文件的起始簇號,搜索相應字符串找到 $MFTMirr 的 MFT 位置,

左下角查看到其位於 \(18\) 號扇區,\(4\) 個扇區一個簇,簇號從 \(0\) 開始,故這個值為 \(4\)

利用模板或手工填寫對應信息

至此我們找到了所有需要休整的數據,讓我們使用 WinHex 的 Boot Sector NTFS 模板填寫吧!

取證軟件讀取

使用取證大師讀取添加 DBR 后的 001 鏡像,文件系統成功解析。

注意:在 DBR 修正的過程中,絕對不可出錯的參數為:每簇的扇區數文件系統的扇區總數MFT 的起始簇號三者,經過實驗,其余參數出現一定程度的差錯並不影響文件系統的分析。

參考資料

《存儲原理與數據恢復 探究教程》田素誠 魏毅編著 - 中國人民公安大學出版社


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM