文章目录

介绍
Wireshark(前身是Ethereal)是一个网络封包分析软件,目前是全球使用最广泛的开源抓包软件,别名小鲨鱼或者鲨鱼鳍。
网络封包分析软件的功能是截取网卡进出的网络封包,并尽可能显示出最为详细的网络封包资料,它能够检测并解析各种协议,包括以太网、WIFI、TCP/IP和HTTP协议等等。
Wireshark使用LibPCAP、WinPCAP(现在普遍使用的是Npcap)作为驱动程序,他们提供了通用的抓包接口,直接与网卡进行数据报文交换,WinPCAP本身就是抓包分析工具,Wireshark通过对他进行整合加工丰富出来的产物,所以安装Wireshark的时候会提示我们安装WinPCAP。
捕获数据包的原理
Wireshark 通过以下原理捕获和分析数据包:
-
数据链路层:Wireshark 在网络接口卡(NIC)上使用
libpcap
库进行数据捕获。它会直接访问网络接口卡的硬件,捕获从该接口传输的数据包,包括以太网帧、Wi-Fi 数据帧等。 -
BPF 过滤器:在捕获数据包时,Wireshark 使用 Berkeley Packet Filter (BPF) 来过滤数据包,确保只捕获满足特定条件的数据包,减小捕获数据的负担。
-
解析协议:Wireshark 会对捕获到的数据包进行协议解析,识别数据包中的不同协议层(如以太网、IP、TCP、HTTP等),并将这些信息以易读的格式显示出来。
-
解码和显示:Wireshark 将每个数据包的详细信息(如头部、有效负载等)以分层的方式展示,用户可以查看每个协议字段的详细内容。
下载地址
-
操作系统是win11,安装的wireshark我们下载最新的安装
-
下载地址:https://www.wireshark.org/download.html
-
学习网址:https://www.chappell-university.com/books
-
WIKI:https://wiki.wireshark.org/Home
-
Wireshark 基本使用方式
启动 Wireshark
- 启动 Wireshark 后,它会显示一个可用网络接口列表(如有线网卡、无线网卡等)。
- 选择你要捕获数据的网络接口。通常选择与目标流量相关的接口。
捕获数据包
- 选择网络接口并点击“开始捕获”按钮(绿色的鲨鱼鳍)。
- Wireshark 将实时捕获通过所选网络接口传输的数据包,并以列表的形式显示。
停止捕获
- 捕获过程中,可以点击红色的停止按钮停止捕获。Wireshark 会保存当前捕获的数据包。
网卡选择
查看本地网卡
_
打开Wireshark 选择网卡
我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接免费领取~
基础操作
wireshark在功能界面帮我们提供了三个操作栏:
_
- 菜单栏:用于调试、配置
- 工具栏:常用功能的快捷方式
- 过滤栏:指定过滤条件,过滤数据包,过滤器有两种:抓包过滤器和展示过滤器
界面介绍
1号窗口:显示所有进出数据包,也叫做数据包列表
time: 数据包进出的当时时间
Source: 源ip地址
Destination: 目标ip地址
Protocol:协议length:数据包长度
info: 数据包的一个简要描述,不能看到具体数据
对列可以进行增加、修改、删除、隐藏等操作,但是默认的这几列就够用
2号窗口:数据包详情,数据包的各层协议的详细数据
1号窗口每点击一个数据包,那么2号和3号窗口就显示这个数据包的详情信息。
3号窗口:
数据包对应的16进制表示和ascii类型数据显示,随着2号窗口点击不同协议部分
3号窗口对应数据部分会高亮显示。
Wireshark 捕获过滤器
捕获过滤器允许你在捕获数据包时,限制捕获的流量类型。Wireshark 使用 BPF (Berkeley Packet Filter) 语法来设定捕获过滤器。
示例
-
捕获特定 IP 地址的数据包**
host 192.168.1.1
:只捕获与 IP 地址192.168.1.1
相关的包。
-
捕获特定端口的流量
port 80
:只捕获端口为 80(HTTP)的流量。src port 443
:捕获源端口为 443(HTTPS)的流量。dst port 443
:捕获目标端口为 443(HTTPS)的流量。
-
捕获特定协议的数据包
icmp
:只捕获 ICMP 协议的数据包(如 Ping 请求)。tcp
:只捕获 TCP 协议的数据包。udp
:只捕获 UDP 协议的数据包。
-
捕获某个网络范围的流量
net 192.168.1.0/24
:捕获来自192.168.1.0
网络段的数据包。
-
组合条件
src host 192.168.1.1 and dst port 443
:捕获源地址是192.168.1.1
,目标端口为 443 的数据包。
Wireshark 显示过滤器
捕获的数据包在 Wireshark 中以列表形式显示,显示过滤器用于帮助你在捕获的数据中筛选出感兴趣的包。显示过滤器基于过滤语言,它提供了更多的灵活性来筛选数据包。
显示过滤器语法
-
按协议过滤
http
:过滤出 HTTP 协议的数据包。tcp
:过滤出 TCP 协议的数据包。udp
:过滤出 UDP 协议的数据包。
-
按 IP 地址过滤
ip.addr == 192.168.1.1
:显示所有源或目标地址为192.168.1.1
的数据包。ip.src == 192.168.1.1
:显示源地址为192.168.1.1
的数据包。ip.dst == 192.168.1.1
:显示目标地址为192.168.1.1
的数据包。
-
按端口过滤
tcp.port == 80
:显示所有与端口 80(HTTP)相关的 TCP 数据包。udp.port == 53
:显示所有与端口 53(DNS)相关的 UDP 数据包。
-
按协议字段过滤
tcp.flags.syn == 1
:过滤出所有 TCP 的 SYN 包(用于建立连接的握手)。http.request.method == "GET"
:过滤出所有 HTTP GET 请求。
-
组合过滤器
ip.src == 192.168.1.1 and tcp.port == 443
:显示源地址为192.168.1.1
,端口为 443 的 TCP 数据包。http and ip.addr == 192.168.1.1
:显示协议为 HTTP 且 IP 地址为192.168.1.1
的数据包。
-
组合过滤器
对源地址及目的地址过滤
ip.src == ip地址
ip.dst == ip地址
对源地址或者目的地址过滤
ip.addr == ip地址
端口过滤
对源端口及目的端口过滤 tcp.srcport == 80 tcp.dstport == 80
对源地址或者目的端口过滤 tcp.port == 80
大于某个端口的过滤 tcp.port >= 60000
协议过滤 协议过滤 直接在filter框中输入协议名,如过滤HTTP协议,则http
http协议相关过滤 过滤出请求地址中包含“user”的请求
http.request.uri contains User
过滤域名 http.host == www.baidu.com
模糊过滤域名 http.host contains baidu
过滤请求的content_type类型 http.content_type == 'text/html'
过滤http响应状态码 http.response.code == 200
过滤含有指定cookie的http数据包 http.cookie contains userid
捕获模式
混杂模式
- Wireshark 的 混杂模式 (Promiscuous Mode) 是一种网络接口工作模式,在这种模式下,网卡不仅接收发给自己的数据包,还会接收网络上其他设备发送的所有数据包。
- 默认情况下,网卡只会接收发往自身地址的数据包
- 而在混杂模式下,网卡会接收通过它所在网络的所有数据包,不论这些数据包的目的地是否是网卡本身
普通模式:
-
网卡只接收发送给本机的包(包括广播包)传递给上层程序,其它包一律丢弃。
-
开启混杂模式,菜单栏,捕获–>选项
追踪流
- Wireshark 的 追踪流(Follow Stream) 功能是一个强大的工具,用于将分散在网络中的数据包按特定协议流(如 TCP、HTTP、TLS 等)重组,还原完整的通信会话内容。
1. 如何启动追踪流?
-
选择目标数据包:在数据包列表中找到属于某个会话的数据包(如 HTTP 请求、TCP 握手包)。
-
右键菜单:右键点击该数据包,选择 追踪流(Follow Stream) → 选择协议类型(如 TCP、HTTP、TLS)。
-
查看流内容:弹出一个新窗口,显示该流的完整通信内容(如 HTTP 请求和响应、TCP 传输的原始数据)。
2. 流窗口界面解析
-
原始数据:以 ASCII/十六进制格式显示通信内容(如 HTTP 文本、加密的 TLS 数据)。
-
方向标识:用不同颜色区分客户端与服务端的通信(如红色表示客户端→服务端,蓝色表示反向)。
-
过滤选项:
-
仅显示文本:勾选后隐藏十六进制数据,方便阅读协议内容(如 HTTP 报文)。
-
导出流:将整个会话保存为原始文件(如导出 HTTP 传输的图片或文件)。
-
3. 支持的协议类型
-
TCP 流:重组基于 TCP 的协议(如 HTTP、FTP、SMTP)。
-
UDP 流:追踪无连接的 UDP 流(如 DNS、QUIC)。
-
TLS 流:若密钥已配置,可解密 TLS 流量(需导入 SSL/TLS 会话密钥)。
适用场景
1. 排查应用层协议问题
-
HTTP 请求分析:查看完整的 HTTP 请求头和响应体,定位接口错误或超时。
-
文件传输问题:检查 FTP 或 SMB 协议的文件传输是否完整。
-
API 调试:分析 RESTful API 或 SOAP 请求的交互内容。
2. 安全分析
-
敏感信息泄露:检查 HTTP 明文传输的密码、Cookie。
-
恶意流量检测:分析可疑 TCP 连接中的指令(如 C2 服务器通信)。
3. 网络性能优化
-
TCP 重传分析:通过流内容观察是否有重复的序列号,定位丢包问题。
-
连接中断排查:检查 TCP 流的 FIN/RST 标记,确认连接是否正常关闭。
常见协议包:
ARP协议
ICMP协议
TCP协议
UDP协议
DNS协议
HTTP协议
实际案例分析:
分析 HTTP 登录过程
-
捕获流量:在用户登录网站时启动 Wireshark 捕获。
-
过滤 HTTP 请求:在显示过滤器中输入
http contains "login"
,找到登录请求的数据包。 -
追踪 TCP 流:
-
右键该数据包 → 追踪流 → TCP 流。
-
查看流内容,确认是否明文传输用户名和密码(如
username=admin&password=123456
)。
-
-
导出敏感数据:若发现明文密码,可导出流内容作为安全审计证据。
诊断 TCP 连接超时
-
捕获问题时段流量:当用户遇到网页加载缓慢时,捕获数据包。
-
筛选 TCP 流:
-
在数据包列表中找到目标 IP 的 TCP 握手包(SYN 包)。
-
右键 → 追踪流 → TCP 流。
-
-
分析流内容:
-
观察是否有重复的序列号(TCP 重传),表明网络丢包。
-
检查窗口大小(Window Size)是否过小,导致传输效率低。
-
解密 HTTPS 流量(TLS 流)
-
配置 TLS 密钥:
- 在 Wireshark 的 编辑 → 首选项 → Protocols → TLS 中导入服务器的私钥。
-
捕获 HTTPS 流量:访问一个 HTTPS 网站(如
https://example.com
)。 -
追踪 TLS 流:
-
右键任意 TLS 数据包 → 追踪流 → TLS 流。
-
若密钥正确,可看到解密后的 HTTP 明文内容(如 HTML 页面)。
-
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取
👉1.成长路线图&学习规划👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
👉2.网安入门到进阶视频教程👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程扫描领取哈)
👉3.SRC&黑客文档👈
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦! (全套教程扫描领取哈)
👉4.护网行动资料👈
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
👉5.黑客必读书单👈
👉6.网络安全岗面试题合集👈
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~