Wireshark 在 macOS 上使用及问题解决

article/2025/8/2 22:48:57

wireshark概述

Wireshark 是被广泛使用的免费开源网络协议分析软件(network protocol analyzer)或网络数据包分析工具,它可以让你在微观层面上查看网络上发生的事情。它的主要功能是截取网络数据包,并尽可能详细地展示网络数据包信息内容。

项目地址:https://github.com/wireshark/wireshark

本篇文章主要讲述在 Mac 使用 Wireshark 时可能遇到的一些问题,并通过一个实例介绍详细的抓包手法。

常见问题

抓包报错
报错信息
You do not have permission to capture on device "bridge100". ((cannot open BPF device) /dev/bpf0: Permission denied)

解决办法

查看 /dev/bpf* 文件的权限

ls -l /dev/bpf*

更新 /dev/bpf* 文件权限和组权限

sudo chmod g+r /dev/bpf* && sudo chgrp admin /dev/bpf*
网卡太多

使用 ifconfig 命令可以查看到 Mac 中的所有网络接口,可能会出现数量繁多,不清楚选哪个的问题。

先来看看我的网卡信息。

$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>inet 127.0.0.1 netmask 0xff000000inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
anpi1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500options=400<CHANNEL_IO>ether e2:5d:00:2d:ee:ecmedia: nonestatus: inactive
anpi0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500options=400<CHANNEL_IO>ether e2:5d:00:2d:ee:ebmedia: nonestatus: inactive
en3: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500options=400<CHANNEL_IO>ether e2:5d:00:2d:ee:cbnd6 options=201<PERFORMNUD,DAD>media: nonestatus: inactive
en4: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500options=400<CHANNEL_IO>ether e2:5d:00:2d:ee:ccnd6 options=201<PERFORMNUD,DAD>media: nonestatus: inactive
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500options=460<TSO4,TSO6,CHANNEL_IO>ether 36:b2:2d:e4:95:80media: autoselect <full-duplex>status: inactive
en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500options=460<TSO4,TSO6,CHANNEL_IO>ether 36:b2:2d:e4:95:84media: autoselect <full-duplex>status: inactive
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500options=63<RXCSUM,TXCSUM,TSO4,TSO6>ether 36:b2:2d:e4:95:80Configuration:id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0ipfilter disabled flags 0x0member: en1 flags=3<LEARNING,DISCOVER>ifmaxaddr 0 port 8 priority 0 path cost 0member: en2 flags=3<LEARNING,DISCOVER>ifmaxaddr 0 port 9 priority 0 path cost 0nd6 options=201<PERFORMNUD,DAD>media: <unknown type>status: inactive
ap1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500options=400<CHANNEL_IO>ether 3e:57:dc:50:21:95media: autoselect
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500options=6460<TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>ether 1c:57:dc:50:21:95inet6 fe80::493:9294:92cb:962d%en0 prefixlen 64 secured scopeid 0xc inet 10.201.102.126 netmask 0xffffe000 broadcast 10.201.127.255nd6 options=201<PERFORMNUD,DAD>media: autoselectstatus: active
awdl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500options=6460<TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>ether ce:41:0d:0a:06:8binet6 fe80::cc41:dff:fe0a:68b%awdl0 prefixlen 64 scopeid 0xd nd6 options=201<PERFORMNUD,DAD>media: autoselectstatus: active
llw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500options=400<CHANNEL_IO>ether ce:41:0d:0a:06:8binet6 fe80::cc41:dff:fe0a:68b%llw0 prefixlen 64 scopeid 0xe nd6 options=201<PERFORMNUD,DAD>media: autoselectstatus: inactive
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380inet6 fe80::bbb3:6daa:deb9:6132%utun0 prefixlen 64 scopeid 0xf nd6 options=201<PERFORMNUD,DAD>
utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000inet6 fe80::a590:7109:be1b:f900%utun1 prefixlen 64 scopeid 0x10 nd6 options=201<PERFORMNUD,DAD>
utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1000inet6 fe80::ce81:b1c:bd2c:69e%utun2 prefixlen 64 scopeid 0x11 nd6 options=201<PERFORMNUD,DAD>
utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500inet6 fe80::4562:973c:823c:162d%utun3 prefixlen 64 scopeid 0x12 nd6 options=201<PERFORMNUD,DAD>
utun4: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 9000inet 198.18.0.1 --> 198.18.0.1 netmask 0xfffe0000
vmenet0: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500ether 3e:64:95:b7:62:33media: autoselectstatus: active
bridge100: flags=8a63<UP,BROADCAST,SMART,RUNNING,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500options=3<RXCSUM,TXCSUM>ether 1e:57:dc:05:87:64inet 192.168.64.1 netmask 0xffffff00 broadcast 192.168.64.255inet6 fe80::1c57:dcff:fe05:8764%bridge100 prefixlen 64 scopeid 0x15 inet6 fd93:45e9:560c:404:1020:f068:469e:d583 prefixlen 64 autoconf secured Configuration:id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0ipfilter disabled flags 0x0member: vmenet0 flags=3<LEARNING,DISCOVER>ifmaxaddr 0 port 20 priority 0 path cost 0nd6 options=201<PERFORMNUD,DAD>media: autoselectstatus: active
(base) 
如何选网卡

