Ctf之Misc
文件操作
1. 可以使用file+文件名的方式 查看真實文件類型
File是通過文件的文件頭來判斷文件類型,當file判斷不出文件類型時,建議使用winhex來查看文件尾去判斷文件類型。當確定文件類型時,再在文件頭中補上對應的文件頭。
2.放進winhex可查看文件頭判斷文件類型
3.當文件頭損壞時,可根據文件尾進行進行文件類型判斷
1. 文件分離
Binwalk
Binwalk工具可以快速分辨文件是否由多個文件合並而成,並將文件進行分離
(1) 文件分析binwalk 文件名
(2) 文件分離binwalk -e 文件名
Foremost
當binwalk無法分離出文件時,可以使用foremost
(1) foremost 文件頭 -o 輸出目錄名
dd
當文件自動分離出錯或者因為其他原因無法自動分離時,可以使用dd實現文件手動分離
(1)dd if=源文件名 bs=1 skip=開始分離位置 of=輸出文件名
舉例:dd if=misc.jpg bs=1 skip=68019 of=target.zip
參數說明
If=file 輸入文件名 (binwalk中可以獲知文件格式)
Of=file 輸出文件名
Bs=bytes 設置讀寫塊的大小 (binwalk中可以得到對應bs值)
Skip=blocks 從輸入文件開頭跳過blocks個塊 后開始再復制
2. 文件合並
linux:cat 合並的文件 >輸出的文件
例如:cat file1 file2 file3 >file
windows:copy /B 合並的文件> 輸出的文件
copy /B file1+file2+file3 file
3. 文件內容隱寫
Hex隱寫
- 以hex形式存放在文件中,此時以winhex(notepad++)打開文件,尋找對應flag值
- 或者以strings 文件名的形式,輸出可打印字符
圖片
JPEG|Exif
Jpeg有一個特殊的地方:具備exif文件描述信息
在windows中可直接查看文件屬性,其他系統可使用exiftool
Steghigh
Setghigh是一個可以將文件隱藏到圖片或者音頻中的工具
(1) 隱藏文件 steghide embed -cf 圖片文件載體 -ef 待隱藏文件 [-p 密碼]
(2) 提取文件 steghide extract -sf 圖片文件載體 [-p 密碼]
舉例:
Outguess
(1) 隱藏文件 outguess -k 密鑰 -d 隱藏文件 原始圖片 加密后的圖片
(2) 提取文件 outguess -k 密鑰 -r 加密后的圖片 輸出文件名
Png
Png|圖片高度
經常會去改圖片高度或者寬度是的一張圖片顯示不完整從而達到隱藏信息的目的
第二行0-3字節代表圖片寬度,第二行4-7字節代表圖片高度
Png|LSB
PNG圖片中的圖像像素一般是由RGB三原色(紅綠藍)組成,每一種顏色占據8位。Lsb隱寫就是修改了像素中的最低的1bit,而人類的眼睛不會注意到這前后的變化,每個像素可以攜帶3比特的信息
Stegsolve
通過下方的按鈕可以觀察每個通道的信息
通過查看對應RGB(紅綠藍)通道,來判斷隱藏信息
使用analyse中的Data Extract模塊來進行
修改對應rgb值再重新導入
Cloacked-pixel
Cloacker-pixel是實現LSB圖像隱寫和基本檢測的工具
工具下載:https://github.com/livz/cloacker-pixel
加密:lsb.py hide <img_file> <payload_file> <password>
解密:lsb.py extract<stego_file> <out_file> <password>
Png|盲水印
當出現兩張看起來一模一樣的圖片,可以用盲水印解密工具試一下
工具下:https://github.com/chishaxie/BindWaterMark
合成盲水印:python bwmforpy3.py encode 原圖 信息文件 盲水印圖片
提取盲水印:python bwmforpy3.py decode原圖 盲水印圖片 信息文件
GIF
GIF|空間
由於gif的動態特性,由一幀幀的圖片構成,所以每一幀的圖片,多幀圖片間的結合,都成了隱藏信息一種載體
通過stegsolve工具一幀一幀的分析。加載gif圖片 Analyse-frame browser
GIF|時間
文件每一幀的時間間隔也可以作為信息隱藏的載體
Imagemagick:linux安裝 sudo apt install imagemagick
壓縮包
Zip
Zip|通過進制轉換隱藏信息
Zip|圖種
將壓縮包隱藏在一張圖片中
解法:
1.binwalk -e foremost 分離
2.直接將圖片后綴改成.zip
Zip|偽加密
解法:
Zip|暴力破解
Zip|掩碼破解
Zip|明文攻擊
明文攻擊是一種較為高效的攻擊手段,大致原理是當你不知道一個zip的密碼,但是你有zip中的一個已知文件〈文件大小要大於12Byte)時,因為同一個zip壓縮包里的所有文件都是使用同一個加密密鑰來加密的,所以可以用已知文件來找加密密鑰,利用密鑰來解鎖其他加密文件
例子:已知明文.zip中存在的文件test.txt,因此將test.txt壓縮(不用加密),這里需要判斷明文壓縮后的CRC32是否與加密文件中的一致,若不一致可以換一個壓縮軟件
Zip|CRC碰撞
CRC32:CRC本身是“冗余校驗碼"的意思,CRC32則表示會產生一個32bit(8位十六進制數)的校驗值。在產生CRC32時,源數據塊的每一位都參與了運算,因此即使數據塊中只有一位發生改變也會得到不同的CRC32值,利用這個原理我們可以直接爆破出加密文件的內容。
舉例:已知一個壓縮包,解壓密碼很復雜,無法爆破。我們打開看看,知道里面壓縮的flag.txt文件內容為4個字節,CRC32為9BE3EOA3,嘗試用CRC32碰撞一下
解法:使用腳本來進行爆破
用ARCHPR爆破工具攻擊類型選擇明文,加載加密文件和我們壓縮的明文文件
Rar
Rar|暴力破解
從題目相關提示中猜解密碼的長度以及字符范圍等
還是使用archpr工具來進行暴力破解
Rar|偽加密
RAR文件由於有頭部校驗,使用偽加密時打開文件會出現報錯,使用winhex修改標志位后如報錯消失且正常解壓縮,說明是偽加密。使用winhex打開RAR文件,找到第24個字節,該字節尾數為4表示加密,0表示無加密,將尾數改為0即可破解偽加密。
解法:將對應的x4改為x0即可破解偽加密
音頻
Mp3
Mp3|隱寫
Mp3stego
工具下載:https://www. petitcolas.net/steganography/mp3stego/
加密:encode -E hidden_text.txt -P pass svega.wav svega_stego.mp3
解密:decode -X -P pass svega_stego.mp3
波形
波形中隱藏摩斯密碼,較長的藍色即為 “-“,較短的即為 ”.“
Morse2ascii
Morse2ascii是一個PCM解碼wac文件莫斯密碼工具
安裝:apt-get install morse2ascii
解密:運行命令:morse2ascii music.wav
音頻
音頻|波形
波形譜轉化為01字符串
將單聲道波形提取出來,接近1的變成1 ,接近-1的變成0,得到二進制,並轉化為ascii
音頻|頻譜
音頻中的頻譜隱寫是將字符串隱藏在頻譜中,此類音頻通常會有一個較明顯的特征,聽起來是一段雜音或者比較刺耳
聲音
LSB
二維碼
拼接
反向
殘缺
二進制
文檔
Word
Word|隱藏字符
Word|隱藏文件
Pdf|隱藏文字
取證分析
內存取證
volatility
volatility 是一款內存取證和分析工具,可以對raw、wmem、img、dmp等內存鏡像文件進行分析,並提取內存中的文件。
工具下載: https://www.volatilityfoundation.org/releasesvolatility使用:
volatility -f <文件名> --profile=<配置文件><插件>[插件參數]