wireshark使用教程

工具介绍

Wireshark是Kali Linux中一款功能强大的可视化网络流量分析工具,支持跨平台(Linux、Windows、macOS),核心能力是"捕获网络数据包并以图形化界面解析协议细节",广泛应用于网络故障排查、协议分析、安全审计、渗透测试等场景。其本质是"图形化前端+底层捕获引擎(如libpcap)"的组合,既满足新手的可视化操作需求,也支持高级用户的自定义分析逻辑。

1. 核心特性

  • 全协议支持:原生支持超过2000种网络协议(如TCP、UDP、ICMP、ARP、DNS、HTTP、HTTPS、SMB、Kerberos等),且持续更新新增协议解析规则;
  • 灵活的捕获能力:支持多网卡实时捕获、离线PCAP文件分析、自定义捕获过滤规则(如按IP、端口、协议筛选),可设置捕获时长、数据包大小限制;
  • 图形化解析界面 :以"三层视图"展示数据包细节------数据包列表(Packet List)(概览所有捕获包)、数据包详情(Packet Details)(分层解析协议字段)、数据包原始数据(Packet Bytes)(十六进制/ASCII格式);
  • 强大的过滤功能:支持"捕获过滤"(捕获时筛选流量)和"显示过滤"(捕获后筛选结果),过滤语法简洁且功能丰富(如按协议、IP、端口、字段值过滤);
  • 流量分析工具集:内置流量统计(如协议分布、会话分析)、流量追踪(如TCP流追踪、HTTP流重组)、专家信息(自动标记异常流量)等功能,辅助快速定位问题;
  • 扩展性强:支持通过Lua脚本自定义协议解析、导出多种格式的分析报告(如CSV、HTML、PDML)、与其他工具(如tshark命令行、scapy)联动。

2. 典型应用场景

  • 网络故障排查:定位丢包、延迟、连接中断问题(如分析TCP重传、ICMP错误包);
  • 协议学习与分析:可视化理解协议交互流程(如HTTP请求-响应、TCP三次握手/四次挥手);
  • 安全审计:检测异常流量(如ARP欺骗、DNS劫持、端口扫描)、分析攻击行为(如SQL注入、XSS攻击的数据包特征);
  • 渗透测试辅助:捕获明文认证凭据(如HTTP Basic Auth、FTP密码)、分析加密流量的握手过程(如HTTPS TLS握手);
  • 应用调试:验证应用程序发送的网络请求是否符合协议规范(如API接口调用的HTTP头是否正确)。

3. 与其他工具的差异

相比tcpdump(命令行捕获,无可视化)、scapy(可编程但需手动解析),Wireshark的核心优势在于**"易用性+可视化"**------无需编写代码,通过图形界面即可完成从捕获到分析的全流程,适合新手快速上手;同时,其强大的过滤和统计功能,也能满足高级用户的复杂分析需求。

基础环境准备

Wireshark在Kali Linux中默认预装,重点完成权限配置和依赖验证,确保正常捕获流量:

  1. 确认安装状态

    通过应用菜单启动:应用 → Kali Linux → 信息收集 → wireshark

    或通过命令行启动:sudo wireshark(需root权限捕获流量);

    若未安装,执行命令:sudo apt update && sudo apt install -y wireshark

  2. 权限配置(关键)

    Wireshark捕获流量依赖libpcap库,默认需root权限。为避免每次启动都输入sudo,可将当前用户加入wireshark用户组:

    1. 添加wireshark用户组(若不存在):sudo groupadd wireshark

    2. 将当前用户加入组:sudo usermod -aG wireshark $USER

    3. 调整dumpcap(Wireshark底层捕获工具)的权限:sudo chgrp wireshark /usr/bin/dumpcap && sudo chmod 750 /usr/bin/dumpcap && sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

    4. 注销并重新登录,生效用户组配置。

  3. 依赖验证

    检查libpcap库是否安装(捕获流量必需):dpkg -l | grep libpcap

    若未安装,执行:sudo apt install -y libpcap-dev

  4. 支持的文件格式

    Wireshark可打开多种流量文件格式,包括:

    -- PCAP(默认格式,tcpdump、scapy捕获的文件);

    -- PCAPNG(增强格式,支持更多元数据,Wireshark默认保存格式);

    -- pcap.gz(压缩PCAP文件)、Ethereal(旧版格式)等。

核心使用教程(图形化界面)

Wireshark的使用流程分为"启动与捕获配置 → 流量捕获 → 结果过滤与分析 → 报告导出"四步,以下按流程详细说明:

1. 第一步:启动与捕获配置

启动Wireshark后,首先配置捕获参数,确保捕获到目标流量:

  1. 选择网络接口

    启动后进入"捕获接口"界面,列出当前系统的所有网络接口(如eth0(有线)、wlan0(无线)、lo(本地回环));

    -- 若需捕获局域网流量,选择连接局域网的接口(如eth0);

    -- 若需捕获本地应用流量(如浏览器请求),选择lo(本地回环);

    -- 接口名称旁的数字表示"实时数据包速率"(如100 p/s),可据此判断接口是否有流量。

  2. 设置捕获过滤规则(可选)

    点击接口旁的齿轮图标,打开"捕获选项"窗口,在"捕获过滤器"栏输入规则(仅捕获符合规则的流量,减少无关数据):

    常用捕获过滤规则示例:

    • tcp port 80:仅捕获TCP 80端口(HTTP)的流量;
    • udp port 53:仅捕获UDP 53端口(DNS)的流量;
    • host 192.168.1.100:仅捕获与目标IP(192.168.1.100)相关的流量;
    • net 192.168.1.0/24:仅捕获192.168.1.0/24网段的流量;
    • not arp:排除ARP协议的流量(减少广播包干扰)。

    提示:点击"捕获过滤器"旁的书签图标,可选择预设规则(如"HTTP""DNS""SSH"),无需手动输入。

  3. 其他捕获配置(可选)

    在"捕获选项"窗口中,还可设置:

    -- 捕获文件:指定将流量保存到本地文件(如/tmp/capture.pcapng),避免内存溢出;

    -- 数据包大小限制:仅捕获前N字节(如68字节,仅保留头部信息);

    -- 捕获停止条件:设置捕获时长(如10分钟)、数据包数量(如1000个)或文件大小(如100MB)。

  4. 启动捕获

    配置完成后,点击接口旁的开始按钮(蓝色鲨鱼鳍图标),或"捕获选项"窗口的开始按钮,进入捕获界面。

2. 第二步:流量捕获与实时观察

进入捕获界面后,Wireshark实时显示捕获到的数据包,界面分为三个核心区域(默认布局):

(1)界面区域说明

区域名称 功能说明 关键列/字段
数据包列表(Packet List) 以表格形式展示所有捕获的数据包,每行代表一个数据包 -- No.:数据包序号; -- Time:捕获时间(相对于捕获开始的时间); -- Source:源IP/MAC地址; -- Destination:目标IP/MAC地址; -- Protocol:数据包使用的协议; -- Length:数据包大小(字节); -- Info:数据包关键信息(如HTTP请求方法、TCP标志位)
数据包详情(Packet Details) 分层展示选中数据包的协议结构(从底层到上层),可展开查看每个字段 -- Ethernet II:二层以太网头(源MAC、目标MAC、类型); -- Internet Protocol Version 4:三层IP头(源IP、目标IP、TTL、协议类型); -- Transmission Control Protocol:四层TCP头(源端口、目标端口、序列号、标志位); -- Hypertext Transfer Protocol:七层HTTP头(请求方法、URL、状态码、响应头)
数据包原始数据(Packet Bytes) 以十六进制和ASCII格式展示数据包的原始字节内容 -- 左侧:十六进制编码; -- 右侧:对应的ASCII字符(不可打印字符显示为.); -- 选中"数据包详情"中的字段时,原始数据中对应字节会高亮

(2)实时操作技巧

  • 暂停/继续捕获 :点击工具栏暂停按钮(黄色正方形)暂停,点击继续按钮(绿色三角形)恢复;
  • 停止捕获 :点击工具栏停止按钮(红色正方形),停止后可专注分析已捕获的流量;
  • 清除捕获结果 :停止捕获后,点击工具栏清除按钮(垃圾桶图标),清空当前列表,重新开始捕获;
  • 标记数据包 :右键点击数据包,选择Mark Packet,标记后的数据包会显示红色背景,便于后续定位(如标记异常包)。

3. 第三步:结果过滤与深度分析

捕获完成后,通常需要通过"显示过滤"筛选目标流量,结合内置工具进行深度分析:

(1)显示过滤(核心功能)

显示过滤用于在已捕获的所有数据包中,筛选出符合条件的结果(与"捕获过滤"的区别:捕获过滤在捕获时筛选,显示过滤在捕获后筛选),过滤规则输入到界面顶部的Filter输入框中,按回车生效。

常用显示过滤规则示例

