1. 程式人生 > >【乾貨】證據被毀?資料恢復出來

【乾貨】證據被毀?資料恢復出來

來源:Unit 3: Unix/Linux File System 3.1 Unix/Linux File System Sleuthkit Continued

工具:Sleuthkit Demo

先補充下硬連結和軟連結的知識。

有兩個檔案,其中file0的內容為welcome

 

這兩個檔案的inode如下  ls –li查詢inode(對於inode,元資料,資料塊,超級塊陌生的朋友可以根據文章的來源URL去找到對應的視訊進行學習,只需要投入10分鐘就可以掌握)

1表示只有一個檔案file0指向了inode編號14288130  sansforensics是UID GID,也就是許可權

 

建立一個硬連結指向到file0,file0HL為新建立的檔名,他們的inode號一樣切硬連結數為2,所有資訊一模一樣,因為這些資料都儲存在inode裡面,只有檔名不同。

 

再來感受一下軟連結,使用的命令一樣,帶的引數不同,它是指標,只指向了file0的檔名。它們的inode不一樣,許可權也可以看見不一樣,連結數也只有1個,檔案大小也不同,一個5,一個8.這意味著軟連結與原檔案的內容不同(彷彿windows中建立的快捷方式)

軟連結只儲存路徑資訊,不復制原始資料內容。

 

現在體會一下Sleuth Kit工具的命令,這裡以金融案例取證的原始位元流為例,它的格式是dd,使用FTK Imager提取得到的。這是取證了整個裝置得到的檔案,記住。如下

 

現在需要找到分割槽的開始點,否則偵探工具包將無法工作。

有兩種方式可以找到,一個是F盤,一個是MMLS。一般使用MMLS方法,它提示的資訊友好一些。

將檔案投入進來就會自行補全路徑

 

 

補全的路徑如下,所有分割槽資訊也都出來了,基於扇區的單位顯示出來。注意unallocated,這是未分配的空間。檔案的起點是2048位元組。

 

我們要找到這個證據的檔案系統使用了什麼,就需要從2048位元組開始,因為這之前未分配。

輸入好命令以後,把檔案拖進來。

 

執行命令之後,資訊較多,只截圖一張圖感受一下。它告訴你所有的檔案系統資訊。這裡把整個超級塊的資訊都給解析出來了。

 

使用FLS命令列出所有的檔案,包括刪除的檔案  -m引數是MAC時間(跟網管提指標一樣,儲存出來自己生成時間資訊的檔名),所有檔案放在斜槓中,-r引數是遞迴地生成,檔案拖進來。這是整個裝置的證據資訊,重定向到新的檔案中,不要列印在螢幕上。

 

如果是被刪除的檔案沒有檔名,它會不會顯示出來?使用另外一個命令ils,因為沒有檔名,取消斜槓。這裡的-r引數只收集已刪除的檔案,這是預設值,可以取消它

 

看一下這兩個檔案的樣子,它們是人類不可讀的,這裡大致看看什麼樣子。後面使用展示如何生成一個人類可讀的MAC時間軸,這裡只是開啟看看。這個檔案裡有inode資訊,可以使用工具玩一玩,給定一個inode就行了。MAC time可以提取這份原始資訊生成清晰的inode給出來,但這裡可以觀察發現inode在哪裡。

 

你看見的每一個東西,後面都是檔名,inode。發現規律,編寫工具。工具就是這樣出來的。這裡雖然有mac time工具提取出來,但是以後遇到跟多的資訊就不一定有工具了,建議學習入門程式語言是python。

 

知道inode在哪裡,怎麼提取出來以後,使用一下它感受感受。命令istat,給它一個inode,讓它告訴你什麼情況。這裡的allocated表示已經被分配了,它在第六組。Direct blocks就是這個inode號使用的資料塊。

 

你想知道inode對應的資料塊裡面的內容是什麼嗎?使用icat檢視inode對應的資料塊的內容。這裡的inode已經被分配了,所以它知道資料塊編號,所以可以顯示出具體資訊。這是一份財務報表。

 

我們使用inode號定位到了具體的資料,那麼這一次我們使用資料塊號來檢視資料。顯示的內容是一樣的。注意inode和資料塊的區別,如果其他資料塊使用相同的inode,你用inode號查詢的將是所有inode號一致的多個數據塊內容。

 

如果你找到檔案系統中資料塊和inode之間的關聯,那麼發生災難性的資料毀滅時,資料恢復將成為可能。注意這裡的檔案系統為ext2,不一樣的檔案系統,資料塊的邏輯也不一樣,恢復的過程和可能性也有差異,需針對性的深入理解檔案系統。

 

那麼如何找到資料塊對應的inode?使用ifind,-d引數為資料塊號

 

如果一個inode存在多個數據塊,你使用ifind發現了一個數據塊對應的inode了,就又可以使用inode檢視多個數據塊中的內容,整個資訊就被完整的捕捉出來。

 

 

再來試一個意思為Find file name.   的ffind命令。  給定inode以查詢檔名。如果這個inode有檔名,那麼它就被分配使用了。檔名如下,一份報表證據。

 

目錄的內容儲存了檔案和子目錄之間對映到inode的所有資訊。這些inode對應的檔名都儲存在它們的父目錄中。

 

從資料層(資料塊)到inode層到檔案系統層(你知道資料塊和inode之間的對應關係相互匹配查詢過)到檔名層的命令全都嘗試完畢。這一切的實戰都基於SIFT虛擬機器,它在SANS社群下載,地址前面的文章也給了。啊如果你沒聽過SIFT的話,我可以告訴你,世界級工具吧,所有法醫學計算機取證專業的人都在使用它。

如果你想知道哪個工具存在或者不存在,使用which——這個命令是否存在,然後它位於哪裡。