使用Wireshark进行网络流量分析

目录

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

相关推荐
归去_来兮7 小时前
拉格朗日插值算法原理及简单示例
算法·数据分析·拉格朗日插值
用户962377954481 天前
VulnHub DC-3 靶机渗透测试笔记
安全
叶落阁主2 天前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
NineData3 天前
NineData智能数据管理平台新功能发布|2026年1-2月
数据库·sql·数据分析
用户962377954484 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机5 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机5 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954485 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star5 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954485 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全