文件操作與隱寫
-
文件類型識別
-
File命令
- 使用場景,不知道后綴名,無法打開文件,修改后綴名即可正常打開
- 格式: file filename
- winhex
- notepad++的一個插件,可以查看文件16進制代碼

-
文件頭殘缺或錯誤

-
用編輯器補充文件頭
-
-
文件分離
- Binwalk
- 分析文件:binwalk filename
- 分離文件:binwalk -e filename
- 遇到壓縮包自動解壓
- foremost
- 用法:foremost 文件名 -o 輸出目錄名
- 類型會幫你分類
- dd
- 當文件自動分離出錯或者因為其他原因無法自動分離時,可以使用dd實現文件手動分離
- 格式: dd if=源文件 of=目標文件名 bs=1 count=3 skip=開始分離的字節數
- bs=bytes #設置讀寫快的大小為bytes,可代替ibs和obs
- skip=blocks #從輸入文件開頭跳過blocks個塊后再開始復制
- Winhex/010editor直接編輯或復制
- Binwalk
-
文件合並操作
- linux下的文件合並
- 使用場景:linux下,通常對文件名相似的文件要進行批量合並
- 格式: cat 合並的文件 > 輸出的文件
- 完整性檢測:linux下計算文件md5: md5sum 文件名
- windows下的文件合並
- 使用場景:windows下,通常對文件名相似的文件要進行批量合並
- 格式: copy /B 合並的文件+合並的文件 輸出的文件
- 完整性檢測:linux下計算文件md5:certutil -hashfile 文件名 md5
- linux下的文件合並
-
文件內容隱寫
-
文件內容隱寫,就是直接將KEY以十六進制的形式寫在文件中,通常在文件的開頭或結尾部分,分析時通常重
點觀察文件開頭和結尾部分。如果在文件中間部分,通常搜索關鍵字KEY或者flag來查找隱藏內容。
-
圖片隱寫術
-
考點
- 細微的顏色差別
- GIF多幀隱藏
- 顏色通道隱藏
- 不同幀圖信息隱藏
- 不同幀比對隱寫
- Exif信息隱藏
- 圖片修復
- 圖片頭修復
- 圖片尾修復
- CRC校驗修復
- 長、寬、高度修復
- 最低有效位LSB隱寫
- 圖片加密
- stegdetect
- outguess
- jphide
- F5
-
圖片文件隱寫工具
- 利用ps,ai,firework,查看gif每一幀
- exif
- 圖片右鍵屬性,查看exif或查看詳細信息,在相關選項卡中查找flag信息。
- linuxexiftool 圖片
- stegsolve
- 當兩張jpg圖片外觀、大小、像素都基本相同時,可以考慮進行結合分析,即將兩個文件的像素RGB值進行XOR、ADD、SUB等操作,看能否得到有用的信息,StegSolve 可以方便的進行這些操作。
- 使用場景:兩張圖片信息基本相同
- LSB工具
- LSB替換隱寫基本思想是用嵌入的秘密信息取代載體圖像的最低比特位,原來的的7個高位平面與替代秘密信息的最低位平面組合成含隱藏信息的新圖形。
- 像素三原色(RGB)
- 通過修改像素中最低位的1bit來達到隱藏的效果
- 工具: stegsolve、 zsteg、 wbstego4、 python腳本

-
stegsolve工具
-
zsteg工具
- 安裝 kali# gem install zsteg
- 檢測 zsteg xxx.png

- wbstego4工具
- bmp,rle,pdf格式圖片,txt,asc,html,xml文件
- 自己編寫的python腳本
- TweakPNG
- TweakPNG是--款簡單易用的PNG圖像瀏覽工具,它允許查看和修改--些PNG圖像文件的元信息存儲。
- 使用場景:文件頭正常卻無法打開文件,利用TweakPNG修改CRC
- 例:1.當PNG文件頭正常但無法打開文件,可能是CRC校驗出錯,可以嘗試通過TweakPNG打開PNG,會彈出校驗錯誤的提示,這里顯示CRC是fe1a5ab6,正確的 是b0a7a9f1。打開winhex搜索fe1a5ab6將 其改為b0a7a9f1。

- 有時CRC沒有錯誤,但是圖片的高度或者寬度發生了錯誤,需要通過CRC計算出正確的高度或者寬度。

