原文地址:https://jwt1399.top/2019/07/29/ctf-liu-liang-fen-xi-zong-jie/
前言
在CTF比賽中,對於流量包的分析取證是一種十分重要的題型。通常這類題目都是會提供一個包含流量數據的pcap
文件,選手通過該文件篩選和過濾其中無關的流量信息,根據關鍵流量信息找出flag或者相關線索,一般flag隱藏在某個數據包裏面,或者需要從中提取一個文件出來等等,還有wifi的握手包,需要獲取wifi密碼等。
Wireshark的使用
下載地址:https://www.wireshark.org/download.html
pcap流量包
的分析通常是通過圖形化的網絡嗅探器——Wireshark
進行的.
Wireshark的基本使用分爲數據包篩選、數據包搜索、數據包還原、數據提取四個部分。
數據包篩選
篩選ip
源ip篩選
ip.src == ip地址
或者手動操作:
點擊任意一個符合篩選條件的數據包,找到IPv4下的Source字段。
右鍵點擊Source字段,作爲過濾器應用 – 選中。
目的ip篩選
ip.dst == ip地址
或者手動操作:
點擊任意一個符合篩選條件的數據包,找到IPv4下的Destination字段,右鍵點擊Source字段,作爲過濾器應用 – 選中。
mac地址篩選
eth.dst ==A0:00:00:04:C5:84 篩選目標mac地址
eth.addr==A0:00:00:04:C5:84 篩選MAC地址
端口篩選
tcp.dstport == 80 篩選tcp協議的目標端口爲80的流量包
tcp.srcport == 80 篩選tcp協議的源端口爲80的流量包
udp.srcport == 80 篩選udp協議的源端口爲80的流量包
協議篩選
tcp 篩選協議爲tcp的流量包
udp 篩選協議爲udp的流量包
arp/icmp/http/ftp/dns/ip 篩選協議爲arp/icmp/http/ftp/dns/ip的流量包
包長度篩選
udp.length ==20 篩選長度爲20的udp流量包
tcp.len >=20 篩選長度大於20的tcp流量包
ip.len ==20 篩選長度爲20的IP流量包
frame.len ==20 篩選長度爲20的整個流量包
http請求篩選
請求方法爲GET:http.request.method==“GET” 篩選HTTP請求方法爲GET的 流量包
請求方法爲POST:http.request.method==“POST” 篩選HTTP請求方法爲POST的流量包
指定URI:http.request.uri==“/img/logo-edu.gif” 篩選HTTP請求的URL爲/img/logo-edu.gif的流量包
請求或相應中包含特定內容:http contains “FLAG” 篩選HTTP內容爲/FLAG的流量包
數據包搜索
在wireshark界面按“Ctrl+F”,可以進行關鍵字搜索:
Wireshark的搜索功能支持正則表達式、字符串、十六進制等方式進行搜索,通常情況下直接使用字符串方式進行搜索。
搜索欄的左邊下拉,有分組列表、分組詳情、分組字節流三個選項,分別對應wireshark界面的三個部分,搜索時選擇不同的選項以指定搜索區域:
數據包還原
在wireshark中,存在一個追蹤流的功能,可以將HTTP或TCP流量集合在一起並還原成原始數據,具體操作方式如下:
選中想要還原的流量包,右鍵選中,選擇追蹤流 – TCP流/UPD流/SSL流/HTTP流。
[圖片上傳失敗...(image-39c4d0-1564917249762)]
可在彈出的窗口中看到被還原的流量信息:
數據提取
Wireshark支持提取通過http傳輸(上傳/下載)的文件內容,方法如下:
自動提取通過http傳輸的文件內容
文件->導出對象->HTTP
在打開的對象列表中找到有價值的文件,如壓縮文件、文本文件、音頻文件、圖片等,點擊
Save
進行保存,或者Save All
保存所有對象再進入文件夾進行分析。[圖片上傳失敗...(image-6580c-1564917249762)]
手動提取通過http傳輸的文件內容
選中http文件傳輸流量包,在分組詳情中找到
data
,Line-based text
, JPEG File Interchange Format
, data:text/html
層,鼠標右鍵點擊 – 選中 導出分組字節流。如果是菜刀下載文件的流量,需要刪除分組字節流前開頭和結尾的X@Y字符,否則下載的文件會出錯。鼠標右鍵點擊 – 選中 顯示分組字節
在彈出的窗口中設置開始和結束的字節(原字節數開頭加3,結尾減3)
[圖片上傳失敗...(image-826b60-1564917249762)]
最後點擊
Save as
按鈕導出。
流量分析經典題型
CTF題型主要分爲流量包修復、數據提取、WEB流量包分析、USB流量包分析、無線密碼破解和工控流量包分析等等。
入門題型
題目:Cephalopod(圖片提取)
題目來源:XCTF 3rd-HITB CTF-2017
考點:圖片提取
題目信息:(Cephalopod.pcapng)
數據包打開,分組字節流查詢flag,發現出現了flag.png的字樣,但是並沒有這個圖片文件,往下翻,圖片應該在長度較大的流中,追蹤tcp流在tcp.stream eq 2處找到圖片文件,保存爲原始數據
刪除PNG前面多餘部分,保存爲1.png
得到flag
題目:特殊後門(icmp協議信息傳輸)
題目來源:第七屆山東省大學生網絡安全技能大賽
考點:字符串搜索,icmp協議信息傳輸
題目信息:(backdoor++.pcapng)
搜索flag字符串,在icmp中得到提示flagishere
之後的每一個icmp包都有含一個flag字符
[圖片上傳失敗...(image-2af0fa-1564917249762)]
依次查看所有icmp包拼湊字符得到flag
flag{Icmp_backdoor_can_transfer-some_infomation}
題目:手機熱點(藍牙傳輸協議obex,數據提取)
題目來源:第七季極客大挑戰
考點:藍牙傳輸協議obex,數據提取
題目信息:(Blatand_1.pcapng)
根據題目提示,手機共享,那麼應該是藍牙傳輸,藍牙傳輸協議爲OBEX,過濾後發現含有一個壓縮包
方法一:foremost分離後得到壓縮包,解壓得到flag.gif
[圖片上傳失敗...(image-884296-1564917249762)]
方法二:選中含secret.rar包,進行如下操作
保存爲1.rar,解壓後得到flag.gif
題目:想蹭網先解開密碼(無線密碼破解)
題目來源:bugku
考點:無線密碼破解
題目信息:(wifi.cap)
下載cap包,WIFI連接認證的重點在WPA的四次握手包,也就是eapol協議的包,過濾一下
果然存在四次握手包,直接進行無線密碼爆破
創建密碼字典:
crunch 11 11 -t 1391040%%%% >> wifipass.txt
Linux下的字典生成工具Crunch
利用aircrack-ng 進行爆破
aircrack-ng -w wifipass.txt wifi.cap
得到flag
flag{13910407686}
進階題型
題目:抓到一隻蒼蠅(數據包篩選,數據提取)
題目來源:bugku
考點:數據包篩選,數據提取
題目信息:(misc_fly.pcapng)
首先打開數據包,題目提示了抓到一隻蒼蠅,試一試搜索蒼蠅
http contains "蒼蠅"
發現一些可疑信息,仔細分析一下發現是在發qq郵件,並且還上傳了文件
既然上傳了文件,我們再過濾POST請求試試:
http.request.method==POST
可以看到13號數據包調用函數CreateFile
,然後下面幾個可能就是文件內容了,具體是幾個,仔細看看URL,738號數據包有個需要調用函數CheckFile
,並且前面的5個數據包url的路徑一樣,
所以從第一個開始,後5個數據包是flag.rar內容
我們將分組字節流中的原始數據分別保存爲1、2、3、4、5,方便操作
但是由於TCP包有文件頭,我們需要去掉文件頭才能將原始數據合成一個文件,
從第一個數據包可以看出來:
文件大小是525701字節,我們需要的這5個數據包的大小(Media Type中可看到):
131436*4+1777=527521
527521-525701=1820
1820/5=364
tcp包的文件頭就爲364
然後使用linux的一些工具進行操作即可得到flag.rar
依次把五個文件去掉文件頭保存到另一文件
這裏使用dd:
dd if=1 bs=1 skip=364 of=1.1
dd命令語法:
if 輸入文件名
bs 設置每次讀寫塊的大小爲1字節
skip 指定從輸入文件開頭跳過多少個塊後再開始複製
of 輸出文件名
然後再用linux的輸入流來合併成一個文件:
cat 1.1 2.1 3.1 4.1 5.1 > fly.rar
或者
copy /B 1.1+2.1+3.1+4.1+5.1 fly.rar
然後fly.rar又被僞加密了,所以需要將這個文件用HXD打開後,將其中的74 84改爲74 80就能打開了
解壓得到flag.txt,用HXD打開,顯示在win32下運行,
因此改爲exe可執行文件後,一堆蒼蠅出現了。。。。
binwalk一下發現含有很多圖片,foremost提取一下,得到一個二維碼
掃碼得到flag