ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

智能设备抓包实战:用Wireshark和Fiddler揪出后台“小动作”

智能设备抓包实战:用Wireshark和Fiddler揪出后台“小动作” 最近家里添了一位新成员一只“鬼鬼祟祟的小猫咪”。当然不是真猫而是一台智能猫砂盆。它白天安静半夜勤快但每次我用配套的猫咪 APP 查看数据时总感觉后台流量不太干净明明只是刷新一次称重记录手机状态栏却在疯狂转圈路由器的指示灯也在不停闪烁。更直白一点这台猫咪设备每次启动都要和好几个我根本不认识的服务端通信上传的不只是称重数据还有我的 WiFi SSID、手机型号、地理位置甚至每次打开 APP 的使用时长。这篇文章就来做一次正经的网络抓包实战把这只“小猫咪”的流量全部拦截下来看它到底在背着我偷偷发什么。全程使用 Wireshark、Fiddler、Charles、tcpdump 等常见抓包工具覆盖电脑端抓包、手机端抓包、HTTPS 解密、流量过滤、批量分析这几个环节。如果你怀疑自己家里的智能设备、某个 APP、或者某个小程序也存在类似的后台通信可以直接复用这套流程。先明确一点整个过程只针对自己名下的设备和在自己可控网络环境中的流量属于正常的隐私审计与故障排查不涉及任何绕过授权、攻击或窃取他人信息的内容。1. 核心能力速览能力项说明主要目标定位智能猫咪设备/猫咪 APP 的后台通信行为找出“鬼鬼祟祟”的连接抓包工具Wireshark、Fiddler、Charles、Burp Suite、tcpdump抓包方式网卡混杂模式抓包、HTTP/HTTPS 代理抓包、命令行抓包手机抓包支持 iOS/Android需配置代理并安装证书HTTPS 解密支持需要安装抓包工具根证书并做 SSL Pinning 绕过判断批量任务支持可用 tcpdump 长时间抓包后用 pyshark/tshark 批量分析输出结果PCAP 抓包文件、请求日志、接口列表、可疑域名/IP 清单适合场景智能家居设备通信审计、APP 隐私行为分析、小程序接口调试、网络故障排查使用边界仅限自有设备、授权测试环境抓包结果不得用于非法用途抓包本身不是一个“新项目”而是一套成熟的技术组合。它的核心价值在于当你怀疑某个设备或应用在后台偷偷做事情时你可以拿出实打实的数据包而不是靠猜。下面从环境准备开始逐步搭建一套可以反复使用的抓包分析环境。2. 适用场景与使用边界抓包最常见的几类任务智能设备隐私审计例如智能猫砂盆、宠物喂食器、摄像头、扫地机器人看它们采集了哪些数据发往哪里。APP 后台通信分析例如某个猫咪健康管理 APP 每次启动是否会上传设备列表、定位、广告标识符。小程序接口分析例如微信小程序里某个宠物商城页面下拉时到底调用了哪些统计接口。接口联调与故障排查例如前后端联调时定位请求超时、返回值异常、证书校验失败。学习网络协议例如用 Wireshark 观察 TCP 三次握手、TLS 握手、DNS 解析过程。边界也很明确。抓包能力强不代表可以随便用。以下几点必须遵守只对自己的设备、自己有权测试的系统进行抓包。如果抓包对象是公司内部系统或他人设备必须有书面授权。抓到的流量里可能包含账号、Token、密码、聊天内容等敏感信息不得扩散、公布或用于非法用途。涉及人脸、声音、位置、通讯录等个人信息的采集行为要遵循相关法律法规。抓包过程中不得绕过权限控制去获取未授权的数据。本文所有演示都基于一个假设这只“小猫咪”是你自己家里的智能设备配套 APP 是你自己手机上的应用。在这个前提下分析它的网络行为是合法且正当的。3. 环境准备与前置条件抓包需要准备的基础环境如下环境项要求操作系统Windows 10/11、macOS、Linux 均可抓包工具Wireshark、Fiddler/Charles、tcpdump、tshark网卡建议使用支持混杂模式的网卡无线网卡抓包效果取决于驱动和系统手机Android 或 iOS用于 APP 抓包需能和电脑在同一局域网权限Windows/macOS 需要管理员权限Android 抓 HTTPS 可能还需要 root 或系统证书安装权限磁盘空间长时间抓包会产生较大 pcap 文件建议预留 10GB 以上Python可选用于 pyshark 或 scapy 做脚本化流量分析版本方面没有固定的硬性要求建议直接下载各工具的最新稳定版。Wireshark 官方提供 Windows 和 macOS 安装包Linux 下通过包管理器安装。Fiddler 有 Classic 和 Everywhere 两个版本经典版免费。Charles 是付费软件但有试用期。tcpdump 在 Linux/macOS 下通常自带或通过包管理器安装。需要注意一点抓 HTTPS 流量比抓 HTTP 流量复杂。现代 APP 几乎都强制 HTTPS因此你需要让目标设备信任抓包工具的根证书否则只能看到加密的 TLS 数据流看不到具体请求内容。对于 Android 7.0 以上系统普通 APP 默认不信任用户安装的证书这种情况下要么抓 HTTP 明文流量要么考虑在测试机上根证书或处理 SSL Pinning。4. 安装部署与启动方式4.1 安装 WiresharkWindows 下可以从官网下载安装包安装时注意勾选安装 Npcap 或 WinPcap 驱动组件否则抓不到包。macOS 下使用 Homebrewbrew install --cask wiresharkLinux 下使用包管理器sudo apt update sudo apt install -y wireshark tshark tcpdump安装完成后启动 Wireshark选择要监听的网卡点击开始抓包。如果看不到网卡列表或者抓不到任何流量优先检查 Npcap/WinPcap 驱动是否安装以及当前用户是否有管理员权限。4.2 启动 Fiddler 作为代理抓包Fiddler 适合抓 HTTP/HTTPS 层流量安装后默认监听127.0.0.1:8888。启动后它会自动配置系统代理把电脑浏览器的流量代理进来。确认 Fiddler 监听端口# Windows 下可从 Fiddler 界面菜单 Tools - Options - Connections 查看 # 默认端口为 8888手机端抓包时手机需要和电脑在同一局域网手机 WiFi 代理设置为电脑 IP 和 Fiddler 端口。电脑 IP 可以通过ipconfigWindows或ifconfigmacOS/Linux查看。4.3 使用 tcpdump 命令行抓包tcpdump 适合在路由器、Linux 服务器或无图形界面的环境中抓包也可以用于长时间后台采集。# 查看网卡列表 sudo tcpdump -D # 抓取指定网卡上的流量保存为 pcap 文件 sudo tcpdump -i eth0 -w cat_traffic.pcap # 抓取指定主机相关的流量 sudo tcpdump -i eth0 host 192.168.1.100 -w cat_traffic.pcap # 抓取指定端口流量例如 HTTP 80 或 HTTPS 443 sudo tcpdump -i eth0 port 80 or port 443 -w cat_traffic.pcap在路由器上运行 tcpdump 的优势在于它可以同时捕获所有连接该路由器的设备流量不需要在目标设备上安装任何东西也不容易引起目标 APP 的警惕。但需要路由器支持 SSH 登录或者你有可刷机的路由器。4.4 用 tshark 读取 pcap 文件抓完包后的分析可以交给 tshark它是 Wireshark 的命令行版本# 查看 pcap 文件中的 HTTP 请求 tshark -r cat_traffic.pcap -Y http.request -T fields -e ip.src -e ip.dst -e http.host -e http.request.uri # 查看 DNS 查询记录 tshark -r cat_traffic.pcap -Y dns -T fields -e dns.qry.name到这里抓包环境已经基本就绪。接下来就正式对“小猫咪”进行布控。5. 功能测试与效果验证5.1 确认目标设备 IP在开始抓包前先确认“小猫咪”在局域网里的 IP 地址。方法是在路由器管理后台查看设备列表找到智能猫砂盆对应的条目。或者先断开所有设备让猫砂盆单独联网然后在路由器 DHCP 客户端列表里找到新增的 IP。如果路由器管理后台不直观可以用 arp 扫描来探测# 扫描本网段活跃主机 sudo arp-scan --localnet假设设备 IP 是192.168.1.100手机 IP 是192.168.1.50电脑 IP 是192.168.1.10。后续抓包命令都围绕这三个 IP 来做过滤。5.2 网卡抓包并观察流量规律用 Wireshark 选择电脑连接同一局域网的网卡开始抓包然后触发猫咪 APP 刷新数据、或者让猫砂盆自动上报一次状态。停止抓包后在过滤器栏输入ip.addr 192.168.1.100此时应该能看到猫砂盆与外部服务器之间的大量 TCP 连接。重点关注连接了哪些目标 IP 和端口。是否有非 443 端口的明文 HTTP 请求。是否有经常保持长连接的服务器。是否有定期的心跳包。这里先记录下所有目标 IP后续用 tshark 汇总统计。5.3 用 Fiddler/Charles 抓取 APP 的 HTTPS 明文请求电脑端网卡抓包只能看到 TLS 加密流量想看 APP 到底发送了什么内容需要走代理抓包。以 Fiddler 为例步骤如下打开 Fiddler菜单 Tools - Options - Connections勾选 “Allow remote computers to connect”。开启 HTTPS 解密Tools - Options - HTTPS勾选 “Capture HTTPS CONNECTs” 和 “Decrypt HTTPS traffic”安装信任 Fiddler 根证书。手机连接同一局域网 WiFi手动设置 HTTP 代理为电脑 IP 和端口 8888。手机浏览器访问http://电脑IP:8888下载 Fiddler 根证书并安装。打开猫咪 APP正常操作几轮。回到 Fiddler查看会话列表过滤关键字cat、pet、device或设备序列号找到请求明细。Fiddler 的 Inspector 面板可以直接看到请求头、请求体、响应头和响应体。如果一个请求向某个统计域名上报了设备型号、系统版本、位置信息这里会显示得清清楚楚。5.4 小程序抓包的特殊处理微信小程序抓包比普通 APP 多一个难点小程序的流量不一定走系统代理部分请求会直连微信的底层网络库。如果 Fiddler/Charles 抓不到小程序的包可以考虑以下几种方式在电脑上使用 mitmproxy 配合透明代理模式。将小程序的 HTTP 请求切换到明文调试模式部分开发版小程序支持在开发者工具里直接查看网络请求。使用 Android 模拟器配合可抓包系统镜像从底层捕获流量。热词里反复出现“微信小程序抓包”“app抓包失败”说明这是常见痛点。更稳妥的判断是不要死磕一种工具多准备一两个备用方案。比如 Windows 下 Fiddler 抓不到就换 CharlesCharles 也抓不到就回到 tcpdump 在路由器层面抓虽然看不到明文但至少能确认有没有外联、连接了哪些域名。5.5 流量过滤与可疑请求识别抓完一批流量后不要急着逐条看先用过滤规则缩小范围。Wireshark 常用过滤表达式过滤目标过滤表达式只看目标设备流量ip.addr 192.168.1.100只看 HTTP 请求http.request只看 DNS 查询dns只看 TLS 握手tls.handshake.type 1只看特定 IP 通信ip.addr 1.2.3.4只看 GET/POST 方法http.request.method POST识别可疑请求的标准目标域名和业务本身无关例如猫咪 APP 里出现广告 SDK、统计 SDK、推送 SDK 的域名。请求频率异常例如一分钟内上报十几次设备信息。请求体里携带了与业务无关的数据例如读取到的 WiFi 列表、已安装 APP 列表。半夜自动上报例如设备刚通电就立即连接远程服务器。如果看到这类请求建议把请求时间、目标域名、请求体截图或导出日志存档作为后续判断和处理依据。5.6 验证“鬼鬼祟祟”的行为链整个测试做完后把“小猫咪”的行为整理成一条完整的行为链例如启动时请求某个配置接口获取远程配置。周期性上报猫砂盆使用记录同时附带手机设备的匿名标识。打开 APP 后触发至少 3 个统计 SDK 上报请求。每次 APP 冷启动都会上报一次地理位置。这个行为链就是我们抓包的最终成果。有了它你就能判断这只“小猫咪”到底是在正常工作还是真的在暗戳戳搞事情。6. 接口 API 与批量任务抓包不只是看几条请求很多时候需要长时间采集然后批量分析。这时候就需要引入脚本化工具。6.1 用 tcpdump 做长时间后台抓包把抓包变成批量任务的第一步是在后台跑一个长时间的 tcpdump 进程sudo nohup tcpdump -i eth0 -s 0 -w /data/cat_capture_$(date %Y%m%d_%H%M%S).pcap \ host 192.168.1.100 or host 192.168.1.50 这条命令会把所有与猫砂盆、手机相关的流量写入 pcap 文件后台运行不占用终端。长时间抓包要注意文件大小可以按时间或大小切割sudo tcpdump -i eth0 -G 3600 -w /data/cat_capture_%Y%m%d_%H%M%S.pcap \ host 192.168.1.100-G 3600表示每 3600 秒滚动生成一个新文件。-C 100表示单个文件达到 100MB 时切换。这两个参数适合批量采集场景。6.2 用 pyshark 批量解析 pcap 文件Python 环境下pyshark 是读取 pcap 文件并做批量分析的常用库pip install pyshark批量分析脚本示例import pyshark from collections import Counter cap pyshark.FileCapture(cat_capture.pcap, display_filterdns) domain_counter Counter() for pkt in cap: try: query pkt.dns.qry_name if query: domain_counter[query] 1 except AttributeError: continue for domain, count in domain_counter.most_common(30): print(f{count}\t{domain})这段代码会统计抓包文件里所有 DNS 查询域名及其出现次数。如果某个域名出现频率异常高基本可以确定存在后台轮询或心跳上报。再写一个提取 HTTP 接口列表的脚本import pyshark cap pyshark.FileCapture(cat_capture.pcap, display_filterhttp.request) for pkt in cap: try: method pkt.http.request_method host pkt.http.host uri pkt.http.request_uri print(f{method} https://{host}{uri}) except AttributeError: continue注意pyshark 依赖 tshark 的可执行文件安装 Wireshark 时已经一并安装。如果导入 pyshark 后报找不到 tshark需要手动指定路径import pyshark cap pyshark.FileCapture( cat_capture.pcap, display_filterdns, tshark_path/usr/local/bin/tshark )6.3 批量提取设备外联 IP设备固件如果走 HTTPSDNS 分析仍然能看到它解析了哪些域名。把抓包文件里的 TLS 目标 IP 也统计一遍tshark -r cat_capture.pcap -Y tls.handshake.type 1 -T fields -e ip.dst | sort | uniq -c | sort -rn这条命令按连接次数排序输出所有 TLS 连接的目标 IP。去各 IP 库查归属就能知道这台“小猫咪”的数据最终发到了哪些机房。6.4 通用 API 分析模板如果抓到了明文 HTTP/HTTPS 接口可以用下面的 Python 脚本把请求落成表格import csv import pyshark rows [] cap pyshark.FileCapture(cat_capture.pcap, display_filterhttp.request) for pkt in cap: try: rows.append({ time: pkt.frame.time, src: pkt.ip.src, dst: pkt.ip.dst, method: pkt.http.request_method, host: pkt.http.host, uri: pkt.http.request_uri, }) except AttributeError: continue with open(api_log.csv, w, newline, encodingutf-8) as f: writer csv.DictWriter(f, fieldnames[time, src, dst, method, host, uri]) writer.writeheader() writer.writerows(rows) print(f共提取 {len(rows)} 条请求)这里给出的脚本是通用模板实际字段名可能因抓包协议版本略有差异需要根据本机 tshark 输出字段做微调。7. 资源占用与性能观察抓包工具本身也会消耗系统资源尤其是在高流量、长时间抓包的情况下。7.1 Wireshark 的内存与 CPU 占用Wireshark 在实时抓包时会把所有数据包加载到内存里流量大的时候内存占用会快速上升。如果抓包文件持续增长建议及时停止并保存不要让它无限运行。日常排查时先用过滤器把流量范围缩小到目标设备 IP而不是抓全网流量。7.2 tcpdump 的磁盘占用-w参数保存的 pcap 文件会持续增大。一个正常家庭网络环境如果包含视频流量几小时就能产生几十 GB 文件。解决办法是只抓目标 IP 的流量或者使用环形缓冲# 使用环形缓冲保留 10 个文件每个 100MB sudo tcpdump -i eth0 -C 100 -W 10 -w /data/cat_capture.pcap host 192.168.1.100这样磁盘占用最多约 1GB避免长时间抓包把磁盘写满。7.3 CPU 占用HTTPS 解密和实时协议解析对 CPU 有要求。Fiddler/Charles 在抓 HTTPS 时需要实时解密CPU 占用会明显上升。如果电脑配置较低建议关闭实时解密不勾选 “Decrypt HTTPS traffic”先抓原始 TLS 流量抓完后再用 tshark 离线解析。7.4 如何降低资源消耗抓包过滤器尽量写精确只抓目标 IP 和端口。长时间采集优先选择 tcpdump而不是 Wireshark 图形界面。关闭不需要的协议解析Wireshark 里可以在 Analyze - Enabled Protocols 里精简。手机抓包时一次只开一个抓包工具避免多工具同时代理造成链路冲突。8. 常见问题与排查方法问题现象可能原因排查方式解决方案Wireshark 抓不到任何包未安装 Npcap/WinPcap 驱动或没有管理员权限检查驱动状态重新安装抓包驱动以管理员身份运行 Wireshark安装 NpcapFiddler 抓不到手机流量手机未正确配置代理或防火墙拦截查看手机代理设置检查电脑防火墙确认手机和电脑在同一局域网放行 8888 端口手机上显示“不是专用连接”未安装或未信任 Fiddler/Charles 根证书用手机浏览器访问抓包工具证书下载页安装根证书并在系统设置中信任小程序抓不到包小程序未走系统代理或开启了证书校验检查是否能看到 CONNECT 请求换 mitmproxy 透明代理或模拟器底层抓包抓包文件过大过滤不精确或抓包时间过长检查 pcap 文件大小和抓包参数使用host过滤、-C文件切割、-W环形缓冲HTTPS 内容还是密文未开启解密或 APP 做了证书校验检查抓包工具 HTTPS 解密开关安装根证书测试环境可考虑绕过 SSL Pinningtshark 运行报错找不到字段协议字段名与环境中实际解析结果不一致用tshark -G fields查看可用字段调整字段名或先导出到 JSON 再解析抓包时网络变卡代理模式接管了系统流量HTTPS 解密开销大查看 CPU 占用和代理延迟关闭解密缩小过滤范围或改用 tcpdump 层次抓包抓包失败最常见的场景集中在手机端和 HTTPS 解密。如果手机怎么都抓不到包先做两层检查第一层手机是否真的连通了代理端口可以用手机浏览器访问http://代理IP:端口看能否打开抓包工具的证书下载页。第二层目标 APP 是否走了代理部分 APP 会在底层禁用系统代理这种只能用路由器镜像或透明代理处理。9. 最佳实践与使用建议结合这次“小猫咪”抓包项目整理几条工程化建议9.1 先小范围验证再上批量采集第一次抓包不要直接跑几个小时。先抓 5 分钟确认能抓到目标设备的流量再决定是否延长采集时间。小范围验证能快速发现过滤条件是否写错、代理是否生效、磁盘空间是否充足。9.2 留一套可复用的抓包模板把常用的抓包命令和 tshark 分析命令保存成 shell 脚本后续抓其他设备直接改 IP 就能用。比如#!/bin/bash TARGET_IP192.168.1.100 OUTPUT_DIR/data/capture TIMESTAMP$(date %Y%m%d_%H%M%S) sudo tcpdump -i eth0 -s 0 -C 100 -W 10 \ -w ${OUTPUT_DIR}/${TARGET_IP}_${TIMESTAMP}.pcap \ host ${TARGET_IP}9.3 模型文件、抓包文件、分析结果分目录管理抓包项目建议这样组织data/ ├── pcap/ # 原始抓包文件 ├── logs/ # 分析日志 ├── export/ # 导出的接口清单、CSV └── report/ # 最终行为分析报告原始 pcap 文件保留一份只读副本后续分析都基于副本避免误操作破坏原始证据。9.4 批量任务要加日志和失败重试长时间抓包采集会出现网卡休眠、路由器重启、磁盘写满等意外情况。脚本里要加日志输出记录启动时间、结束时间、文件大小、异常信息。定时任务可以采用循环加 sleep 的方式失败时自动重试。9.5 接口服务要限制访问范围如果后续把抓包能力封装成内部工具服务器或接口只监听本机或内网地址不要暴露到公网。抓包能力一旦被滥用风险很高。9.6 涉及隐私数据时必须确认授权抓包结果中可能包含家庭成员的位置信息、设备的唯一标识、WiFi 密码等。保存和分析这些数据时要有明确的目的和边界用完及时清理不随意共享。10. 总结与下一步这次“抓包一只鬼鬼祟祟的小猫咪”的核心收获是把智能猫咪设备的网络行为完整梳理了一遍。整个过程不复杂环境准备、抓包、过滤、解密、批量分析五步走完就能得到一份清晰的外联清单。最有价值的不是抓到某个具体的域名而是掌握了一套可以复用到其他设备的分析流程。以后怀疑家里任何智能设备有异常通信都可以用同样的方法做一次体检。最容易踩的坑有两个一个是手机端代理证书没配好导致 HTTPS 抓不到明文另一个是过滤条件写太宽pcap 文件飞速膨胀。建议第一次动手时先抓短时间、小范围确认流程跑通后再扩大范围。下一步可以考虑做两件事一是把这套抓包流程封装成一个简单的定时巡检脚本每周自动抓一段时间的流量并生成报告二是结合 pyshark 或 scapy 做成自动化分析工具把可疑外联域名、IP 变更、请求频率异常都自动标记出来。如果你也在怀疑自己家里的“小猫咪”不老实不妨按这篇文章的流程试一次。抓包工具装好过滤器写好剩下的就是耐心看流量自己交代。
返回列表