安全圈 | 专注于最新网络信息安全讯息新闻

首页

freebuf互聯網安全新媒體平臺

作者 strmiska 时间 2020-03-05
all

原創:4ll3n

上篇文章為大家講解了在Linux ext4分區下如何恢復誤刪除檔的整個過程,每次坐在電腦前,把手機和電腦通過USB介面進行連接,為手機充電。總在想一個問題:“手機和電腦連接後,系統又做了點什麼?”這就是整篇文章開始的源泉。

現在讓我們走進系統,看看它的運行原理:

終端命令lsusb,分別列舉了掛載設備的Bus、Device、ID、Name,什麼是ID呢?設備的ID由Vendor、ProdID組成。

設備每次的掛在ID值在主機上是個唯一的指紋,這組數據在Command下如何獲取呢?可以使用usb-devices獲取所有在主機上以USB介面為主的所有參數。

Command給出的參數列表來自於:

圖中給出了大量文字檔和對應的目錄名,來驗證下,數據是否正確:

看到圖片有五個編號以1-8開頭,以1.x結尾的檔案目錄,它們對應的是什麼呢?

1-8:1.0對應這If#=0,依此類推,而如何獲取圖片中的Name?

進入目錄後,可以發現其中有個名為:interface,對進行cat,就能得到上圖中的介面名。

講到這裡,我們還有沒結束,繼續往深處挖掘,看看它們其他的關聯檔案。

在/run/udev/links下,找到了系統創建設備後的檔案,進入檔案看看,裡面寫的是什麼。

隨意進入兩個目錄,發現目錄下存在一個檔案檔案,分別為:b8:16,c166:0,先暫時把這兩組檔案記錄下來,繼續往下走,在/run/udev/data有了發現,命名規則和之前看到的檔名相同。

在目錄下很容易找到之前的檔名,來cat下看看。

再看看下張圖片有點什麼。

從圖中的第一行,可以看出N tag後的名字發生了變化,這裡列出了一大堆的數據資訊。

先不管這些數據有什麼作用,一步步地跟踪,得到了許多有用的數據,去系統日誌看看。

在系統日誌中,之記錄的設備加載的時間等等系統,並沒有我們之前看到的系統,分析到這裡,你會覺得奇怪,文章的小標題不是取證嗎?過程去哪裡呢?

別急,我們把設備先從主機上卸載,在慢慢來看數據的變化。

是不是發覺了之前我們看到的數據沒有了,系統在卸載設備後調用了函數:unlinkat來删除了目錄,什麼是unlinkat?

系統下任何删除的檔案和檔案數據都會保存到磁片底層中,從《淺談Linux系統數據恢複》中知道磁片有個專門為删除數據後,進行保存的區域。

在系統下還有個小小的命令,為:debugfs。為什麼我們要在文中提到它呢?

當數據被删除後,會留下inode、block、filename,一組數據,就可以通過這個command進行。

可以看到,曾經被删除的檔案通過小小的命令進行了顯示,在對服務器安裝系統中,進行系統分區,會把一些目錄進行獨立分區出來,比如:/var、/usr、/boot等等。這是我們就可以通過系統的命令進行查看被删除的檔案。

在整篇文章中大量提到PCI相關內容,任何被删除的數據都可以被恢復,這裡就不做數據如何恢復的流程,大家可以按照文章所給出的內容,進行操作一次,單獨把/run、/sys進行分區,來作為演練。

(全文完)