日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CTF——MISC——流量分析

發布時間:2024/9/30 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CTF——MISC——流量分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、流量包修復

二、協議分析

三、數據提取

例題:

1,題目:Cephalopod(圖片提取)

2,題目:特殊后門(icmp協議信息傳輸)

3,題目:手機熱點(藍牙傳輸協議obex,數據提取)

4,題目:想蹭網先解開密碼(無線密碼破解)

5,我的的教練也想打CTF


概括來講在比賽中的流量分析有以下三個方向:
1、流量包修復
2、協議分析
3、數據提取

一、流量包修復

比如一個流量包它的文件頭也是對的,里邊也沒有包含其他的文件等等等等,但是就是打開出現一些未知的錯誤,這時候就要考慮對流量包進行修復。

這類題目考察較少,通常都借助現成的工具例如PCAPFIX直接修復。

PcapFix

二、協議分析

此類方向需要對分析流量包工具所用的語法有一定的掌握,這里以wireshark為例,須掌握wireshark過濾器(捕捉過濾器與顯示過濾器)的基礎語法,從而更快更精準的獲取指定的信息。

捕捉過濾器:用于決定將什么樣的信息記錄在捕捉結果中,需要在開始捕捉前設置。
顯示過濾器:用于在捕獲結果中進行詳細查找,可以在得到捕捉結果后進行更改

捕捉過濾器基礎語法
Protocol Direction Host(s) Value LogicalOperations other expression
tcp dst 10.1.1.1 80 and tcp dst 10.2.2.2 3128

Protocol
可能的值: ether, fddi, ip, arp, rarp, decnet,lat, sca, moprc, mopdl, tcp and udp,如果沒有特別指明是什么協議,則默認使用所有支持的協議。
Direction
可能的值: src, dst, src and dst, src or dst,如果沒有特別指明來源或目的地,則默認使用 “src or dst” 作為關鍵字。
Host(s)
可能的值: net, port,host, portrange,如果沒有指定此值,則默認使用”host”關鍵字。
例如,”src 10.1.1.1”與”src host 10.1.1.1”相同。
Logical Operations
可能的值:not, and, or
否(“not”)具有最高的優先級,或(“or”)和與(“and”)具有相同的優先級
“not tcp port 3128 and tcp port23”與”(not tcp port 3128) and tcp port23”相同。

舉例分析:
tcp dst port 3128 //目的TCP端口為3128的封包。
ip src host 10.1.1.1 //來源IP地址為10.1.1.1的封包。
host 10.1.2.3 //目的或來源IP地址為10.1.2.3的封包。
src portrange 2000-2500
//來源為UDP或TCP,并且端口號在2000至2500范圍內的封包
not icmp //除了icmp以外的所有封包。

顯示過濾器基礎語法
Protocol String1 String2 ComparisonOperator Value Logical Operations other expression
Protocol
可以使用大量位于OSI模型第2至7層的協議。在Expression中可以看到,例如,IP,TCP,DNS,SSH
String1,String2
可選擇顯示過濾器右側表達式,點擊父類的+號,然后查看其子類
Comparison Oerators
可以使用六種比較運算符

舉例分析:
snmp || dns || icmp //顯示SNMP或DNS或ICMP封包
ip.addr == 10.1.1.1 //顯示源或目的IP為10.1.1.1的封包
ip.src != 10.1.2.3 and ip.dst!=10.4.5.6 //顯示源不為10.1.2.3并且目的不為10.4.5.6的封包
tcp.port == 25 //顯示來源或目的TCP端口號為25的封包
tcp.dport == 25 //顯示目的TCP端口號為25的封包

如果過濾器語法是正確的,表達式背景為綠色,否則為紅色

三、數據提取

這一塊是流量包中另一個重點,通過對協議分析,找到題目的關鍵點,從而對所需要的數據進行提取。

Wireshark支持提取通過http傳輸(上傳/下載)的文件內容,方法如下:
自動提取通過http傳輸的文件內容
文件->導出對象->HTTP


在打開的對象列表中找到有價值的文件,如壓縮文件、文本文件、音頻文件、圖片等,點擊Save進行保存,或者Save All保存所有對象再進入文件夾進行分析。

手動提取通過http傳輸的文件內容
選中http文件傳輸流量包,在分組詳情中找到data,Line-based text,?JPEG File Interchange Format,?data:text/html層,鼠標右鍵點擊 – 選中 導出分組字節流。
來源: 簡簡
作者: 簡簡
鏈接:?https://jwt1399.top/2019/07/29/ctf-liu-liang-fen-xi-zong-jie/
本文章著作權歸作者所有,任何形式的轉載都請注明出處。

如果是菜刀下載文件的流量,需要刪除分組字節流前開頭和結尾的X@Y字符,否則下載的文件會出錯。鼠標右鍵點擊 – 選中 顯示分組字節

?

在彈出的窗口中設置開始和結束的字節(原字節數開頭加3,結尾減3)

?

最后點擊Save as按鈕導出。

?

例題:

1,題目:Cephalopod(圖片提取)

題目來源:XCTF 3rd-HITB CTF-2017
考點:圖片提取
題目信息:(Cephalopod.pcapng)

