目录
Wireshark是什么?
通过Wireshark,我们可以捕获和分析网络数据包,查看网络中的数据传输情况,识别网络中的问题和安全隐患,并进行网络性能优化。
Wireshark支持多种协议的分析,包括TCP、UDP、IP、ICMP等,可以帮助我们深入了解网络通信过程中的细节。
它还提供了强大的过滤功能,可以根据需要筛选出特定的数据包进行分析,帮助我们更快地定位问题所在。
除了基本的数据包捕获和分析功能外,Wireshark还提供了统计信息和图形化分析工具,可以帮助我们更直观地了解网络流量的情况。
它还支持多平台,可以在Windows、Mac和Linux等操作系统上运行。
总的来说,Wireshark是一款功能强大、易于使用的网络流量包分析工具,可以帮助网络管理员、安全专家和开发人员更好地理解和监控网络流量,保障网络的安全和稳定运行。
如果电脑上还没有这款强大的软件可以自行到官网下载:Wireshark · Go Deep
那么我下面就来简单演示一下使用Wireshark来分析网络流量包
数据包筛选
筛选指定ip
流量过滤中可以使用过滤可疑IP或排除一些无用信息,减少无关流量包的干扰,更直接定位目标。
筛选特定IP,过滤出所有与192.168.43.21相关的流量
语法:ip.addr==192.168.43.21
可以看到通过这种方法筛选出的ip都是源端口或者目标端口是192.168.43.21的
那如果现在想要筛选出源端口是192.168.43.21的流量包呢,可以使用下面的形式
语法:ip.src == 192.168.43.21
可以看到现在筛选出的流量包都是以192.168.43.21为源ip的,那么如果想要筛选出目标端口为指定ip地址的也就和上面的形式很像的将src修改为dst即可
使用逻辑运算符筛选
在实际应用中我们可以会同时需要筛选很多ip,并且对具体的情况有一些要求,则可以使用逻辑运算符来配合使用,增加筛选的灵活性
Wireshark可以使用一下几种逻辑运算符:
&& || !=
相信学过其他程序语言的童鞋都知道这三个运算符的含义吧,但是这里还是介绍一下&&就是需要同时满足左右两边的表达式时才为真,而||则是满足作用两边任意一个表达式即为真,!=的意思就是原表达式为真则变假,为假则为真,即""非""
下面就举三个小例子来演示一下这三种运算符
(1)要求筛选出原ip地址为192.168.43.21且目标地址为 20.210.85.71的流量包
(2)要求筛选出原ip地址为192.168.43.21或源地址为 20.210.85.71的流量包
(3)要求筛选出原ip地址不为192.168.43.21的流量包
HTTP模式过滤
在web攻击流量分析中,http显得尤为重要,根据攻击特点过滤http流量能更准确定位攻击;如常见上传webshell使用POST请求、指定URI可疑发现一些上传路径或者后台等,另也可以从包含的一些关键特征判断使用的工具、木马、脚本等。
注:下面的所有包都是使用192.168.159.1访问192.168.159.202服务器的流量包
(1)http请求方式为GET语法:
http.request.method=="GET"
我们使用本地浏览器访问192.168.159.202?id=1来模拟一个GET访问****
(2)http请求方式为POST语法:
http.request.method=="POST"
我们使用本地Firefox浏览器中的Hackbar插件,来模拟POST访问
(3)请求的URI为/login.php语法:
http.request.uri=="/login.php"
模拟这个访问也很简单直接在浏览器中输入: http://192.168.159.202/login.php
(4)请求的http中包含sqlmap的语法:
http contains "sqlmap"
这里我就模拟恶意用户使用sqlmap来对目标192.168.202进行扫描
(5)请求方式为GET且请求中包含UA信息:
http.request.method=="GET" && http contain "User-Agent"
MAC地址 过滤
MAC地址就和ip地址一样是都是网络通信中使用的标识符,在Wireshark中筛选MAC地址与筛序ip地址的形式是差不多的
可以在cmd命令行中输入ipconfig/all来查看本机网卡所对应的mac地址
(1)查看目标MAC地址为00-50-56-C0-00-08的流量包
(2)查看源MAC地址为00-50-56-C0-00-08的流量包
端口筛选
可以通过指定筛选常见端口如445、1433、3306等可以定位相关特殊的服务。
(1)tcp.dstport == 80 筛选tcp协议的目标端口为80 的流量包
(2)tcp.srcport == 80 筛选tcp协议的源端口为80 的流量包
注:也可以将tcp该为udp就可以筛选使用udp传输的流量包
协议筛选
协议过滤可以根据相关服务使用的协议类型进行
tcp 筛选协议为tcp的流量包
udp 筛选协议为udp的流量包
arp/icmp/http/ftp/dns/ip 筛选协议为arp/icmp/http/ftp/dns/ip的流量包
这里就以icmp包为例:
我们使用本地192.168.159.1ping192.168.159.202来产生icmp流量包
包长度筛选
包长度、大小可以利用判断一些木马特征,扫描特征、ddos等
比如:
(1)udp.length ==35 筛选长度为35的udp流量包
(2)tcp.len >=20 筛选长度大于20的tcp流量包
(3)ip.len ==40 筛选长度为40的IP流量包
(4)frame.len ==80 筛选长度为80的整个流量包
数据包搜索
在wireshark界面按"Ctrl+F",可以进行关键字搜索:
可以分别基于十六进制值、字符串、正则表达式进行搜索
搜索栏的左边下拉,有分组列表、分组详情、分组字节流三个选项,分别对应wireshark界面的三个部分,搜索时选择不同的选项以指定搜索区域:
数据流分析
使用wireshark进行威胁流量发现时候,除了判断包特征,访问日志,证书等,数据量是较为直观发现异常行为的方式,我们常会查看一些HTTP流、TCP流和UDP流进行流量分析。
这里我们就简单的记录一个完整的登录过程的抓包过程:
(1)开启Wireshark的流量监控
(2)我们登录dvwa网站
访问网站->输入正确密码->登录->登录成功
(3)现在我们对整个过程的流量包进行分析
可以使用login.php来筛选是否有登录动作:
可以看到有登录的流量包
现在我们可以试着对该流量包进行追踪,查看更多信息
****根据追踪的信息可以看到是登录成功的
注:除了HTTP流,还可以追踪TCP流、UDP流、HTTPS流等,操作的方法是一样的
数据包导出
攻击流量中少不了恶意脚本,样本文件,这时能对样本提取是对威胁攻击的进一步分析十分重要。而使用wireshark就可以做到简单文件还原,当然如果你需要对批量文件还原,可能还需要一些自己研究的工具进行还原,下面演示一下wireshark怎么进行还原:
(1)文件-导出对象,这样可以选择导出的协议类型数据,选择http后会出现数据包所有的关于http协议的数据包;在所有http数据流中的文件,选中进行save进行
注:其他协议相关文件也一样。
(2)分组字节流还原
对于特定的字节流可以"右键-导出分组字节流"最后保存就ok了
到这里Wireshark的基本使用就演示完毕了,下一篇我们会使用Wireshark来分析CTF中的几简答流量分析的题目,实际应用一下下(^▽^)!