CTF流量分析之wireshark使用

01.基本介绍

在CTF比赛中,对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含流量数据的pcap文件,参赛选手通过该文件筛选和过滤其中无关的流量信息,根据关键流量信息找出flag或者相关线索。

pcap流量包的分析通常都是通过图形化的网络嗅探器——wireshark进行的,这款嗅探器经过众多开发者的不断完善,现在已经成为使用最为广泛的安全工具之一。

02.基本使用

Wireshark的基本使用分为数据包筛选、数据包搜索、数据包还原、数据提取四个部分。

1. 数据包筛选:

数据包筛选功能是wireshark的核心功能,比如需要筛选出特定的协议如HTTP,Telnet等,也可能需要筛选出ip地址,端口等。

1.1  筛选ip:

●源ip筛选

输入命令:ip.src == 地址

地址.webp.jpg

或者手动操作:

点击任意一个符合筛选条件的数据包,找到IPv4下的Source字段。

字段.webp.jpg

右键点击Source字段,作为过滤器应用 – 选中。

选中.webp.jpg

●目的ip筛选

输入命令:ip.dst == 地址

命令.webp.jpg

或者手动操作:

点击任意一个符合筛选条件的数据包,找到IPv4下的Destination字段,右键点击Source字段,作为过滤器应用 – 选中。

过滤器.webp.jpg

其他字段筛选与上面类似:

  1.2  mac地址筛选:

   eth.dst ==A0:00:00:04:C5:84 筛选目标mac地址

   eth.addr==A0:00:00:04:C5:84 筛选MAC地址

  1.3  端口筛选:

   tcp.dstport == 80  筛选tcp协议的目标端口为80 的流量包

   tcp.srcport == 80  筛选tcp协议的源端口为80 的流量包

   udp.srcport == 80  筛选udp协议的源端口为80 的流量包

  1.4  协议筛选:

   tcp  筛选协议为tcp的流量包

   udp 筛选协议为udp的流量包

   arp/icmp/http/ftp/dns/ip  筛选协议为arp/icmp/http/ftp/dns/ip的流量包

   1.5  包长度筛选:

    udp.length ==20   筛选长度为20的udp流量包

    tcp.len >=20  筛选长度大于20的tcp流量包

    ip.len ==20  筛选长度为20的IP流量包

    frame.len ==20 筛选长度为20的整个流量包

   1.6   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的流量包

2. 数据包搜索:

在wireshark界面按“Ctrl+F”,可以进行关键字搜索:

关键字.webp.jpg

Wireshark的搜索功能支持正则表达式、字符串、十六进制等方式进行搜索,通常情况下直接使用字符串方式进行搜索。

字串.webp.jpg

搜索栏的左边下拉,有分组列表、分组详情、分组字节流三个选项,分别对应wireshark界面的三个部分,搜索时选择不同的选项以指定搜索区域:

区域.webp.jpg

分组列表:

列表.webp.jpg

分组详情:

详情.webp.jpg

分组字节流:

分组.webp.jpg

3.  数据包还原

在wireshark中,存在一个交追踪流的功能,可以将HTTP或TCP流量集合在一起并还原成原始数据,具体操作方式如下:

选中想要还原的流量包,右键选中,选择追踪流 – TCP流/UPD流/SSL流/HTTP流。

流.webp.jpg

可在弹出的窗口中看到被还原的流量信息:

还原.webp.jpg

4. 数据提取

Wireshark支持提取通过http传输(上传/下载)的文件内容,方法如下:

选中http文件传输流量包,在分组详情中找到data或者Line-based text data:text/html层,鼠标右键点击 – 选中 导出分组字节流。

导出.webp.jpg

如果是菜刀下载文件的流量,需要删除分组字节流前开头和结尾的X@Y字符,否则下载的文件会出错。鼠标右键点击 – 选中 显示分组字节…

选中.webp.jpg

在弹出的窗口中设置开始和结束的字节(原字节数开头加3,结尾减3)

减.webp.jpg

最后点击save as按钮导出。

03总结

以上为wireshark网络嗅探器中关于流量分析在CTF比赛中的基本使用。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

大厂面试题

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~ 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

CTF比赛中,使用Wireshark进行网络流量分析是获取flag的重要手段之一。为了快速定位包含flag的数据包,可以采用以下策略: ### 1. 使用关键字搜索 CTF题目中的flag通常会以特定格式出现,例如`flag{...}`。可以利用Wireshark的搜索功能,直接搜索关键字`flag`,这样可以快速定位到包含flag的HTTP响应或TCP流中[^1]。 ### 2. 利用协议过滤器 Wireshark提供了强大的过滤功能,可以通过协议过滤器快速定位到特定协议的数据包。例如,如果flag是通过HTTP传输的,可以使用`http`作为过滤条件;如果知道flag是通过FTP传输的,可以使用`ftp`作为过滤条件[^2]。 ### 3. 使用显示过滤器 显示过滤器可以帮助进一步缩小查找范围。例如,可以使用`ip.addr == x.x.x.x`来过滤特定IP地址的数据包,或者使用`tcp.port == 80`来过滤特定端口的数据包。这些过滤器可以组合使用,以更精确地定位目标数据包[^3]。 ### 4. 追踪TCP流 对于通过TCP协议传输的flag,可以使用Wireshark的“追踪流”功能(右键点击TCP包,选择“追踪流” -> “TCP流”),将整个TCP会话的数据包汇聚在一起,方便查看完整的数据内容。在追踪的流中,可以更容易地找到flag[^3]。 ### 5. 检查HTTP请求和响应 如果flag是通过HTTP协议传输的,可以使用`http`作为过滤条件,然后检查HTTP请求和响应中的内容。特别注意POST请求,因为flag可能包含在POST请求的正文部分。可以使用`http contains "flag"`来直接搜索包含flag的HTTP数据包[^3]。 ### 6. 使用文件导出功能 对于包含flag的文件传输,可以使用Wireshark的文件导出功能。例如,如果flag是通过HTTP下载的文件,可以右键点击HTTP包,选择“导出对象” -> “HTTP”,然后查看导出的文件内容[^4]。 ### 7. 分析异常流量 在CTF比赛中,flag可能隐藏在异常流量中。例如,菜刀连接一句话木马的数据包通常会有特定的特征,如POST请求中包含`eval`和base64加密的内容。通过分析这些异常流量,可以找到flag[^1]。 ### 示例代码 以下是一个简单的Python脚本,用于从Wireshark导出的PCAP文件中提取包含`flag`的关键字: ```python import pyshark # 加载PCAP文件 cap = pyshark.FileCapture('example.pcap') # 遍历所有数据包 for packet in cap: try: # 检查数据包内容是否包含flag if 'flag' in packet.tcp.payload: print(f"Found flag in packet: {packet}") except: pass ``` 这段代码使用`pyshark`库来读取PCAP文件,并检查每个TCP数据包的有效载荷是否包含`flag`关键字。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值