轉(zhuǎn)載自:漏斗社區(qū)
0x01 介紹
在CTF比賽中,對于流量包的分析取證是一種十分重要的題型。通常這類題目都是會提供一個包含流量數(shù)據(jù)的pcap文件,參賽選手通過該文件篩選和過濾其中無關(guān)的流量信息,根據(jù)關(guān)鍵流量信息找出flag或者相關(guān)線索。
pcap流量包的分析通常都是通過圖形化的網(wǎng)絡(luò)嗅探器——wireshark進(jìn)行的,這款嗅探器經(jīng)過眾多開發(fā)者的不斷完善,現(xiàn)在已經(jīng)成為使用最為廣泛的安全工具之一。在之前的文章中,斗哥已經(jīng)為大家介紹了wireshark的基本使用。接下來,斗哥將為大家介紹目前CTF流量分析中的經(jīng)典題型和解題思路。
0x02 經(jīng)典題型
CTF題型主要分為流量包修復(fù)、WEB流量包分析、USB流量包分析和其他流量包分析。
■ 流量包修復(fù)
比賽過程中有可能會出現(xiàn)通過wireshark打開題目給的流量包后提示包異常的情況,如下圖所示:
解題思路:
通過在線pacp包修復(fù)工具進(jìn)行修復(fù):
http://f00l.de/hacking/pcapfix.php

