一、概述
0x01 模型介紹
STEGA即隱寫術,將信息隱藏在多種載體中,如:視頻、硬盤和圖像,將需要隱藏的信息通過特殊的方式嵌入到載體中,而又不損害載體原來信息的表達。旨在保護需要隱藏的信息不被他人識別。信息隱蔽技術有:1)隱寫術、2)數字水印、3)隱蔽信道、4)閥下信道、5)匿名信道
Simmons模型——囚犯問題
假設Alice和Bob在兩個不同的監獄,他們之間能通過Wendy通信,同時Wendy能獲取他們交流的信息,如果Alice和Bob將想要表達的信息隱藏在交流信息中,Wendy就發現不了。Simmonns模型
Weber定律
- 德國生理學家韋伯發現同一刺激差別量必須達到一定比例,才能引起差別感覺:
(其中,Weber定律ΔI
是差別閾限,I
是刺激強度,k
是Weber常數)- 感覺量的增加落后于物理量的增加,適用于中等強度的刺激.
ΔI
—JND (Just Noticeable Difference)
Fechner定律
- 心理量是刺激量的對數函數,即當刺激弱度以幾何級數增加時,感覺的強度以算術級數增加:
(其中,Fechner定律S
是感覺強度,I
是刺激強度,k
是常數)- 這個定律說明了人的一切感覺,包括視覺、聽覺、膚覺(含痛、癢、觸、溫度)、味覺、嗅覺、電擊覺等等,都遵從感覺不是與對應物理量的強度成正比,而是與對應物理量的的強度的常用對數成正比的。
Watson模型
- Watson提出了一個測量視覺保真度模型,估計了原圖像和目標圖像之間的JND值。
- 基本原理:根據圖像塊的DCT系數估計變化的感知性,然后將這些估計合并成對感知距離的單個估計。
- 過程:1)頻率敏感性;2)亮度敏感性;3)對比度敏感性;4)合并,計算總的感知距離
聽覺感知
- 聽覺感受到的刺激是:能量、頻率。遵從Fechner定律。
- 掩蔽效應:頻域掩蔽、時域掩蔽
- 頻域掩蔽閾值:人耳能感知的最低頻率成分的聲壓級。
- 絕對聽覺閾值:安靜環境中,能被人耳感知的純音最小值。
通信隱寫模型
通信系統模型
隱寫術安全模型
隱寫術安全模型
數字水印空間模型
數字水印空間模型
典型隱寫模型
典型隱寫模型
- 評價隱寫術的標準核心標準:隱蔽程度隱蔽程度越高,直接導致檢測有效信息越困難
- 其他標準:隱寫算法的好壞、隱寫手段的復雜度、提取信息的難易度
隱寫術分類
隱寫術分類
CTF隱寫術現狀
CTF隱寫術現狀
LSB隱寫介紹
一種常見的方式是利用LSB來進行隱寫,LSB也就是最低有效位 (Least Significant Bit)。原理就是圖片中的像數一般是由三種顏色組成,即三原色,由這三種原色可以組成其他各種顏色,例如在PNG圖片的儲存中,每個顏色會有8bit,LSB隱寫就是修改了像數中的最低的1bit,在人眼看來是看不出來區別的,也把信息隱藏起來了。譬如我們想把’A’隱藏進來的話,如下圖,就可以把A轉成16進制的0x61再轉成二進制的01100001,再修改為紅色通道的最低位為這些二進制串。紅色通道最后一位被修改
每個通道都修改最后一位,修改8次就能隱藏一個ASCII碼
如果是要尋找這種LSB隱藏痕跡的話,Stegsolv.e是個神器,可以來輔助我們進行分析。
注:jpg是有損壓縮,無法LSB隱藏信息;png雖有壓縮卻是無損的,bmp沒有被壓縮,這兩者都可用LSB隱藏信息。
0x10 工具介紹
- binwalk
Binwalk是一個固件的分析工具,多用于逆向工程、取證、隱寫分析。 更多...
$ binwalk firmware.bin //最簡單的操作
$ binwalk --enable-plugin=zlib firmware.bin //有些簽名無法識別,利用zlib插件掃描zlib壓縮包可識別
$ binwalk -y filesystem firmware.bin //指定字符串“filesystem”搜索(正則),-Y 輸出結果只包含文本字符串
$ binwalk -x filename firmware.bin //排除搜索結果中指定'filename'字符串(正則)
$ binwalk -y filesystem -x jffs2 firmware.bin //輸出既包含'filesystem'又排除'jffs2'的字符串
$ binwalk --dd='zip archive:zip:unzip %e' firmware.bin //<type>:<extension>[:<command>]. type 是簽名中描述的小寫字符串(支持正則表達式);extension 是將數據保存到磁盤時使用的文件擴展名;command 是當數據已保存到磁盤后可選的命令執行語句
$ binwalk -e firmware.bin //自動提取
$ binwalk --extract=./my_extract.conf firmware.bin //自定義提取規則'my_extract.conf'
$ binwalk -Me firmware.bin //遞歸提取(8層)
$ binwalk -A firmware.bin //掃描與功能相關聯的各種框架操作碼
$ binwalk -W firmware1.bin firmware2.bin firmware3.bin //比較, 在文件當中相同字節的是綠色顯示,不同的是紅色顯示,藍色表示只是有些文件當中的不同部分
$ binwalk -S firmware.bin //字符串搜索
$ binwalk -E firmware.bin //熵分析
$ binwalk -AE firmware.bin //簽名或字符串以及熵分析
$ binwalk --heuristic firmware.bin //啟發式掃描, 加密或壓縮的高熵的數據塊進行分類
$ binwalk --list-plugins //插件列表
$ binwalk --enable-plugin=foo firmware.bin //啟用插件掃描
$ binwalk --disable-plugin=foo firmware.bin //禁用插件掃描
$ binwalk -f binwalk.log firmware.bin //日志記錄功能
$ sudo binwalk -u //升級binwalk
- WinHex
Winhex是在Windows下執行的十六進制編輯軟件,此軟件功能很強大,有完好的分區管理功能和文件管理功能。能自己主動分析分區鏈和文件簇鏈。在CTF中一般用來查看文件頭格式、直接修改16進制數據,等等。更多...
- 010 Editor
010 Editor是一款非常強大的文本/十六進制編輯器,除了文本/十六進制編輯外,還包括文件解析、計算器、文件比較等功能,但它真正的強大之處還在于文件的解析功能。我們可以使用010Editor官方網站提供的解析腳本(Binary Template)對avi、bmp、png、exe等簡單格式的文件進行解析,當然也可以根據需求來自己編寫文件解析腳本。
- Stegsolve
Stegsolve是一款圖片分析工具,具體功能如下:
功能
- Stegdetect
stegdetect是一種數字圖像隱寫分析工具,主要實現JPEG圖像的隱秘信息的嵌入的檢測。更多...
功能:
q – 僅顯示可能包含隱藏內容的圖像
n – 啟用檢查JPEG文件頭功能,以降低誤報率。如果啟用,所有帶有批注區域的文件將被視為沒有被嵌入信息。
如果JPEG文件的JFIF標識符中的版本號不是1.1,則禁用OutGuess檢測。
s – 修改檢測算法的敏感度,該值的默認值為1。檢測結果的匹配度與檢測算法的敏感度成正比,
算法敏感度的值越大,檢測出的可疑文件包含敏感信息的可能性越大。
d – 打印帶行號的調試信息。
t – 設置要檢測哪些隱寫工具(默認檢測jopi),可設置的選項如下:
j – 檢測圖像中的信息是否是用jsteg嵌入的。
o – 檢測圖像中的信息是否是用outguess嵌入的。
p – 檢測圖像中的信息是否是用jphide嵌入的。
i – 檢測圖像中的信息是否是用invisible secrets嵌入的。
- ffmpeg
ffmpeg作為媒體文件處理軟件,基本用法:
ffmpeg -i INPUTfile [OPTIONS] OUTPUTfile
輸入輸出文件通常就是待處理的多媒體文件了。可以是純粹的音頻文件,純粹的視頻文件,或者混合的。ffmpeg支持絕大部分的常見音頻,視頻格式,像常見的mpeg,AVI封裝的DIVX和Xvid等等,具體的格式支持列表可以使用ffmpeg -formats查看或直接查閱文檔。更多...
- MSU Stego
用于對 AVI 文件進行隱寫\提取操作. 官方介紹如下:
MSU StegoVideo allows hiding any file in a video sequence.Different popular codecs were analyzed and an algorithm, providing the smallest data loss after compression, was chosen. Convolutional codes with Viterbi decoding are used to correct occurred errors. 更多...
Main features
Small video distortions after hiding info.
It is possible to extract info after video compression.
Information is protected with passcode.
- QR Reader
二維碼掃描工具可自定義參數,可以自動識別二維碼反色,自動識別電腦屏幕二維碼,識別率比手機掃碼高,非常強大。
- MP3Stego
用于對 MP3 音頻文件進行隱寫、提取等操作。更多...
用法:
encode -E hidden_text.txt -P pass svega.wav svega_stego.mp3
decode -X -P pass svega_stego.mp3
二、文本格式
0x01 文件格式概述
- 文本格式:.pdf、.txt、.doc、.docx
- 圖像格式:.png、.jpg、.bmp、.gif
- 音頻格式:.mp3、.wma、.wav
- 視頻格式:.mp4、.rmvb、.avi、.flv
0x10 格式協議分析
- pdf文件格式 更多...
數據類型
- 對象, 一個PDF文檔是由一個由基本數據類型組成的數據結構。
- 文件(物理結構), 決定對象是如何存放在一個PDF文件中的, 它們是如何被訪問的,如何被更新的。這個結構是獨立于對象的語義的。
- 文檔結構, 說明一些基本的對象類型是如何來表現PDF文檔的成分的:頁,字體,批注,和另外一些內容。
內容流.一個PDF文件內容流包含一系列的指令,描述頁面的外觀或其他圖形實體的外觀和文件內容。
pdf文件結構
數據流讀寫過程
持續更新中...