过滤需求 过滤规则 说明
筛选HTTP流量 http 显示所有HTTP协议的数据包(包括请求和响应)
筛选HTTPS流量 tlsssl 显示所有TLS/SSL协议的流量(HTTPS基于TLS)
筛选指定IP的流量 ip.addr == 192.168.1.100 显示源IP或目标IP为192.168.1.100的数据包
筛选源IP为指定地址的流量 ip.src == 192.168.1.100 仅显示从192.168.1.100发送的数据包
筛选目标IP为指定地址的流量 ip.dst == 192.168.1.1 仅显示发送到192.168.1.1(网关)的数据包
筛选指定端口的流量 tcp.port == 80udp.port == 53 显示TCP 80端口(HTTP)或UDP 53端口(DNS)的流量
筛选TCP SYN包(端口扫描特征) tcp.flags.syn == 1 && tcp.flags.ack == 0 显示仅含SYN标志位的TCP包(半开扫描的请求包)
筛选DNS查询流量 dns.qry.type == 1 显示DNS A记录查询(查询IPv4地址)的数据包
筛选包含特定字符串的流量 frame contains "password" 显示数据包原始数据中包含"password"字符串的流量(可用于找明文密码)
组合过滤(HTTP+指定IP) http && ip.addr == 192.168.1.100 显示192.168.1.100主机的所有HTTP流量
排除特定协议的流量 not arpnot dns 显示除ARP或DNS协议外的所有流量(减少干扰)

过滤规则使用技巧

-- 输入规则时,Wireshark会自动补全(如输入ip.会列出所有IP相关字段);

-- 若规则错误,输入框会显示红色背景,鼠标悬停可查看错误原因;

-- 点击输入框旁的书签图标,可保存常用规则(如"HTTP流量""DNS查询"),后续直接选择。

(2)关键分析工具

针对不同场景,Wireshark提供专用分析工具,以下为常用工具的使用方法:

① TCP流追踪(重组TCP会话)

TCP是面向连接的协议,数据可能分多个数据包传输,通过"TCP流追踪"可重组完整会话内容(如HTTP请求-响应、文件传输数据):

  1. 在"数据包列表"中,右键点击任意一个TCP数据包;
  2. 选择 Follow → TCP Stream(或快捷键Ctrl+Alt+Shift+T);
  3. 弹出"Follow TCP Stream"窗口,展示重组后的完整数据流:
    • 默认以"ASCII"格式显示,可通过顶部下拉框切换为"Hex Dump"(十六进制)、"C Arrays"(C语言数组)等格式;
    • 红色文本:从源IP到目标IP的数据流(如客户端发送的HTTP请求);
    • 蓝色文本:从目标IP到源IP的数据流(如服务器返回的HTTP响应);
    • 点击Save As可将重组后的数据流保存为本地文件(如保存HTTP响应中的图片、HTML页面)。
  4. 关闭窗口后,"数据包列表"中会仅显示该TCP流的数据包(背景为灰色),便于单独分析。

② HTTP流追踪(简化版TCP流,专注HTTP)

针对HTTP流量,Wireshark提供专用的"HTTP流追踪",操作更简洁:

  1. 右键点击任意HTTP数据包(Protocol列显示"HTTP");
  2. 选择 Follow → HTTP Stream
  3. 弹出窗口直接展示HTTP请求头、请求体、响应头、响应体,无需手动区分TCP方向,适合快速查看HTTP交互内容。

③ 协议统计(分析流量分布)

通过"协议统计"可直观了解捕获流量中各协议的占比、会话数量等信息,快速定位主要流量类型:

  1. 点击顶部菜单栏 Statistics → Protocol Hierarchy
  2. 弹出"Protocol Hierarchy"窗口,以树形结构展示协议分布:
    • 左侧:协议层级(如"Ethernet → IP → TCP → HTTP");
    • 右侧:Packets(该协议的数据包数量)、Bytes(数据量)、% Packets(占比);
    • 点击某一协议(如HTTP),可展开查看其细分类型(如HTTP GET、HTTP POST)。
  3. 其他常用统计工具:
    • Statistics → Conversations:按"IP会话""TCP会话""UDP会话"统计,显示各会话的数据包数量、数据量(可定位高频通信的主机);
    • Statistics → Endpoints:按"IP地址""MAC地址""端口"统计,显示每个端点的通信情况(可定位活跃主机、常用端口);
    • Statistics → DNS:统计DNS查询/响应数量、查询类型分布(可分析DNS欺骗是否成功)。

④ 专家信息(自动标记异常流量)

