Wireshark抓包体验

2023-11-01

1、嗅探器原理

嗅探技术是网络安全攻防技术中很重要的一种,通过它可以获取网络中的大量信息。与主动扫描相比,嗅探更难以被察觉,能够对网络中的活动进行实时监控。

网络嗅探器实际上就是网络中的窃听器,其用途就是捕获分析网络中的数据包,帮助网络管理员发现入侵、分析网络问题等等,它是能够进行嗅探的软件或硬件设备。通过嗅探得到二进制的数据包后,对这些数据包进行解析和理解,获得协议字段与传输的数据的过程就是网络协议分析。所以说,网络嗅探与网络协议分析联系紧密。

对于攻击者来说,通过网络嗅探,进行协议分析,能够窃取内部机密,搜集信息。而对于管理员来说,网络嗅探可以实现网络流量情况的监听,定位网络故障,并且能够为网络入侵检测提供底层的数据来源。

网络嗅探的关键在于以太网的通信机制和网卡的工作模式。迄今为止,以太网仍然是最普遍的组网方法之一,而以太网的共享特性决定了嗅探能够成功。由于以太网是基于广播方式传送数据,因此网络中所有的数据信号都会被传送到每一个主机节点,这样每一台机器实际上都能接受到数据帧。一个网络接口使用网卡的接收模式有以下几种:

  • 广播模式(Broadcast Mode):该模式下的网卡能够接收网络中所有类型为广播报文的数据帧。
  • 组播模式(Multicast Mode):该模式下的网卡能够接受特定的组播数据。
  • 直接模式(Unicast Mode):该模式下的网卡在工作时只接收目的地址匹配本机MAC地址的数据帧。
  • 混杂模式(Promiscuous Mode):在这种模式下,网卡对数据帧中的目的MAC地址不加任何检查,全部接收。

因此只要将网卡的工作模式设置为“混杂模式”,网卡将会接受所有传递给他的数据包,从而实现嗅探。嗅探得到结果后,再进行网络协议分析,根据网络协议分析的粒度可以分为三种:针对原始数据包进行分析,层次最低、最细粒度;对网络流(会话)进行分析,通过5元组进行流(会话);以及网络流高层统计。针对网络报文分析的工具,常用的有集成工具WireShark,网络流重组工具Nstreams、Snort,进行高层统计和摘要分析的Netflow、RRDTools等等。

2、Wireshark简介

作为一款高效免费的抓包工具,wireshark可以截取各种网络封包,显示网络封包的详细信息,其最大的优势就是免费、开源以及多平台支持,如今其已是全球最广泛的网络数据包分析软件之一。

Wireshark不可以做什么?

Wireshark只能查看封包,而不能修改封包的内容,或者发送封包。且对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。

3、Wireshark使用

Wireshark安装

前往Wireshark官网进行下载,下载完成后一路next安装即可。

(1)打开wireshark,主界面如下图所示。

image-20210304001621502

(2)利用wireshark开始抓包。选择菜单栏上捕获——>选项,只勾选WLAN的混杂模式,点击开始(也可以直接双击上图的WLAN开始)。

image-20210304001701812

(3)查看抓包情况(此时wireshark正不停地捕获WLAN下传输的数据包)

image-20210304001722007

(4)数据包详细信息

​ 各行信息分别为

  • Frame:物理层的数据帧概况
  • Ethernet II: 数据链路层以太网帧头部信息
  • Internet Protocol Version 4: 网络层IP包头部信息
  • Transmission Control Protocol:传输层的数据段头部信息
  • Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议

wireshark与对应的OSI七层模型

image-20210304001821297

wireshark捕获到的TCP包中的每个字段内容

image-20210304001914848

(5)wireshark过滤器

直接使用WireShark捕获包将会得到大量的冗余信息,在几千甚至几万条记录中很难找到自己需要的部分,因而,使用过滤器十分重要。使用WireShark的过滤器有两种方法:

第一种是在Capture Filter中按照libpcap过滤器语言设置好过滤条件。此外,我们也可以捕获后过滤。先捕获所有的数据包,然后通过设定显示过滤器,只让Wireshark显示我们想要观察的那些类型的数据包。我们使用WireShark过滤器时,输入规则若是正确的,则过滤器输入框的背景为绿色,否则,背景为红色。

wireshark过滤器表达式的规则:

  • 协议过滤

直接在抓包过滤框中直接输入协议名即可。tcp,只显示TCP协议的数据包列表;http,只查看HTTP协议的数据包列表;icmp,只显示ICMP协议的数据包列表

  • IP过滤

ip.src == 192.168.1.102,显示源地址为192.168.1.102的数据包

ip.dst == 192.168.1.102,显示目标地址为192.168.1.102的数据包

ip.addr == 192.168.1.102,显示源IP地址或目标IP地址为192.168.1.102的数据包

  • 端口过滤

