前言:上週的比賽,知識和工具都補充了一波,着實嚇到我這老菜鳥了。
1.blind-watermark
這個工具主要是解決盲水印問題。
克隆到kail裏
python encode.py --image <image file> --watermark <watermark file> --result <result file>
python decode.py --original <original image file> --image <image file> --result <result file>
Use --alpha to change the alpha (default 5.0).
這個工具分爲加密(encode)和解密(decode)兩部分。
原始文件,帶有水印的文件,解出來的文件(或加密出來的文件)
在看不懂我也沒辦法了。
2.F5隱寫
F5隱寫全稱F5-steganography。
1.kail安裝命令:git clone https://github.com/matthewgao/F5-steganography
2.進入F5-steganography文件夾,空白處打開命令終端。
3.java Extract 圖片的絕對路徑/123456.jpg -p 123456
切記是絕對路徑,並且 -p 後面是密碼。
4.在文件夾內找到並打開output.txt文件,就會有你想要的答案。
3.outguess隱寫
kail終端命令輸入 git clone https://github.com/crorvick/outguess 進行下載,下載完成後進入outguess文件夾,右擊打開終端,
執行命令./configure && make && make install 進行編譯及安裝。
outguess -k ‘密鑰’ -r 圖片的絕對路徑 flag.txt解密,flag.txt(在outguess文件夾內)中的內容是要隱藏的答案。
outguess -k “secret key” -d flag.txt 0.jpg 1.jpg加密,加密之後,0.jpg會覆蓋1.jpg。
4.steghide工具
如果你的Kali Linux還沒有更新過的話,那麼執行以下命令進行更新。
apt-get upgrade
當系統更新完畢後,就可以採取在線安裝的方式把steghide工具裝入到你的系統中。apt-get install steghide
如果權限不夠的話需要加,在命令前面加sudo,然後輸入自己的密碼就🆗了。
用法示例:
將post.txt文件隱藏到xxx.jpg中:
steghide embed -cf xxx.jpg -ef post.txt -p 123456(不加-p參數 不設置密碼 )
從xxx.jpg解出post.txt:
steghide extract -sf xxx.jpg (圖片路徑)-p 123456(-p 密碼)
steghide也可以用來爆破密碼:
需要shell腳本:`#bruteStegHide.sh
#bruteStegHide.sh #!/bin/bash for line in `cat $2`;do steghide extract -sf $1 -p $line > /dev/null 2>&1 if [[ $? -eq 0 ]];then echo 'password is: '$line exit fi done
用法:
# ./bruteStegHide.sh test.jpg passwd.txt
剩下的密碼就出來了。
5.文件分離工具(binwalk,foremost)
1.binwalk的安裝
git clone https://github.com/devttys0/binwalk
cd binwalk
python setup.py install
運行命令:
binwalk -D “archive:zip” -D “image:jpg” hehe.jpg 可以直接分離文件
也可以使用dd命令分離文件,如:dd if=hehe.jpg of=hehe1.zip bs=1 skip=54163
2、Binwalk的提取與分析
2.1、固件掃描
命令:binwalk firmware.bin 通過掃描能夠智能地發現目標文件中包含的所有可識別的文件類型。
2.2、提取文件
命令:binwalk -e firmware.bin 選項“-e"和“–extract"用於按照定義的配置文件中的提取方法從固件中提取探測到的文件系統。
命令:binwalk -Me firmware.bin 選項“-M"和“–matryoshka"用於根據magic簽名掃描結果進行遞歸提取,僅對"-e"和“–dd"選項有效。
命令:binwalk -Me -d 5 firmware.bin 選項“-d"和“–depth="用於限制遞歸提取深度,默認深度爲8,僅當“-M"選項存在時有效。
命令 dd if=(原文件名) of=(提取文件名)skip=數據地址 bs=1
2.3、顯示完整的掃描結果
命令:binwalk -I firmware.bin 選項"-I"和“–invalid"用於顯示掃描的所有結果(即使是掃描過程中被定義爲“invalid“的項)。當我們認爲binwalk錯把有效的文件當成無效文件時,可以通過該選項來檢查。
6.foremost的使用。
1、foremost在kali linux已經預裝。
#apt-get install foremost
2、然後看是否下載成功,輸入
foremost -h
會顯示如下信息(已經翻譯)
$ foremost [-v|-V|-h|-T|-Q|-q|-a|-w-d] [-t <type>] [-s <blocks>] [-k <size>]
[-b <size>] [-c <file>] [-o <dir>] [-i <file]
-V - 顯示版權信息並退出
-t - 指定文件類型. (-t jpeg,pdf ...)
-d -打開間接塊檢測 (針對UNIX文件系統)
-i - 指定輸入文件 (默認爲標準輸入)
-a - 寫入所有的文件頭部, 不執行錯誤檢測(損壞文件)
-w - 向磁盤寫入審計文件,不寫入任何檢測到的文件
-o - 設置輸出目錄 (默認爲爲輸出)
-c - 設置配置文件 (默認爲 foremost.conf)
-q - 啓用快速模式. 在512字節邊界執行搜索.
-Q - 啓用安靜模式. 禁用輸出消息.
-v - 詳細模式. 向屏幕上記錄所有消息。
ctf文件分離的題目,大多時候可以使用binwalk或者winhex也可以使用dd命令。可以使用foremost,相對來說binwalk更加強大,速度也快,但是有時候如果不能分離出來,就可以試試看foremost。
最簡單的使用方法就是將圖片放進foremost目錄下,輸入命令:
foremost -i xxx.jpg
在目錄下會出現一個output文件夾,分離出的結果會在裏面。
工具就說到這,後面肯定還會有!!!