Wireshark会自动分析流量中的异常情况(如TCP重传、ICMP错误、DNS解析失败),并通过"专家信息"展示,适合快速排查故障:

  1. 点击顶部菜单栏 Analyze → Expert Info(或快捷键Ctrl+E);
  2. 弹出"Expert Info"窗口,按严重程度分类显示异常:
    • Error(错误):如TCP重置(RST)、ICMP目标不可达;
    • Warning(警告):如TCP重传、TCP窗口过小;
    • Note(提示):如TCP三次握手、DNS查询成功;
    • 点击某条信息,可直接定位到对应的数据包,便于分析异常原因。

4. 第四步:流量保存与报告导出

分析完成后,可将捕获的流量或分析结果导出,便于后续分享或存档:

(1)保存捕获的流量文件

  1. 点击顶部菜单栏 File → Save As(或快捷键Ctrl+S);
  2. 选择保存路径,设置文件名(如http_capture.pcapng);
  3. 在"Save as type"中选择文件格式:
    • Wireshark/PCAPNG Files (*.pcapng):默认格式,支持元数据(如捕获时间、接口信息),推荐使用;
    • PCAP Files (*.pcap):兼容其他工具(如tcpdump、scapy),通用性强;
    • Compressed PCAP Files (*.pcap.gz):压缩格式,适合大文件保存。
  4. 若仅需保存部分数据包(如显示过滤后的结果),可先应用过滤规则,再勾选"Save only filtered packets",点击Save

(2)导出分析报告

Wireshark支持将分析结果导出为多种格式,便于生成测试报告:

  1. 导出数据包列表: 点击 File → Export Packet Dissections → As Text File(或其他格式);

    选择导出范围(如"All packets""Selected packets""Filtered packets"),设置导出字段(如"Packet summary line""Packet details""Packet bytes"),点击Save,生成文本格式的报告。

  2. 导出协议统计报告: 在"Protocol Hierarchy""Conversations"等统计窗口中,点击窗口底部的Save按钮,选择导出格式(如CSV、HTML),保存统计结果。

  3. 导出TCP流/HTTP流: 在"Follow TCP Stream"或"Follow HTTP Stream"窗口中,点击Save As,将重组后的数据流保存为文本文件(如tcp_stream.txt)。

进阶使用教程(场景化实战)

结合渗透测试和故障排查的典型场景,介绍Wireshark的实战用法:

1. 场景1:捕获HTTP明文认证凭据

