CTF中圖片隱藏文件分離方法
0x01 分析
這里我們以圖片為載體,給了這樣的一樣圖片:2.jpg
首先我們需要對圖片進行分析,這里我們需要用到kali里面的一個工具 binwalk ,想要了解這個工具可以參考這篇 Binwalk:后門(固件)分析利器 文章,以及 kali官方對binwalk的概述和使用介紹 。
這里我們就是最簡單的利用,首先在kali終端進入目標圖片所在的路徑,然后在binwalk后直接提供固件文件路徑和文件名即可:
# Binwalk 2.jpg
當我們使用這行命令后,binwalk就會自動分析這個jpg文件:
從上面的內容顯然看得出來這個jpg文件還隱藏着另一個jpg文件,從158792塊偏移開始就是另一張jpg。
0x02 分離
在得到隱藏信息之后我們下一步就是把另一張jpg分離出,以下討論幾種方法:
(1)使用dd命令分離(linux/unix下)
我們可以使用dd命令分離出隱藏文件:
# dd if=2.jpg of=2-1.jpg skip=158792 bs=1
可以參考 dd命令詳解 ,這里if是指定輸入文件,of是指定輸出文件,skip是指定從輸入文件開頭跳過158792個塊后再開始復制,bs設置每次讀寫塊的大小為1字節 。
最后我們可以得到這樣的一張2.jpg圖片:
(2)使用foremost工具分離
foremost是一個基於文件文件頭和尾部信息以及文件的內建數據結構恢復文件的命令行工具,win可以下載地址,Linux可以通過下面命令安裝使用:
# apt-get install foremost
安裝foremost后你可以使用foremost -help查看使用幫助,這里最簡單分離文件的命令為:
# foremost carter.jpg
當我們使用這行命令后,foremost會自動生成output目錄存放分離出文件。