隱寫術(Steganography)為一種隱藏訊息的技術,將一段文字、圖像或程式碼嵌入到圖片、音訊、或影片等數位媒體中。不改變媒體的外觀或感知,使第三方難以察覺其中的訊息。常見的隱寫術方法包括:
最低有效位元(Least Significant Bit, LSB): LSB 是最常見的隱寫術技術,尤其適用於圖像或音訊檔案。在位元層級進行操作,將訊息嵌入至圖像像素或音訊取樣的最低有效位元中。這種方法對於圖像來說,肉眼幾乎無法察覺變化。例如,在一張 RGB 圖像中,每個顏色分量有 8 位元,最右側的位元可以用來存放隱藏訊息。
DCT(離散餘弦變換)隱寫術: 在 JPEG 圖像格式中,資料經過壓縮,因此直接使用 LSB 會破壞圖像壓縮過程。DCT 利用圖像壓縮過程中的頻率域資訊,在不改變壓縮效率的情況下嵌入訊息。
加密與隱寫術結合: 為提高安全性,有些隱寫術會將訊息先進行加密,再嵌入至載體中。這樣,即便攻擊者能夠偵測到隱藏的資訊,仍然無法輕易解密其中的內容。
統計分析: 通過分析媒體文件的統計特徵來檢測是否存在隱藏訊息。例如,在 LSB 隱寫術中,修改圖像的最低有效位元會改變圖像的統計性質,透過分析圖像像素的分佈或取樣頻率,可以推測是否存在異常。
頻譜分析: 對音訊或影像檔案進行頻譜分析,檢查是否有非正常的頻率成分。隱寫術嵌入訊息時,可能會引入非自然的頻率或擾動,可以藉此識別隱藏訊息。
篩選比對(Signature-Based Detection): 通過已知的隱寫術工具產生的文件特徵或行為模式,進行比對和篩選。例如,有些隱寫術工具會產生特定的文件格式或修改痕跡,透過比對可以快速檢測這些工具使用的痕跡。
支援多達 130 多種不同的檔案格式,包含 JPEG、PNG、TIFF、RAW 等常見的圖片格式,也支援影片、音訊檔案如 MP4、AVI、MP3 等。使用者可以透過指令來提取這些檔案的詳細資訊,包含創建時間、相機設定、檔案大小等資訊。
隱寫術操作通常會修改檔案的某些屬性,例如修改時間、解析度、色彩模式等。這些變更可能留下痕跡,這些資訊能檢查檔案是否有異常修改。透過 ExifTool 可以追溯檔案的修改記錄。例如:
File Modification Date/Time: 檔案的最後修改時間。
File Access Date/Time: 檔案最近被訪問的時間。
File Inode Change Date/Time: 檔案的元數據修改時間。
先在 Linux 環境下安裝 exiftool
sudo apt install exiftool
使用 ExifTool 提取資訊
exiftool [檔案名稱]
今天我們將會使用 exiftool 來進行以下題目
Lab_1 - CanYouSee
把題目給的檔案下載後是一個 .zip 檔,先使用 unzip [檔案名稱]
將其解壓縮。得到以下這張圖片(ukn_reality.jpg),對其使用 strings
、cat
等指令沒有發現什麼線索。
來使用看看剛剛提到的 exiftool
,下 exiftool ukn_reality.jpg
這條指令,顯示出這些資訊給我們,其中有一行資訊明顯跟其他資訊不一樣,不易閱讀,依照長相這邊推測是經過 base64。
於是把這行複製起來拿去使用線上工具解碼,得到我們的 flag
Lab_2 - information
題目直接給我們一張 貓貓圖片(cat.jpg),看起來只是貓貓,沒有其他東東
一樣使用 exiftool cat.jpg
看能夠挖出什麼隱藏的線索。這此有兩個地方需樣我們解碼才能知道是什麼資訊
一樣使用線上工具,原來第二條紅線處才是我們的 flag
今天的練習就到這邊,以下是參考資料,請搭配服用:
內文如有錯誤,還請不吝指教~