在众多网卡中,重点关注 en0bridge100 这两个接口,其他多数可以忽略。

接口名含义 / 作用IP 地址状态
lo0本地回环接口(localhost)127.0.0.1active
en0无线网卡或主要物理网卡10.201.102.126active
bridge100Docker 创建的虚拟桥接网卡192.168.64.1active
awdl0Apple Wireless Direct Link,隔空投送用有 IPv6active
utun*VPN 隧道接口(一般是 VPN 连接创建的)有 IPv6active
vmenet0虚拟机网络桥接接口(如 VMware 或 UTM)无 IPv4active
en1/en2/en3...其他物理或虚拟网卡无 IPv4❌ 多数 inactive
anpi0/anpi1Apple Silicon 特有接口无 IP❌ inactive

抓包实例

本例用于分析在漏洞复现或攻击检测中捕获的数据流量,步骤如下:

确定靶机 IP

可以通过查看靶机(如虚拟机)中的 IP 地址获取。

判断哪个网卡可以访问靶机

在本机 ifconfig 中找到能访问靶机 IP 的网卡,一般为 bridge100

在 Wireshark 中选择该网卡进行抓包

启动 Wireshark,选择对应的 bridge100 网卡,点击开始抓包即可。

如图这是我抓的工具攻击的流量数据,这样就可以单独拿出来分析了。

wireshrk命令速查

IP 地址过滤
  • ip.src == 192.168.1.107:来源 IP 是 192.168.1.107
  • ip.dst == 192.168.1.107:目标 IP 是 192.168.1.107
  • ip.addr == 192.168.1.107:来源或目标 IP 是该地址
端口过滤
  • tcp.port == 80:来源或目标 TCP 端口为 80
  • tcp.srcport == 80:来源端口为 80
  • tcp.dstport == 80:目标端口为 80
  • udp.port == 15000:UDP 任意端口为 15000
  • tcp.port >= 1 and tcp.port <= 80:TCP 端口范围过滤
协议过滤
  • tcp/ udp/ icmp/ http/ dns/ ftp/ ssl
  • not arp/!arp:排除 ARP 包
MAC 地址过滤
  • eth.src == A0:00:00:04:C5:84:来源 MAC
  • eth.dst == A0:00:00:04:C5:84:目标 MAC
  • eth.addr == A0:00:00:04:C5:84:任意 MAC(源或目的)
包长度过滤
  • udp.length == 26:UDP 数据长度
  • tcp.len >= 7:TCP 负载长度
  • ip.len == 94:IP 层长度
  • frame.len == 119:整个数据帧长度
HTTP 过滤
按方法
  • http.request.method == “GET”
  • http.request.method == “POST”
按内容
  • http contains “GET”:包含 GET 字符串
  • http contains “HTTP/1.1 200 OK”:HTTP 成功响应
TCP 参数过滤
  • tcp.flags.syn == 1:TCP SYN 包
  • tcp.window_size == 0 and tcp.flags.reset != 1
数据内容过滤(进阶)
UDP:
  • udp[8:3] == 20:21:22:UDP payload 前3字节为指定值
  • udp contains 7c:7c:7d:7d:包含任意位置匹配内容
