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

相关推荐
newxtc10 分钟前
【国内中间件厂商排名及四大中间件对比分析】
安全·web安全·网络安全·中间件·行为验证·国产中间件
方方怪18 分钟前
与IP网络规划相关的知识点
服务器·网络·tcp/ip
测试杂货铺1 小时前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
weixin_442643421 小时前
推荐FileLink数据跨网摆渡系统 — 安全、高效的数据传输解决方案
服务器·网络·安全·filelink数据摆渡系统
阑梦清川1 小时前
JavaEE初阶---网络原理(五)---HTTP协议
网络·http·java-ee
星尘安全2 小时前
安全工程师入侵加密货币交易所获罪
安全·区块链·漏洞·加密货币
FeelTouch Labs2 小时前
Netty实现WebSocket Server是否开启压缩深度分析
网络·websocket·网络协议
小码哥说测试2 小时前
接口测试用例设计的关键步骤与技巧解析!
自动化测试·测试工具·jmeter·职场和发展·测试用例·接口测试·postman
newxtc4 小时前
【支付行业-支付系统架构及总结】
安全·支付宝·第三方支付·风控系统·财付通
newxtc4 小时前
【旷视科技-注册/登录安全分析报告】
人工智能·科技·安全·ddddocr