使用Wireshark进行网络流量分析

发布时间:2024年01月02日

目录

Wireshark是什么?

数据包筛选

筛选指定ip

使用逻辑运算符筛选

?HTTP模式过滤

端口筛选

协议筛选

包长度筛选

数据包搜索

数据流分析

数据包导出


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中的几简答流量分析的题目,实际应用一下下(^▽^)!

文章来源:https://blog.csdn.net/qq_68163788/article/details/135336355
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。