- Bftools
- bftools用於解密圖片信息。
- 使用場景:在windows的cmd下,對加密過的圖片文件進行解密
- 格式: Bftools.exe decode braincopter要解密的圖片名稱-output輸出文件名
- Bftools.exe run.上-步輸出的文件
- SilentEye
- silenteye是一款可以將文字或者文件隱藏到圖片的解密工具。
- 使用場景: windows 下打開silentEye.工具,對加密的圖片進行解密
- 例:1.使用silentEye程序打開目標圖片,點擊image- >decode, 點擊decode, 可以查看隱藏文件,點擊保存即可
- JPG圖像加密
- Stegdetect工具探測加密方式
- Stegdetect程序主要用於分析PEG文件。因此用stegdetect 可以檢測到通過JSteg、JPHide. OutGuess. Invisible Secrets. F5. appendX和Camouflage等這些隱寫工具隱藏的信息。
- stegdetect xxx.jpg
- stegdetect -s 敏感度 xxx.jpgexi

- Jphide
- Jphide是基於最低有效位LSB的JPEG格式圖像隱寫算法.
- 例:Stegdetect提示jphide加密時,可以用Jphs_工具進行解密,打開jphswin.exe, 使用open jpeg打開圖片,點擊seek,輸入密碼和確認密碼,在彈出文件框中選擇要保存的解密文件位置即可,結果保存成txt文件。

-
Outguess
- outguess-般用於解密文件信息。
- 使用場景: Stegdetect識別 出來或者題目提示是outguess加密的圖片
- 該工具需編譯使用: ./configure && make && make install
- 格式: outguess-r 要解密的文件名輸出結果文件名
-
F5
- F5一般用於解密文件信息。
- 使用場景: Stegdetect識 別出來是F5加密的圖片或題目提示是F5加密的圖片
- 進入F5-steganography_ _F5目錄,將圖片文件拷貝至該目錄下,從CMD進入該目錄
- 格式:Java Exrtact要解密的文件名-p密碼
- 運行結束后我們可以直接在目錄下的output.txt中看至結果。
- Stegdetect工具探測加密方式
- 二維碼處理

- 3.如果某個二維碼的定位點中間是白色,可能被反色了,使用畫圖工具把顏色反色回來再掃描即可。
壓縮文件處理
-
偽加密
- 如果壓縮文件是加密的,或文件頭正常但解壓縮錯誤,首先嘗試文件是否為偽加密。zip文件是否加密,是通過標識符來顯示的,在每個文件的文件目錄字段有一位專門標識了文件是否加密,將其設置為00表示該文件未加密,如果成功解壓則表示文件為偽加密,如果解壓出錯說明文件為真加密。
- 使用場景:偽加密文件
- 操作方法:使用winhex打開壓縮文件, 找到文件頭第九第十個字符,將其修改為0000。
- 1.使用winhex打開文件搜索16進制504B0102,可以看到每個加密文件的文件頭字段。
- 2.從50開始計算,第九第十個字符為加密字段,將其設置為0000即可變成無加密狀態。
- 3.RAR文件由於有頭部校驗,使用偽加密時打開文件會出現報錯,使用winhex修改標志位后如報錯消失且正常解壓縮,說明是偽加密。使用winhex打開RAR文件,找到第24個字節,該字節尾數為4表示加密,0表示無加密,將尾數改為0即可破解偽加密。
-
暴力破解
- 通常我們可以使用ARCHPR.exe工具來破解zip文件
- 使用場景: windows下加密過的zip文件
- 1、攻擊類型選擇暴力破解,在范圍位置根據提示,選擇暴力破解范圍選項設置暴力破解包含的類型、開始於和結束於選項具體范圍,如果沒有定義則全范圍暴力破解。點擊打開選擇要破解的文件,點擊開始進行破解。建議使用1~9位的數字密碼,以及系統自帶的英文字典作為密碼字典。
- 2、攻擊類型選擇掩碼可以進行復雜的暴力破解,比如知道密碼前3位是abc,后3位為數字,則在攻擊類型選擇掩碼,在掩碼處輸入acb??,暴力范圍選項選擇所有數字,打開要破解的點擊,點擊破解。此時? ? ?的部分會被我們選擇的暴力破解范圍中的字符代替
-
明文攻擊
- 明文攻擊指知道加密的ZIP中部分文件的明文內容,利用這些內容推測出密鑰並解密ZIP文件的攻擊方法,相比於暴力破解,這種方法在破解密碼較為復雜的壓縮包時效率更高。
- 使用場景: 已知加密的zip部分文件明文內容
- 例:假設一個加密的壓縮包中有兩個文件readme.txt和flag:txt,其中flag txt的內容是我們希望知道的內容,而我們擁有readme.txt的明文文件,使用上述兩個文件即可進行明文攻擊。
- 操作:
- 1、將readme.txt的明文文件進行壓縮,變成readme1.zip。
- 2、打開archpr, 攻擊類型選擇明文,明文文件路徑選擇readme1.zip ( 即將明文文件不加密壓縮后的文件),加密的文件
- 3、選擇要破解的文件,點擊開始,破解成功后會獲得密碼。
- 有時不一 -定能破解出文件口令,但是能夠找到加密密鑰等信息,可以直接將文件解密,點擊確定保存解密后的文件即可
-
RAR文件格式
- RAR文件的頭部各個字段會故意給錯,導致無法識別文件

