0x00 前言
在安全的大趨勢下,信息安全越來越來受到國家和企業的重視,所以CTF比賽場次越來越多,而且比賽形式也不斷的創新,題目也更加新穎有趣,對選手的綜合信息安全能力有一個較好的考驗,當然更好的是能從比賽有所收獲,不斷學習和總結提升自己的信息安全能力與技術。轉到CTF比賽上,通常在CTF比賽中常有與隱寫術(Steganography)相關的題目出現,這里我們討論總結圖片隱藏文件分離的方法,歡迎大家補充和交流:P
0x01 分析
這里我們以圖片為載體,給了這樣的一樣圖片:
首先我們需要對圖片進行分析,這里我們需要用到一個工具binwalk,想要了解這個工具可以參考這篇Binwalk:后門(固件)分析利器文章,以及kali官方對binwalk的概述和使用介紹。
這里我們就是最簡單的利用,在binwalk后直接提供固件文件路徑和文件名即可:
1 # binwalk carter.jpg
當我們使用這行命令后,binwalk就會自動分析這個jpg文件:
從上面的內容顯然看得出來這個jpg文件還隱藏着另一個jpg文件,從140147塊偏移開始就是另一張jpg。
0x02 分離
在得到隱藏信息之后我們下一步就是把另一張jpg分離出,以下討論幾種方法:
(1)使用dd命令分離(linux/unix下)
我們可以使用dd命令分離出隱藏文件:
1 # dd if=carter.jpg of=carter-1.jpg skip=140147 bs=1
可以參考dd命令詳解,這里if是指定輸入文件,of是指定輸出文件,skip是指定從輸入文件開頭跳過140147個塊后再開始復制,bs設置每次讀寫塊的大小為1字節 。
最后我們可以得到這樣的一張carter-1.jpg圖片:
(2)使用foremost工具分離
foremost是一個基於文件文件頭和尾部信息以及文件的內建數據結構恢復文件的命令行工具,win可以下載地址,Linux可以
通過下面命令安裝使用:
1 # apt-get install foremost
安裝foremost后你可以使用foremost -help查看使用幫助,這里最簡單分離文件的命令為:
1 # foremost carter.jpg
當我們使用這行命令后,foremost會自動生成output目錄存放分離出文件:
(3)hex編輯器分析文件
至於hex編輯器有很多,win下有用得較多的winhex,UltraEdit等,linux下有hexeditor等。這里我們以winhex為例手動分離,在分離之前我們需要知道一點關於jpg文件格式的知識。
jpg格式文件開始的2字節是圖像開始SOI(Start of Image,SOI)為FF D8,之后2個字節是JFIF應用數據塊APPO(JFIF application segment)為FF E0 ,最后2個字節是圖像文件結束標記EOI(end-of-file)為FF D9 ,如果你想詳細了解更多關於這方面的知識,可以參考jpg文件格式分析一文。
用winhex打開圖片,通過Alt+G快捷鍵輸入偏移地址22373跳轉到另一張jpg的圖像開始塊,可以看到FF D8圖像開始塊。
而圖像結束塊FF D9
選取使用Alt+1快捷鍵選取FF為開始的塊,Alt+2選取D9為結束塊,然后右鍵->Edit->Copy Block->Into New File保存相應的文件后綴,例如new.jpg
0x03 其他
還有一種特例,它是事先制作一個hide.zip,里面放入隱藏的文件,再需要一張jpg圖片example.jpg,然后再通過命令 copy /b example.jpg+hide.zip output.jpg生成output.jpg的新文件,原理是利用了copy命令,將兩個文件以二進制方式連接起來,正常的jpg文件結束標志是FF D9,而圖片查看器會忽視jpg結束符之后的內容,所以我們附加的hide.zip就不會影響到圖像的正常顯示。(參考AppLeU0的隱形術總結)
針對這種特例我們可以直接將jpg文件改為zip文件后綴(其他文件如rar文件也類似),就可以看到hide.zip壓縮包里隱藏的文件。
比如當我們得到一張wh3r3_is_f14g.jpg文件:
當我們用winhex打開文件,發現wh3r3_is_f14g.jpg文件最后數據塊不是FF D9 jpg文件的結束標志,而是zip文件的結束標志。
我們直接將文件改名為wh3r3_is_f14g.zip,打開得到flag.txt。
最后打開flag.txt得到flag。
0x04 后話
圖片隱寫方式有很多種,在此只介紹了這一種,如果以后有機會會寫其他的圖片隱寫,如果對隱寫感興趣這里推薦一本機械工業出版社的《數據隱藏技術揭秘:破解多媒體、操作系統、移動設備和網絡協議中的隱秘數據》,如果你不想購買實體書,可以下載pdf版:http://www.jb51.net/books/434273.html
這里我把所有圖片打包了zip,如果有需要自行下載吧: P
https://www.hackfun.org/usr/uploads/2016/07/3701056190.zip