tcp.port == 80,显示tcp协议的源主机或者目的主机端口为80的数据包

tcp.srcport == 80,显示TCP协议的源主机端口为80的数据包

tcp.dstport == 80,显示TCP协议的目的主机端口为80的数据包

  • Http模式过滤

http.request.method == GET, 只显示HTTP协议下GET请求的数据包

http.request.method == POST,只显示HTTP协议下POST请求的数据包

  • 逻辑运算符

过滤多个条件组合时,使用and/or。比如获取IP地址为192.168.1.104的ICMP数据包表达式为ip.addr == 192.168.1.104 and icmp

4、Wireshark分析TCP三次握手

TCP三次握手

image-20210304002058972

抓取TCP包

启动wireshark,打开浏览器输入www.baidu.com

终止抓包,在过滤栏输入http以过滤隐藏其他无关数据包;

右键选中,点击追踪流——>TCP流,

image-20210304002136211

可以看到这里截获了三个TCP握手数据包,第四个是HTTP数据包,说明HTTP的确是使用TCP建立连接的。

第一次握手,客户端向服务器发送了一个TCP连接请求,标志位SYN = 1,客户端序号Seq(Sequence number)为x = 0,表示客户端请求建立连接

image-20210304002219815

第二次握手,服务器向客户端发回一个确认包,标志位SYN = 1,ACK = 1。服务器序号seq(y)=0,将确认序号ack(Acknowledgement Number)设置为客户端序号seq(x)加1,即0+1=1。

image-20210304002240963

第三次握手,客户端收到服务器发来的包后检查确认序号是否正确,即第一次发送的序号seq是否加1(X+1= 0+1=1)以及标志位ACK是否为1。若正确,客户端会再向服务器端发送一个数据包,标志位ACK=1,确认序号=Y+1=0+1=1,并且把服务器发来的序号seq加1发送给对方,发送序号seq为X+1= 0+1=1。服务器收到后确认序号值与ACK=1。至此,一次TCP连接建立,可以传送数据了。

image-20210304002304859

5、网络嗅探的防范

网络嗅探对于安全防护一般的网络来说,操作简单但同时威胁巨大,很多攻击者使用嗅探器进行网络入侵的渗透。故防范网络嗅探显得尤为重要,可以采用以下防御措施:

  • 安全的拓扑结构。嗅探器只能在当前网络段上进行数据捕获。这就意味着,将网络分段工作进行得越细,嗅探器能够收集的信息就越少。但是,除非是一个ISP(分层服务提供商),或者资源相对不受限制,否则这样的解决方案需要很大的代价。
  • 会话加密。传统的网络服务程序,HTTP、FTP、SMTP和Telnet等在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,嗅探器非常容易就可以截获这些信息。使用SSH(secure shell)等协议可以使得信息安全地传输。通过使用SSH,可以把所有传输的数据进行加密,这样"中间服务器"这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。

6、参考资料

[1] Wireshark抓包使用指南

[2] Wireshark使用入门

[3] Wireshark基本介绍和学习TCP三次握手

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Wireshark抓包体验 的相关文章

  • 人工智能技术与现代应用

    人工智能的定义 人工智能 ArtificialIntelligence AI 学科从1956年正式提出 目前已取得长足的发展 成为一门广泛的交叉和前沿科学 总的说来 人工智能的目的就是让计算机这台机器能够像人一样思考 如果希望做出一台能够思