TCP:
  • tcp[20:3] == 47:45:54:等价于 tcp[20:3] == “GET”(ASCII)
  • tcp[20:] matches “^GET.*HTTP/1.1\x0d\x0a”:用正则匹配完整 GET 请求
正则匹配语法速查
表达式说明
\d数字字符
\D非数字
\w单词字符 (字母、数字、下划线)
\s空白字符
.任意字符
.*任意数量任意字符(除换行)
^字符串开头
$字符串结尾

例子:

  • tcp[20:] matches "^GET.*":匹配以 GET 开头的 TCP 数据
  • udp[8:] matches "\\x14\\x05":匹配特定字节序列

http://www.hkcw.cn/article/lcihmokFSm.shtml

相关文章

企业级安全实践:SSL/TLS 加密与权限管理(一)

引言 ** 在数字化转型的浪潮中&#xff0c;企业对网络的依赖程度与日俱增&#xff0c;从日常办公到核心业务的开展&#xff0c;都离不开网络的支持。与此同时&#xff0c;网络安全问题也日益严峻&#xff0c;成为企业发展过程中不可忽视的重要挑战。 一旦企业遭遇网络安全事…

#Js篇:BlobFile对象URL.createObjectURL()fetchlocationnavigatornew URl

Blob 在 JavaScript 中&#xff0c;Blob 是一个非常重要的对象&#xff0c;用于表示不可变的、原始的二进制数据块&#xff08;Binary Large Object&#xff09; arrayBuffer()&#xff1a;获取 Blob 的二进制数据作为 ArrayBuffer。 stream()&#xff1a;创建一个可读流&…

HAProxy 可观测性最佳实践

HAProxy 简介 HAProxy&#xff08;High Availability Proxy&#xff09;是一款广泛使用的高性能负载均衡器&#xff0c;支持 TCP 和 HTTP 协议&#xff0c;提供高可用性、负载均衡和代理服务。它特别适用于负载较大的 Web 站点&#xff0c;能够支持数以万计的并发连接&#xf…

软件测试|FIT故障注入测试工具——ISO 26262合规下的智能汽车安全验证引擎

FIT&#xff08;Fault Injection Tester&#xff09;是SURESOFT专为汽车电子与工业控制设计的自动化故障注入测试工具​&#xff0c;基于ISO 26262等国际安全标准开发&#xff0c;旨在解决传统测试中效率低、成本高、安全隐患难以复现的问题&#xff0c;其核心功能包括&#xf…

【计算机网络】应用层协议Http——构建Http服务服务器

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;计算机网络 &#x1f339;往期回顾&#x1f339;&#xff1a; 【Linux笔记】——进程间关系与守护进程 &#x1f516;流水不争&#xff0c;争的是滔滔不息 一、Http协…

[ctfshow web入门] web80

信息收集 过滤了php和data if(isset($_GET[file])){$file $_GET[file];$file str_replace("php", "???", $file);$file str_replace("data", "???", $file);include($file); }else{highlight_file(__FILE__); }解题 大小写…

移动安全Android——客户端数据安全

本地文件权限配置 测试流程 &#xff08;1&#xff09;手机运行待测APP应用&#xff0c;adb执行命令找到APP包名 adb shell dumpsys activity top|findstr ACTIVITY &#xff08;2&#xff09;adb shell 进入设备&#xff0c;以Root权限进入/data/data/package包名目录下 c…

AI生态警报:MCP协议风险与应对指南(下)——MCP Host安全

AI生态警报&#xff1a;MCP协议风险与应对指南&#xff08;上&#xff09;——架构与供应链风险https://blog.csdn.net/WangsuSecurity/article/details/148335401?sharetypeblogdetail&sharerId148335401&sharereferPC&sharesourceWangsuSecurity&spm1011.24…

机房网络设备操作安全管理制度

该制度围绕机房网络设备操作安全,规定账号实行系统管理员、操作管理员、一般用户三级分级管理,遵循最小授权和权限分割原则,账号需实名制、禁止共享及转借,密码设置需至少 8 位、3 种字符组合且每 3 个月修改一次;高危指令执行需上级审批、双人核查,远程登录需限制权限、…

Root权限:解锁Android的终极力量

