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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/286729.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用ChatGPT方式编程!GitHub Copilot Chat全面开放使用

全球著名开源分享平台GitHub在官网宣布,经过几个月多轮测试的GitHub Copilot Chat,全面开放使用,一个用ChatGPT方式写代码的时代来啦! 据悉,Copilot Chat是基于OpenAI的GPT-4模型,再结合其海量、优质的代码…

GitHub Copilot 最佳免费平替:阿里通义灵码

之前分享了不少关于 GitHub Copilot 的文章,不少粉丝都评论让我试试阿里的通义灵码,这让我对通义灵码有了不少的兴趣。 今天,阿七就带大家了解一下阿里的通义灵码,我们按照之前 GitHub Copilot 的顺序分享通义灵码在相同场景下的…

【Linux 内核源码分析】GPIO子系统软件框架

Linux内核的GPIO子系统是用于管理和控制通用输入输出(GPIO)引脚的软件框架。它提供了一套统一的接口和机制,使开发者能够方便地对GPIO进行配置、读写和中断处理。 主要组件: GPIO框架:提供了一套API和数据结构&#x…

【深度学习-基础学习】Self-Attention 自注意力机制 笔记

本篇文章学习总结 李宏毅 2021 Spring 课程中关于 Self-Attention 自注意力 机制相关的内容。课程链接以及PPT:李宏毅Spring2021ML 关于 Self-Attention 机制想要解决的问题 通常来说, 我们的模型的输入会是一个vector,然后输出可能是 一个数…

python图形界面设计工具,python的图形界面gui编程

大家好,小编为大家解答python编写图形化界面的工具的问题。很多人还不知道python图形界面设计工具,现在让我们一起来看看吧! 1.根窗体 (1)创建根窗体对象 ①tkinter.Tk():创建一个根窗体对象。使用后会立即显示窗口&am…

基于 vite 创建 Vue3 项目

1、基于 vue-cli 创建 ## 查看vue/cli版本,确保vue/cli版本在4.5.0以上 vue --version## 安装或者升级你的vue/cli npm install -g vue/cli## 执行创建命令 vue create vue_test## 随后选择3.x ## Choose a version of Vue.js that you want to start the proje…

通过IP地址防范钓鱼网站诈骗的有效措施

随着互联网的普及,钓鱼网站诈骗成为一种广泛存在的网络犯罪行为。通过冒充合法网站,攻击者试图窃取用户的敏感信息。本文将探讨如何通过IP地址防范钓鱼网站诈骗,提供一系列有效的措施,以加强网络安全,保护用户免受诈骗…

审计报告翻译服务,如何确保翻译质量?

近年来,随着跨国经济活动的增多,越来越多的企业需要进行跨国审计,而审计报告的翻译就变得尤为重要。那么,审计报告翻译服务,如何确保翻译质量?  据了解,审计报告翻译是全面揭示被审计单位实质情…

【Jenkins】centos服务器部署jenkins2.426

Jenkins部署 版本选择说明 目前项目上用的版本是比较旧的,现在用不了,插件版本问题比较恶心。试过2.346,插件问题没解决, 单独找(*.hpi)插件匹配的版本太麻烦了。 前置环境部署 git 略 JDK11 该jenk…

企业招聘信息发布平台

吉鹿力招聘网是中国有名的专业招聘网站,拥有超过1500万招聘信息,涵盖了全国各地的企业招聘信息,是求职者获取新招聘信息的良好渠道。百度搜索吉鹿力招聘网就能下载并投递简历,开启求职之旅。 吉鹿力招聘网企业注册流程 首先打开…

c语言:用指针输入两个数组|练习题

一、题目 利用指针&#xff0c;输入两个数组 如图&#xff1a; 二、代码截图【带注释】 三、源代码【带注释】 #include <stdio.h> int main() { int a[50]; int b[50]; int *paa,*pbb; //输入第一组数组 printf("请输入第一组5个数字&#xff1a;…

C++ 二进制图片的读取和blob插入mysql_stmt_init—新年第一课

关于二进制图片的读取和BLOB插入一共包含五步 第一步&#xff1a;初始化 MYSQL_STMT* stmt mysql_stmt_init(&mysql); 第二步&#xff1a;预处理sql语句 mysql_stmt_prepare(stmt,sql,sqllen); 第三步&#xff1a;绑定字段 mysql_stmt_bind_param(stmt,bind); 第四…

JVM虚拟机:各种JVM报错总结

错误 java.lang.StackOverflowError java.lang.OutOfMemoryError:java heap space java.lang.OutOfMemoryError:GC overhead limit exceeded java.lang.OutOfMemoryError:Direct buffer memory java.lang.OutOfMemoryError:unable to create new native thread java.lang.OutOf…

WPF容器的背景对鼠标事件的影响

背景&#xff1a;在实现鼠标拖动窗口的过程中发现对父容器设置了鼠标拖动窗口的事件MouseLeftButtonDown private void DragWindow(object sender, MouseButtonEventArgs e) {if (e.LeftButton MouseButtonState.Pressed)DragMove(); } 问题&#xff1a;非常困惑的是&#x…

python慕课版课后题答案,python慕课作业答案

这篇文章主要介绍了中国大学慕课python测验答案&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 Flag 8月29日前学习完MOOC_Python课程&#xff0c;以下各测试题均来自于Python…

Rockchip平台Android应用预安装功能(基于Android13)

Rockchip平台Android应用预安装功能(基于Android13) 1. 预安装应用类型 Android上的应用预安装功能&#xff0c;主要是指配置产品时&#xff0c;根据厂商要求&#xff0c;将事先准备好的第三方应用预置进Android系统。预安装分为以下几种类型&#xff1a; 安装不可卸载应用安…

Axure医疗-住院板块,住院患者原型预览,新增医护人员原型预览,新增病房原型预览,选择床位原型预览,主治医生原型预览,主治医生医嘱原型预览

目录 一.医疗项目原型图-----住院板块 1.1 住院板块原型预览 1.2 新增住院患者原型预览 1.3 新增医护人员原型预览 1.4 新增病房原型预览 1.5 选择床位原型预览 1.6 主治医生原型预览 1.7 主治医生医嘱原型预览 1.8 主治医生查看患者报告原型预览 1.9 护士原型预…

008、所有权

所有权可以说是Rust中最为独特的一个功能了。正是所有权概念和相关工具的引入&#xff0c;Rust才能够在没有垃圾回收机制的前提下保障内存安全。 因此&#xff0c;正确地了解所有权概念及其在Rust中的实现方式&#xff0c;对于所有Rust开发者来讲都是十分重要的。在本文中&…

「Vue3面试系列」Vue3 所采用的 Composition Api 与 Vue2 使用的 Options Api 有什么不同?

文章目录 开始之前正文一、Options Api二、Composition Api三、对比逻辑组织Options APICompostion API 逻辑复用 小结 开始之前 Composition API 可以说是Vue3的最大特点&#xff0c;那么为什么要推出Composition Api&#xff0c;解决了什么问题&#xff1f; 通常使用Vue2开…

Model::unguard()的作用

这是在生成假数据时碰见的&#xff0c;浅查了一下 Model::unguard() 是 Laravel 框架中的一个方法&#xff0c;它的作用是取消对 Eloquent 模型的属性赋值的安全性保护。 在默认情况下&#xff0c;Laravel 的 Eloquent 模型会对属性赋值做一些安全性检查&#xff0c;例如防止…
最新文章