随机推荐

  • Vue 学习笔记

    Vue js 库 把一些常用的功能封装成一个个函数或者对象 并放到一个JS文件里 目的是为简化原生JS的操作 他是一个封装好的框架 框架 一套架构 提供一套整体解决方案 他能完全搞定整个项目开发 并且很轻松就能解决复杂的问题 vue的特征
  • 华硕天选笔记本电脑能上网但浏览器打不开

    系列文章目录 文章目录 系列文章目录 前言 二 第二种方法 1 打开设置 2 选择更改适配器选项 三 第三种方法 重置网络 1 设置 2 重置网络 前言 华硕天选笔记本电脑能上网但浏览器打不开 网上的方法 1 点击 开始 选择 控制面板 2
  • springboot配置多个数据源(两种方式)

    在我们的实际业务中可能会遇到 在一个项目里面读取多个数据库的数据来进行展示 spring对同时配置多个数据源是支持的 本文中将展示两种方法来实现这个功能 springboot mybatis 第一种方式 在配置文件中配置多个数据源 然后通过
  • 一张图看懂小程序全生态!目前总结最全的,没有之一

    本文为微信公众号 造个程序 ID zgcx007 原创 授权CSDN首发 版权归作者所有 责编 陈秋歌 关注微信开发等领域 寻求报道或者投稿请发邮件至chenqg csdn net 2017年1月9日 小程序发布在万众瞩目中发布 不仅占据了
  • k8s-进阶-工作负载

    一 控制器 Pod 容器组 是 Kubernetes 中最小的调度单元 您可以通过 kubectl 直接创建一个 Pod Pod 本身并不能自愈 self healing 如果一个 Pod 所在的 Node 节点 出现故障 或者调度程序自身
  • 《MFC添加语音功能》

    MFC一般提示都是用消息对话框来处理 同时我们也可以加上语音播报功能 语音播报我们可以调用微软自带的Microsoft Speech API SAPI 5 4 它里面有语音识别 还有有一个Text to Speech 引擎 可以将文本转化为
  • 目标检测——YOLOv3、YOLOv4、YOLOv5、YOLOv7正负样本匹配、YOLO3损失函数理解

    系列文章目录 目标检测 map概念 IoU汇总IoU GIoU DIoU CIoU SIoU EIoU Wiou Focal alpha 目标检测 YOLOv3 YOLOv4 YOLOv5 YOLOv7正负样本匹配 YOLO3损失函数理解
  • linux redhat 离线安装 mysql 8.0.20

    官方文档 https dev mysql com doc refman 8 0 en linux installation rpm html 以下操作都是用 root 用户操作 另配置文件是使用mysqld initialize 生成的 e
  • kafka消费主题和消费组总结

    1 查询kafka主题列表的命令 切换到kafka的安装目录bin目录下 执行如下代码 kafka topics sh list zookeeper zookeeprerIp zookeeperPort 比如 kafka topics sh
  • WSL 的安装、报错解决、使用技巧

    需要Windows10或以上系统版本 如果你的操作系统是Windows 10 版本 2004 及更高版本 内部版本 19041 及更高版本 或 Windows 11 并且你从来没有安装过WSL 你可以使用命令行简单的安装安装 WSL 使用管
  • linux Oops和Panic关系

    常在河边走 哪能不湿鞋 用Linux 总有死机的时候 如果运气好 会看到一些所谓 Oops 信息 在屏幕上或系统日志中 比如 Unable to handle kernel paging request at virtual address
  • 印象笔记、为知笔记、有道云笔记使用比较

    特点比较 印象笔记 为知笔记 有道云笔记 Bear Typora 特点比较 功能 印象笔记 为知笔记 有道笔记 费用 免费 有会员 60 元 年 免费 有会员 手机 PC 云同步 微信保存 网页剪藏 笔记内容加密 共享笔记本 快捷键 批量导
  • 完整LUT解释说明

    什么是LUT 我们业内在LUT的应用方面有着许多混乱的认识 很多人会把LUT看成是一种 黑魔法 然而实际上它们是再正常不过的东西 因此为了帮助大家了解LUT的定义和工作原理 本文将会尽可能详细地为大家讲述LUT以及它的应用 包括用于校准的技
  • 简介JSONObject的各种用法

    1 java对象转化成String String s JSONObject toJSONString javaObject class 2 java对象转化成Object Object str JSONObject toJSON javaO
  • SW-3配置文件

    CS6200 28X EI config hos SW 3 SW 3 config vlan 10 SW 3 config vlan10 name FB YX SW 3 config vlan10 vlan 20 SW 3 config v
  • 树莓派Raspbian Buster/Debian 10 安装ROS

    目录 一些补充 安装ROS 初始化rosdep 测试 平台 树莓派4B 系统版本 2020 05 27 raspios buster arm64 img 一些补充 系统安装参考 树莓派学习笔记 一 烧录系统 无屏幕 配置Wifi和SSH服务
  • QT 元对象解析 及和其他语言区别

    说Qt信号与槽是一个很好机制 不如说Qt的元对象系统很强大 这也是大家讲Qt就必须将信号与槽 讲信号与槽就要讲Qt的元对象系统 当然初学者知道怎么用就OK啦 当然随着你写的代码越多 接触的平台越多的时候 你就会好奇Qt是如何把两个 多个 任
  • Java程序——检索文件(含内容)

    项目说明 给定一个指定目录和关键字 扫描其中的文件名和文件内容 找到包含关键字的文件 完整代码 import java io File import java io FileInputStream import java io IOExce
  • 利用find命令进行批量操作

    前些天 我要把Linux上的几千个txt文档进行转码 需要用到iconv命令 可是我总不能 一个一个的去敲 文档转码命令 iconv f GBK t UTF 8 file1 o file2 将file1从GBK转为UTF 8 并输出为fil
  • Wireshark抓包体验

    1 嗅探器原理 嗅探技术是网络安全攻防技术中很重要的一种 通过它可以获取网络中的大量信息 与主动扫描相比 嗅探更难以被察觉 能够对网络中的活动进行实时监控 网络嗅探器实际上就是网络中的窃听器 其用途就是捕获分析网络中的数据包 帮助网络管理员