練練手
第一屆 “百度杯” 信息安全攻防總決賽 線上選拔賽:find the flag
pacp文件地址:https://static2.ichunqiu.com/icq/resources/fileupload/CTF/BSRC/2017/BSRC3-1/findtheflag.cap
■ WEB流量包分析
WEB數(shù)據(jù)包分析的題目主要出現(xiàn)WEB攻擊行為的分析上, 典型的WEB攻擊行為有:WEB掃描、后臺目錄爆破、后臺賬號爆破、WEBSHELL上傳、SQL注入等等。
■ WEB掃描分析
題型:
通過給出的流量包獲取攻擊者使用的WEB掃描工具。
解題思路:
常見的WEB掃描器有Awvs,Netsparker,Appscan,Webinspect,Rsas(綠盟極光),Nessus,WebReaver,Sqlmap等。要識別攻擊者使用的是哪一種掃描器,可通過wireshark篩選掃描器特征來得知。
相關(guān)命令:http contains “掃描器特征值”。
常見的掃描器特征參考:https://www.freebuf.com/column/156291.htm
練練手
安恒八月月賽流量分析:黑客使用的是什么掃描器?
pacp文件地址:
鏈接:https://pan.baidu.com/s/1bGEIPeXDCbhybmWOyGr8Og 提取碼:q6ro
■ 后臺目錄爆破分析
題型:
已知攻擊者通過目錄爆破的手段獲取了網(wǎng)站的后臺地址,請通過給出的流量包獲取后臺地址。
解題思路:
要獲取流量包中記錄的后臺地址,可通過wireshark篩選后臺url特征來得知。
相關(guān)命令:http contains “后臺url特征”。
常見后臺url特征參考:https://www.freebuf.com/column/156291.html
練練手
安恒八月月賽流量分析:黑客掃描到的后臺登錄地址是什么?
pacp文件地址:
鏈接:https://pan.baidu.com/s/1bGEIPeXDCbhybmWOyGr8Og 提取碼:q6ro
■ 后臺賬號爆破
題型:
已知攻擊者通過暴力破解的手段獲取了網(wǎng)站的后臺登陸賬號,請通過給出的流量包獲取正確的賬號信息。
解題思路:
WEB賬號登陸頁面通常采用post方法請求,要獲取流量包中記錄的賬號信息可通過wireshark篩選出POST請求和賬號中的關(guān)鍵字如‘a(chǎn)dmin’。
相關(guān)命令:http.request.method=="POST" && http contains == "關(guān)鍵字"。
練練手
安恒八月月賽流量分析:黑客使用了什么賬號密碼登錄了web后臺?
pacp文件地址:
鏈接:https://pan.baidu.com/s/1bGEIPeXDCbhybmWOyGr8Og 提取碼:q6ro
■ WEBSHELL上傳
題型:
已知攻擊者上傳了惡意webshell文件,請通過給出的流量包還原出攻擊者上傳的webshll內(nèi)容。
解題思路:
Webshell文件上傳常采用post方法請求,文件內(nèi)容常見關(guān)鍵字eval,system,assert要。獲取流量包中記錄的webshell可通過wireshark篩選出POST請求和關(guān)鍵字.
相關(guān)命令:http.request.method=="POST" && http contains == "關(guān)鍵字"
練練手
安恒八月月賽流量分析:黑客上傳的webshell文件名是?內(nèi)容是什么?
pacp文件地址:
鏈接:https://pan.baidu.com/s/1bGEIPeXDCbhybmWOyGr8Og 提取碼:q6ro
■ USB流量包分析
USB流量指的是USB設(shè)備接口的流量,攻擊者能夠通過監(jiān)聽usb接口流量獲取鍵盤敲擊鍵、鼠標(biāo)移動與點(diǎn)擊、存儲設(shè)備的銘文傳輸通信、USB無線網(wǎng)卡網(wǎng)絡(luò)傳輸內(nèi)容等等。在CTF中,USB流量分析主要以鍵盤和鼠標(biāo)流量為主。
■ 鍵盤流量
USB協(xié)議數(shù)據(jù)部分在Leftover Capture Data域中,數(shù)據(jù)長度為八個字節(jié)。其中鍵盤擊鍵信息集中在第三個字節(jié)中。數(shù)據(jù)如下圖所示:
如上圖所示擊鍵信息為0x05,對應(yīng)的按鍵為“B“。
具體的鍵位映射關(guān)系可參考:《USB鍵盤協(xié)議中鍵碼》中的HID Usage ID,鏈接:https://wenku.baidu.com/view/9050c3c3af45b307e971971e.html
題型:**
Flag藏于usb流量中,通過USB協(xié)議數(shù)據(jù)中的鍵盤鍵碼轉(zhuǎn)換成鍵位。
解題思路:
1.使用kali linux中的tshark 命令把cap data提取出來:tshark -r usb.pcap -T fields -e usb.capdata > usbdata.txt,并去除空行。
- 根據(jù)《USB鍵盤協(xié)議中鍵碼》中的HID Usage ID將數(shù)據(jù)還原成鍵位。
練練手
安全評測人員在對某銀行卡密碼輸入系統(tǒng)進(jìn)行滲透測試,截獲了一段通過USB鍵盤輸入6位數(shù)字密碼的流量,其中也包含了一些其他無關(guān)的USB設(shè)備的流量,你能從中恢復(fù)出6位數(shù)字密碼嗎?最終提交的flag格式為flag。
pacp文件地址:
鏈接:https://pan.baidu.com/s/1bGEIPeXDCbhybmWOyGr8Og
提取碼:q6ro
python鍵盤鍵碼轉(zhuǎn)換腳本:同上
■ 鼠標(biāo)流量
USB協(xié)議鼠標(biāo)數(shù)據(jù)部分在Leftover Capture Data域中,數(shù)據(jù)長度為四個字節(jié)。
其中第一個字節(jié)代表按鍵,當(dāng)取0x00時,代表沒有按鍵、為0x01時,代表按左鍵,為0x02時,代表當(dāng)前按鍵為右鍵。第二個字節(jié)可以看成是一個signed byte類型,其最高位為符號位,當(dāng)這個值為正時,代表鼠標(biāo)水平右移多少像素,為負(fù)時,代表水平左移多少像素。第三個字節(jié)與第二字節(jié)類似,代表垂直上下移動的偏移。數(shù)據(jù)如下圖所示:
如上圖所示數(shù)據(jù)信息為0x00002000,表示鼠標(biāo)垂直向上移動20。
題型:
Flag藏于usb流量中,通過USB協(xié)議數(shù)據(jù)中的鼠標(biāo)移動軌跡轉(zhuǎn)換成Flag。
解題思路:
使用kali linux中的tshark 命令把cap data提取出來:tshark -r usb.pcap -T fields -e usb.capdata > usbdata.txt,并去除空行。
根據(jù)usb協(xié)議鼠標(biāo)數(shù)據(jù)還原鼠標(biāo)移動軌跡。
練練手
這是一道鼠標(biāo)流量分析題。
pacp文件地址:
鏈接:https://pan.baidu.com/s/1bGEIPeXDCbhybmWOyGr8Og 提取碼:q6ro
python鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換腳本:同上
■ 其他流量包分析
除了常規(guī)的WEB和USB流量外,可能還存在諸如SMTP,Telnet等流量,均與WEB流量分析類似,不再贅述。
0x03 總結(jié)
以上為斗哥了解的流量分析在CTF比賽中的基本題型,歡迎大家補(bǔ)充。
參考:
《記一道USB流量分析CTF題》,https://blog.csdn.net/qq_36609913/article/details/78578406
CTF Wiki,https://ctf-wiki.github.io/ctf-wiki/introduction/resources/