CTF-流量分析总结(更新中)

原文地址: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


参考:
CTF流量分析之wireshark使用
CTF流量分析之题型深度解析
CTF| 吃个鸡,一起破流量分析题吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章