c中zxz中z

2,題目:特殊后門(icmp協議信息傳輸)

題目來源:第七屆山東省大學生網絡安全技能大賽
考點:字符串搜索,icmp協議信息傳輸
題目信息:(backdoor++.pcapng)

打卡數據包,先在字節流中 搜索 flag 字符串 :搜索到了 一段連續的數據包 里面都有flag字符串??

發現下面每一個 包里 都有一個 字符:

一個一個收集后得到:

flag{Icmp_backdoor_can_transfer-some_infomation}

小知識點:

ICMP(Internet Control Message Protocol)Internet控制報文協議,它是TCP/IP協議簇的一個子協議,用于在IP主機、路由器之間傳遞控制消息??刂葡⑹侵妇W絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然并不傳輸用戶數據,但是對于用戶數據的傳遞起著重要的作用,ICMP協議是一種面向無連接的協議,用于傳輸出錯報告控制信息。它是一個非常重要的協議,它對于網絡安全具有極其重要的意義。

?

3,題目:手機熱點(藍牙傳輸協議obex,數據提取)

題目來源:第七季極客大挑戰
考點:藍牙傳輸協議obex,數據提取
題目信息:(Blatand_1.pcapng)

題中說用 沒流浪 向電腦傳了文件 那肯定是 用的藍牙 藍牙協議 為? ?obex協議

帥選出 obex 協議包 :發現 有一個包 里有一個 rar壓縮包:

要分離出 這個 rar 包:

方法一:直接復制 數據塊 然后復制到winhex中 轉存為 rar?

復制數據塊? as Hex stream? ?>? ?在winhex中粘貼 為 ASCII HEX? >? ?刪除前面的 多余信息? ? > 保存為 rar

方法二 :用formost 分離:分離出來好多東西,不過我們目標是rar包

得到一張flag.git:

4,題目:想蹭網先解開密碼(無線密碼破解)

題目來源:bugku
考點:無線密碼破解
題目信息:(wifi.cap)

?

wifi 連接認證 的重點在于 WAP的 四次握手過程 ,就是 EAPOL 協議的包,

存在 握手過程:直接進行爆破:

先用 linux中的 crunch 生成一個字典:

然后 用 aircrack-ng 進行爆破:

得到 WiFi密碼

5,我的的教練也想打CTF

打開流量包,直接搜 字符串 flag ,找到很多 包,仔細看這些包的info ,發現是 sql 注入語句 布爾注入:

鑒于 sql 注入的 布爾注入 的原理:逐個字母爆破要查詢的字符,我們可以把 查詢到的每個字符 收集起來就能 得到 flag了

注: 爆破每個字符的最后一個 查詢語句 對應的字符就是 正確的字符

本題的爆破語句 :

?id=1' and ascii(substring((select keyid from flag limit 0,1),1,1))=33? %23

意思是: 截取 keyid 的第一個字符 ,并轉化為 ascii? 與 33 進行比較,正確 就停止,不正確就繼續試 34,35……

按照這個規律 得到 keyid 的 所有字符對應的 ascii :
?

102 108 97 103 123 99 50 98 98 102 57 99 101 99 100 97 102 54 53 54 99 102 53 50 52 100 48 49 52 99 53 98 102 48 52 54 99 125

將其轉化為 字符就可以了:
?

chars = "102 108 97 103 123 99 50 98 98 102 57 99 101 99 100 97 102 54 53 54 99 102 53 50 52 100 48 49 52 99 53 98 102 48 52 54 99 125" char = chars.split(" ") for c in char :print(chr(int(c)),end="") flag{c2bbf9cecdaf656cf524d014c5bf046c}

大佬的腳本直接跑:

import pysharklastt=256 flag="flag is " capa=pyshark.FileCapture('misc.pcapng',only_summaries=True,display_filter="http.request == 1") for arps in capa:now=eval(str(arps).split(" ")[7].split('=')[2].split('%')[0])if now < lastt & lastt <= 255:flag+=chr(lastt)lastt=now flag+='}' print(flag)

上面的看不太懂,貼一個自己寫的:

(過濾 http? ?然后? 文件 》 導出分組解析結果? 》 為 CVS? ?,保存為 12.txt?)

import re import urllib.parsef = open(r'12.txt') file = f.readlines() datas = [] #urldecode for i in file:datas.append(urllib.parse.unquote(i)) lines = [] #提取注入flag的語句 for i in range(0,len(datas)):if datas[i].find("flag limit 0,1),1,1))=32# HTTP/1.1") > 0:lines = datas[i:]breakflag = {} macth = re.compile(r"limit 0,1\),(.*?),1\)\)=(.*?)# HTTP/1.1") #匹配我們需要的信息塊 for i in range(0,len(lines),2):obj = macth.search(lines[i])if obj:key = int(obj.group(1)) #獲取字符的位置value = int(obj.group(2))#獲取字符的ascii值flag[key] = value #不斷的更新,進而保留最后一個 f.close() result = '' for value in flag.values():result += chr(value) print(result)

?

?

本文為基礎篇,如果想進一步提升 流量分析的水平,可以參考我的另一篇文章:

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的CTF——MISC——流量分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。