流量取證技術
-
介紹
- CTF比賽中,流量包的取證分析是另一項重要的考察方向。通常比賽中會提供一 個包含流量數據的PCAP文件,有時候也會需要選手們先進行修復或重構傳輸文件后,再進行分析。
- 總體把握
- 協議分級
- 端點統計
- 過濾篩選
- 過濾語法
- Host, Protocol, contains, 特征值
- 發現異常
- 特殊字符串
- 協議某字段
- flag位於服務器中
- 數據提取
- 字符串取
- 文件提取
- 總的來說比賽中的流量分析可以概括為以下三個方向:
- 流量包修復
- 協議分析
- 數據提取
-
WireShark
- 常用的過濾命令:
- 過濾IP, 如源IP或者目標x.x.x.x
- ip.src eq x.x.x.x or ip.dst eq x.x.x.x或者ip.addr eq x.x.x.x
- 過濾端口
- tcp.port eq 80 or udp.port eq 80
- tcp.dstport == 80只 顯tcp協議的目標端口為80
- tcp.srcport == 80只 顯tcp協議的源端口為80
- tcp.port >= 1 and tcp.port <= 80
- 過濾協議
- tcp/udp/arp/icmp/http/ftp/dns/ip·
- 過濾MAC
- eth.dst == A0:00:00:04:C5:84 過濾目標mac
- 包長度過濾
- udp. length == 26 這個長度是指udp本身固定長度8加上udp下面那塊數據包之和。
- tcp.len >= 7指的是ip數據包(tcp下面那塊數據),不包括tcp本身
- ip.len == 94 除了以太網頭固定長度14,其它都算是ip.len,即從ip本身到最后
- frame. len == 119整個數據包長度,從eth開始到最后
- http模式過濾
- http.request.method == "GET"
- http.request.method == "POST"
- http.request.url == "/img/1.gif"
- http contains "GET"
- http contains "HTTP/1."
- http.request.method == "GET" && http contains "User-Agent:"
- http contains "flag"
- http contains "key"
- tcp contains "flag'
- 過濾IP, 如源IP或者目標x.x.x.x
- 各種過濾技巧
- 協議分析
- 根據數據包特征篩選
- 流匯聚
- 常見的HTTP流關鍵內容:
- HTML中直接包含重要信息。
- 上傳或下載文件內容,通常包含文件名、hash值等關鍵信息,常用POST請求上傳。
- 一句話木馬,POST請求, 內容包含eval, 內容使用base64加密

- 常見的HTTP流關鍵內容:
- 協議分析
- 數據提取
- 使用vireshark可以自動提取通過http傳輸的文件內容。
- 手動提取文件內容
- 使用vireshark可以自動提取通過http傳輸的文件內容。
- 無限流量包跑密碼

- aircrack-ng工具進行wif密碼破解
- 用aircrack-ng檢查cap包:aircrack-ng xxx.cap
- 用aircrack-ng跑字典進行握手包破解:aircrack-ng xxx.cap -w pass.txt
- 用aircrack-ng檢查cap包:aircrack-ng xxx.cap
- USB流量包分析

- usb對應鍵官網:http://www.usb.org/developers/hidpage/Hut1_12v2.pdf
- Leftover Capture Data 數據提取方式1
- Leftover Capture Data 數據提取方式1
- usb鼠標流量抓取分析

- 通過python腳本提取抓取的數據坐標,再通過gnuplot等工具根據坐標畫出來
- HTTPS流量包文件分析
- 常用的過濾命令:
磁盤/內存
