HTTP Basic Auth或表单提交的明文密码会在流量中传输,通过Wireshark可直接捕获:

  1. 启动Wireshark,选择目标接口(如eth0),设置捕获过滤规则tcp port 80,启动捕获;
  2. 在目标主机上访问需要认证的HTTP服务(如http://192.168.1.200/login),输入用户名和密码提交;
  3. 停止捕获,在Wireshark中应用显示过滤规则http
  4. 在"数据包列表"中查找"Info"列显示"POST /login HTTP/1.1"或"GET /admin HTTP/1.1"的数据包:
    • 若为HTTP Basic Auth:选中该数据包,在"数据包详情"中展开"Hypertext Transfer Protocol"→"Authorization",可见Basic dXNlcjE6cGFzc3dvcmQx,其中"dXNlcjE6cGFzc3dvcmQx"为Base64编码,解码后即为"user1:password1";
    • 若为表单提交(POST):选中POST数据包,在"数据包详情"中展开"Hypertext Transfer Protocol"→"Line-based text data: application/x-www-form-urlencoded",可见表单数据(如username=user1&password=password1)。

2. 场景2:分析DNS欺骗是否成功

在使用mitm6或其他工具实施DNS欺骗后,通过Wireshark验证欺骗效果:

  1. 启动Wireshark,选择接口,设置捕获过滤规则udp port 53,启动捕获;
  2. 在目标主机上执行DNS查询(如nslookup www.test.com);
  3. 停止捕获,应用显示过滤规则dns
  4. 分析数据包:
    • 查找"Protocol"为"DNS","Info"为"Standard query 0x1234 A www.test.com"的数据包(DNS查询包),确认源IP为目标主机;
    • 对应查找"Info"为"Standard query response 0x1234 A www.test.com"的数据包(DNS响应包),查看"数据包详情"中"Domain Name System (response)"→"Answers"→"A"字段的IP地址;
    • 若响应IP为攻击机IP(而非真实DNS服务器返回的IP),则DNS欺骗成功。

3. 场景3:排查TCP连接中断问题

若目标主机无法建立TCP连接(如无法访问某端口),通过Wireshark分析中断原因:

  1. 启动Wireshark,选择接口,设置捕获过滤规则tcp port 443(以HTTPS端口为例),启动捕获;
  2. 在目标主机上尝试访问目标端口(如telnet 192.168.1.200 443);
  3. 停止捕获,应用显示过滤规则tcp.port == 443
  4. 分析TCP交互过程:
    • 若仅看到"SYN"包(Info列显示"49152 → 443 [SYN]"),无"SYN+ACK"响应:可能目标端口未开放,或防火墙拦截了SYN包;
    • 若看到"SYN"→"RST"(Info列显示"443 → 49152 [RST, ACK]"):目标端口开放但拒绝连接(如服务未启动,或配置了访问控制);
    • 若看到"SYN"→"SYN+ACK"→"ACK"→"RST":三次握手成功后连接被重置,可能目标服务异常或存在应用层过滤。

4. 场景4:离线分析PCAP文件(如渗透测试后复盘)

若已通过tcpdump或scapy捕获了PCAP文件,可通过Wireshark离线分析:

  1. 启动Wireshark,点击 File → Open(或快捷键Ctrl+O);
  2. 选择PCAP/PCAPNG文件(如penetration_test.pcap),点击Open
  3. 后续操作与实时捕获一致:应用显示过滤规则、追踪TCP流、查看协议统计,无需重新捕获流量。

常见问题与解决方案

问题现象 可能原因 解决方案
无法启动捕获,提示"Permission denied" 1. 当前用户无捕获权限;2. dumpcap工具权限配置错误 1. 临时解决方案:用sudo wireshark启动;2. 永久解决方案:按"基础环境准备"中的步骤配置wireshark用户组和dumpcap权限,注销后重新登录
捕获不到目标流量(如仅看到本地回环流量) 1. 选择了错误的网络接口;2. 捕获过滤规则设置过严;3. 目标流量未经过攻击机 1. 确认目标接口(如无线连接用wlan0,有线用eth0);2. 暂时移除捕获过滤规则(捕获所有流量)测试;3. 若为局域网流量,确保攻击机与目标在同一网段,或实施ARP欺骗将流量转发到攻击机
HTTPS流量无法解析(仅显示TLS加密数据) HTTPS流量经过TLS加密,Wireshark默认无法解密 1. 若控制目标主机:在目标浏览器中导出TLS会话密钥(如Chrome:chrome://net-internals/#ssl),在Wireshark中导入(Edit → Preferences → Protocols → TLS → (Pre)-Master-Secret log filename);2. 若为中间人攻击场景:通过攻击机伪造证书,让目标信任后捕获解密后的流量
捕获的数据包过多,卡顿严重 1. 未设置捕获过滤,捕获了大量无关流量;2. 数据包数量超过内存承载能力 1. 启动捕获前设置精准的捕获过滤规则(如按IP、端口筛选);2. 启用"捕获到文件"功能(File → Save As提前设置保存路径),将流量直接写入文件,减少内存占用;3. 捕获后应用显示过滤,隐藏无关数据包
无法打开PCAP文件,提示"Invalid file format" 1. 文件损坏;2. 文件格式不兼容(如非PCAP/PCAPNG格式);3. Wireshark版本过低 1. 重新获取或下载文件,确认文件完整性;2. 用file 文件名.pcap查看文件格式,确认是否为支持的类型;3. 更新Wireshark到最新版本(sudo apt upgrade -y wireshark

注意事项

  1. 法律合规性:Wireshark捕获网络流量可能涉及他人隐私或敏感信息,未经授权在公共网络或他人网络中捕获流量,可能违反《网络安全法》《个人信息保护法》,仅可在自己的测试环境或获得书面授权
相关推荐
Barkamin2 小时前
TCP/IP五层模型
运维·网络·tcp/ip
抹茶咖啡2 小时前
IPSec策略实现3389端口精准访问控制
运维·网络·it运维
123过去2 小时前
hexinject使用教程
linux·网络·测试工具
i建模2 小时前
Ubuntu系统中安装NVIDIA驱动
linux·运维·ubuntu
IpdataCloud2 小时前
网络安防实战:如何用IP查询工具精准定位风险IP?
网络·经验分享·tcp/ip·网络安全
qcwl662 小时前
深入理解Linux进程与内存 学习笔记#3
linux·笔记·学习
无籽西瓜a2 小时前
TCP三次握手与四次挥手详解含图解
java·服务器·网络·tcp/ip
千里马-horse2 小时前
Linux 系统中安装 ktlint
linux·运维·服务器
feng_you_ying_li2 小时前
linux攻略计划启动,首先是linux的基本介绍(1)
linux·运维·服务器