一、【圖片隱寫】
題目描述:
在實驗主機上的C:\Stegano\3目錄下提供了一個名為stego的檔案,
找到一個形式為flag{word_word_word}的字串,

預備知識
【TrID】
TrID是一款根據檔案二進制資料特征進行判斷的檔案型別識別工具,
雖然也有類似的檔案型別識別工具,但是大多數都是使用硬編碼的識別規則,而TrID則沒有固定的匹配規則,
TrID具有靈活的可擴展性,可以通過訓練來進行檔案型別的快速識別,
TrID通過附加的檔案型別指紋資料庫來進行匹配,可用于 取證分析、未知檔案 識別等用途,
【BinWalk】
BinWalk是一個韌體的分析工具,旨在協助研究人員對韌體進行分析,提取及逆向工程用處,
簡單易用,完全自動化腳本,并通過自定義簽名,提取規則和插件模塊,
還有重要一點的是可以輕松地擴展,最簡單的使用方法很直接,提供檔案路徑和檔案名即可,
【StegHide】
Steghide是一個隱寫程式,其可以將資料隱藏在各種圖片檔案以及音頻檔案之中,
Steghide可以對隱寫的資料進行加密和壓縮操作,
考察意圖:
考察選手的檔案隱寫取證分析能力,包括對工具TrID、BinWalk、StegHide等的了解,
分析檔案型別
題目提供的檔案沒有檔案擴展名,因此我們需要先確定檔案的真實檔案型別,
使用【TrID】工具可以對未知檔案型別進行有效的識別,
1、打開cmd命令提示符,切換到相關路徑下,然后使用TrID對檔案進行識別,如圖所示:

根據TrID的識別結果,這是一個GZip壓縮檔案,我們使用7Zip對其進行解壓
得到另一個沒有擴展名的檔案,再次使用TrID對其進行識別,提示為TAR壓縮檔案,如圖所示:
同樣使用7Zip對其進行解壓,得到 bowser.jpg 檔案,是一張圖片,

內嵌檔案資料分析
在CTF競賽中,很多情況下會把一個檔案的二進制資料嵌入到另一個檔案之中,
對于[嵌入ZIP]之類的資料,我們可以嘗試直接將檔案名的后綴改為zip,
然后使用WinRAR之類的解壓縮工具打開即可
但是對于未知的檔案型別,這樣可能就顯得力不從心了,這里介紹一種通用的檔案識別方法,就是使用BinWalk工具,
打開cmd命令提示符,切換到相關路徑下,執行python binwalk命令來對bowser.jpg檔案進行處理,如圖所示:

從BinWalk的分析結果可以看出,JPG檔案中有一個Zip壓縮包,其檔案偏移地址范圍是0x226B5~0x2C842,這里我們使用C32Asm將Zip資料提取出來,
打開桌面上的【C32Asm工具】,選擇 “檔案”、“打開十六進制檔案”載入C:\Stegano\3\bowser.jpg檔案,然后右鍵選擇“定義選擇塊”
填入資料塊的起始地址為 0x226B5,結束地址為 0x2C842,單擊確定就選中資料塊了
右鍵復制資料,然后新建一個十六進制檔案,將原有的資料替換為復制的資料
保存即可得到壓縮包檔案,操作程序如圖所示:

但是實際測驗時發現壓縮包不能正常解壓,這是因為BinWalk對ZIP的識別機制還不完善,漏掉了ZIP檔案末尾的一段資料,所以我們需要重新復制資料,檔案的開始位置仍然是0x226B5,結束位置直到檔案的末尾,如圖所示:

這樣提取出來的壓縮包就可以正常解壓了,得到圖片檔案MarioCastle.jpg
提取隱寫資料
從實驗步驟二中得到了MarioCastle.jpg檔案,
這個圖片里面顯示有一個Passphrase欄位,值為BaD_DR4G0N,
看到 [ Passphrase ]我們就可以猜測使用了【steghide】進行資料隱寫,
因此我們嘗試使用steghide對MarioCastle.jpg進行隱寫資料提取

打開cmd命令提示符,輸入steghide extract -sf MarioCastle.jpg -p BaD_DR4G0N命令,提示沒有任何可以提取的資料,
那么如果嘗試對原來的 bowser.jpg 進行處理呢?實際測驗表明bowser.jpg里面隱寫了資料,通過steghide我們提取出了1.tar.gz檔案,如圖所示:

解壓1.tar.gz檔案,得到flaga.jpg檔案,打開即可看到flag為flag{You_F0unD_M3},
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290792.html
標籤:其他