Root后的功能扩展 Root后可以实现的高级功能&#xff0c;如系统级备份、自定义ROM、性能优化、广告屏蔽等。 Root的风险与防范 讨论Root可能导致的安全问题&#xff0c;如恶意软件攻击、系统不稳定、保修失效等&#xff0c;提出降低风险的建议&#xff0c;如使用可信工具、备…

亚马逊数据采集软件完全指南:从工具原理到实战落地

亚马逊数据采集软件有哪些&#xff1f;在数字化商业浪潮中&#xff0c;亚马逊作为全球电商巨头&#xff0c;其平台上蕴含着海量的数据宝藏。对于卖家、品牌商以及市场分析师而言&#xff0c;精准获取和分析这些数据&#xff0c;成为了在激烈竞争中脱颖而出的关键。从产品定价的…

免费高清多功能录屏软件推荐

软件介绍 今天为大家介绍一款功能全面的免费录屏软件 - 云豹录屏大师。 录屏格式支持 这款软件特别强大&#xff0c;能够录制多种常见视频格式&#xff0c;包括MP4、AVI、WMV等格式&#xff0c;满足不同场景的录制需求。 高帧率支持 软件最高支持120帧的录制效果&#xff0…

【交通 Traffic Transformer】同一篇文章,内容排版稍有不同 | 交通预测模型中,Transformer相比传统GCN模型有何优势?

冰冻三尺,非一日之寒。 前情提要: 【Traffic Transformer】将 Transformer 应用于 交通预测领域中 | 动态和分层交通时空特征 | 时空模型比纯时间模型的性能要好得多 | 定义不好的相邻矩阵会损害模型Transformer相比传统GCN模型在交通预测中具有三大核心优势: 1、动态空间依…

docker-compose搭建prometheus以及grafana

1. 什么是 Prometheus&#xff1f; Prometheus 是一个开源的系统监控和告警工具&#xff0c;由 SoundCloud 于 2012 年开始开发&#xff0c;现为 CNCF&#xff08;Cloud Native Computing Foundation&#xff09;项目之一。它特别适合云原生环境和容器编排系统&#xff08;如 …

AI科技前沿动态:5.26 - 5.30 一周速览

目录 ⭐ 本周热点&#x1f4a1; 阿里巴巴开源自主搜索 AI 智能体 WebAgent&#x1f4a1; 我国首个软件开发 AI 智能体标准发布&#xff0c;20 余家巨头联手参编&#x1f4a1; 刚刚&#xff0c;新版DeepSeek-R1正式开源&#xff01;直逼o3编程强到离谱&#xff0c;一手实测来了 …

【google 论文】Titans: Learning to Memorize at Test Time

核心思想与贡献&#xff1a; 这篇论文的核心贡献在于提出了一种新的神经网络长期记忆模块 (neural long-term memory module)&#xff0c;并基于此构建了一个名为 Titans 的新型系列架构。这个架构旨在克服现有模型&#xff08;如Transformers&#xff09;在处理超长序列和长期…

VASP 教程:VASP 结合 Phonopy 计算硅的比热容

VASP 全称为 Vienna Ab initio Simulation Package&#xff08;The VASP Manual - VASP Wiki&#xff09;是一个计算机程序&#xff0c;用于从第一性原理进行原子尺度材料建模&#xff0c;例如电子结构计算和量子力学分子动力学。 Phonopy&#xff08;Welcome to phonopy — Ph…

企业数字化转型的7个难点

数字化转型不是一个有始有终的项目&#xff0c;而是一个持续变革的过程&#xff0c;过程漫长&#xff0c;且险象环生。需要领导者带领企业从成功或不成功的经验里持续反思、持续学习。 近年来&#xff0c;以移动互联网、云计算、大数据、人工智能等为代表的新一代数字化技术正在…

华为OD机试真题——简易内存池(2025A卷:200分)Java/python/JavaScript/C++/C/GO最佳实现

2025 A卷 200分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》 华为OD机试真题《简易…

mysql-mysql源码本地调试

前言 先进行mysql源码本地编译&#xff1a;mysql源码本地编译 1.本地调试 这里以macbook为例 1.使用vscode打开mysql源码 2.创建basedir目录、数据目录、配置文件目录、配置文件 cd /Users/test/ mkdir mysqldir //创建数据目录和配置目录 cd mysqldir mkdir conf data …