










前两篇我们搞懂了网络分层模型和六大协议的原理与风险。这一篇进入实战——用 Wireshark 抓包工具,把抽象的协议变成看得见的数据包。你将亲眼看到:HTTP 登录密码如何在网络中裸奔、FTP 账号密码如何被一行过滤器揪出来、Telnet 的每一条命令如何被完整还原。看完你就会明白,为什么公共 Wi-Fi 下登录非 HTTPS 网站等于把密码写在脸上。
抓包就是捕获网络中的数据帧/数据包,通过工具将经过本机网卡的所有网络数据抓取下来,解析其中的内容(IP 地址、MAC 地址、端口号、传输的数据),本质是监听网络流量。
通俗理解:在网线/无线信号的"管路"上装一个分叉口,把流过的数据复制一份供你分析。
抓包工具工作在数据链路层,可捕获经过本机网卡的所有数据,包括:
局域网内的广播包(如 ARP 请求)
自身与其他设备的通信包(如 HTTP 请求)
默认情况下,Wireshark 无法捕获局域网内其他设备之间的通信包。仅两种特殊情况可以:
交换机开启端口镜像(企业级网管功能)
主机处于 ARP 欺骗中间人位置(攻击手段)
这意味着:在普通局域网中,你只能抓到自己电脑收发的流量和广播包,不能直接抓到隔壁电脑的流量。攻击者要窃取他人流量,必须先做 ARP 欺骗或控制网络设备。
抓包仅用于自身学习、内网故障排查。禁止抓取他人网络数据、窃取敏感信息。在办公网络、公共网络抓包前,需获得网络管理员或相关负责人的许可。抓包工具不可用于恶意攻击,仅作为学习和防御工具使用。
Wireshark 是免费、开源、图形化界面的抓包工具,全平台支持(Windows、Linux、Mac),核心三大功能——抓包、解析、过滤,无需复杂配置,安装即可直接使用。
访问 Wireshark 官网下载对应系统安装包
运行安装程序,一路默认选项即可
安装过程中会提示安装 Npcap(或 WinPcap),必须勾选安装
Npcap/WinPcap 是 Wireshark 抓包的基础驱动,不安装则无法抓包。
打开 Wireshark,主界面显示本机所有可用网卡
选择当前正在联网的网卡(Wi-Fi 或有线以太网)
有线网卡通常标识为 "Ethernet" 或 "以太网"
无线网卡通常标识为 "Wi-Fi" 或 "WLAN"
技巧:选择有流量波动的网卡(流量曲线在跳动的那个就是当前在用的)
点击左上角鲨鱼鳍图标,开始实时抓包
操作完成后,点击红色方形按钮,停止抓包
Wireshark 过滤器分两类:抓包过滤器(捕获过滤器)和显示过滤器,作用和语法完全不同,这是最容易混淆的知识点。
在抓包开始前设置,只抓取符合条件的流量,不符合的直接丢弃,不进入列表。节省内存和性能。
通俗解读:先设定规则,只收"挂号信",普通信直接拒收。
特点:语法简洁、规则严格,不支持复杂逻辑,过滤生效后只捕获指定流量。
常用语法:
| 过滤目标 | 语法 | 说明 |
|---|---|---|
| 只抓 HTTP 流量 | tcp port 80 | 只捕获 80 端口的 TCP 包 |
| 只抓 HTTPS 流量 | tcp port 443 | 只捕获 443 端口的 TCP 包 |
| 只抓 ARP 流量 | arp | 只捕获 ARP 协议包 |
| 只抓指定 IP | host 192.168.1.100 | 只捕获该 IP 的收发流量 |
| 只抓指定端口 | port 3306 | 只捕获该端口的流量 |
| 组合条件 | tcp port 80 or tcp port 443 | 同时抓 HTTP 和 HTTPS |
抓包全部完成后,在已抓取的数据中二次筛选,界面只显示符合条件的包,隐藏无关包。可随时取消过滤查看全部流量。
通俗解读:先全部收进来,再慢慢挑着看,看完了还能退回全部。
特点:语法更强大、支持多条件组合、协议字段精准筛选。日常学习 90% 场景用显示过滤器。
语法错误提示:显示过滤器输入框变红说明语法错误;抓包过滤器语法错误时不会弹窗提示,只是抓不到包。
常用语法:
| 过滤目标 | 语法 | 说明 |
|---|---|---|
| 只显示 HTTP 协议 | http | 显示所有 HTTP 包 |
| 只显示 ARP 协议 | arp | 显示所有 ARP 包 |
| 只显示 DNS 协议 | dns | 显示所有 DNS 查询包 |
| 指定源 IP | ip.src == 192.168.1.100 | 显示从该 IP 发出的包 |
| 指定目标 IP | ip.dst == 192.168.1.1 | 显示发往该 IP 的包 |
| 指定 TCP 端口 | tcp.port == 80 | 显示该端口的 TCP 包 |
| Telnet 流量 | tcp.port == 23 | 显示 Telnet 协议包 |
| FTP 流量 | ftp | 显示 FTP 协议包 |
| 多条件组合 | http && ip.src == 192.168.1.100 | 同时满足 HTTP 且源 IP 为指定地址 |
| 排除指定 IP | ip.src != 192.168.1.1 | 排除该 IP 发出的包 |
| 对比维度 | 抓包过滤器 | 显示过滤器 |
|---|---|---|
| 设置时机 | 抓包之前 | 抓包之后 |
| 被过滤的包 | 直接丢弃,不存在 | 仅在界面隐藏,随时可恢复 |
| 语法复杂度 | 简单,仅支持基础协议和端口 | 强大,支持字段级精准筛选 |
| 使用场景 | 流量太大需减负、长时间抓包 | 日常分析、临时筛选 |
| 语法错误提示 | 没提示,抓不到包 | 输入框变红 |
选中某个数据包,界面下方会显示该数据包的详细信息,从底层到上层逐层解析:
| 层级 | 显示内容 | 渗透关注点 |
|---|---|---|
| 数据链路层 | 源 MAC 地址、目标 MAC 地址 | 识别通信设备、ARP 欺骗 |
| 网络层 | 源 IP 地址、目标 IP 地址 | 追踪通信双方、识别攻击来源 |
| 传输层 | 协议类型(TCP/UDP)、源端口、目标端口 | 识别服务类型、端口扫描 |
| 应用层 | 传输的数据内容 | 核心关注:HTTP 明文可见,HTTPS 加密不可见 |
MAC 地址是网卡自带的唯一硬件物理地址,共 6 组十六进制字符,只在局域网内用来定位设备。IP 负责跨网通信,MAC 负责内网直连传输。
IP 地址是设备的逻辑网络编号,用来跨网段、互联网定位设备,分 IPv4/IPv6。IPv4 格式为四段数字,如192.168.2.120,可手动修改。作用是三层路由转发、跨局域网通信。
和 MAC 的区分:MAC 是内网硬件地址,IP 是全网逻辑地址。
端口工作在传输层,作用是区分同一台主机上不同网络程序,让数据精准交给对应软件。形态为 0 到 65535 的数字,TCP/UDP 各自独立端口。
公认端口 0-1023:80 = 网页 HTTP、443 = 加密网页 HTTPS、22 = SSH 远程
临时端口 1024-65535:电脑客户端上网随机占用(如抓包里的 63410)
简单类比:IP 是小区门牌号,端口是住户家门。
渗透测试中,传输层和应用层是最关键的关注点。端口号告诉你对方在跑什么服务,应用层数据则是直接的信息来源。
QQ 默认采用 8000 端口进行 TCP 通信,通过设置精准的显示过滤器可从海量网络数据中快速定位目标流量。
操作步骤:
确保 QQ 客户端完成登录并保持在线
打开 Wireshark,选择当前联网的网卡接口,点击开始抓包
在过滤器输入框填入oicq,精准筛选出 QQ 相关的流量
在 QQ 向好友发送一条任意消息,主动产生网络通信数据
停止抓包后,在列表中查看捕获的数据包,观察 QQ 通信的交互细节
注意:新版本 QQ 可能无法直接使用
oicq过滤,需要输入自己的 QQ 账号作为过滤条件。
实验环境:物理机安装 Wireshark,用 phpStudy 搭建简易登录页面,POST 方式提交账号密码,明文传输。固定账号admin,密码123456。
抓包步骤:
打开 Wireshark,选择本机回环网卡(Loopback),点击开始抓包
浏览器访问 phpStudy 搭建的登录页面
输入任意账号密码,点击登录提交(POST 明文传输)
操作完成后停止抓包,显示过滤器输入http
找到 POST 请求数据包,查看应用层数据,可直接抓到明文账号、密码
关键要点:HTTP 回环抓包必须选择回环网卡(Loopback),不是普通 Wi-Fi/以太网卡,因为 localhost 流量不走物理网卡。这是最容易出错的地方。
结果分析:HTTP 协议全程明文传输,无任何加密。同一网络中的任何人,只要使用抓包工具,就能直接看到你提交的账号密码。
实验环境:物理机安装 Wireshark,虚拟机(Kali Linux)搭建 FTP 服务器(vsftpd),关闭 SSL 加密,创建弱口令测试用户,物理机与虚拟机处于同一局域网。
关键配置(vsftpd.conf):
anonymous_enable=NO
local_enable=YES
ssl_enable=NO(关闭 SSL,强制明文传输,抓包必备)
抓包步骤:
Wireshark 选择网卡开始抓包,显示过滤器输入ftp
物理机打开资源管理器或 CMD,访问虚拟机 FTP 服务器
输入 FTP 账号、弱口令完成登录
查看 FTP 数据包,查找USER和PASS指令
可清晰看到 FTP 登录用户名、密码均以明文传输
FTP 核心问题:账号、密码、文件内容全程明文传输,无任何加密。任何中间人都能抓包窃取。企业生产环境已禁用明文 FTP,改用 SFTP(基于 SSH 加密,端口 22)。
Telnet是远程登录协议,端口 23,全程明文传输,无任何加密。登录账号、密码、敲击的每一条命令全部裸奔。
通俗解读:你远程操作服务器的每一步,都像在大街上喊出来一样,谁都能听见。
抓包步骤:
Kali 安装并开启 Telnet 服务,允许 root 用户登录(实验用)
Wireshark 开启抓包,显示过滤器输入tcp.port == 23
Windows 打开 CMD,输入telnet 虚拟机IP连接 Telnet 服务
输入服务器账号、弱口令登录系统,执行几条命令
停止抓包,分析数据包
关键技巧:Telnet 的交互是逐字符传输的,密码分散在多个包中。单看一个包看不到完整信息,需要右键选择 Follow TCP Stream(追踪 TCP 流)查看完整会话流,才能看到完整的账号、密码和所有命令。
结果:全程账号、密码、操作命令全部明文可见,无任何加密。
Telnet 是安全风险最高的远程管理协议之一。企业生产环境严禁使用 Telnet,必须使用 SSH 协议(端口 22,全程加密)替代。
| 协议 | 端口 | 是否加密 | 抓包结果 |
|---|---|---|---|
| HTTP | 80 | 明文 | 账号密码、请求内容全部可见 |
| FTP | 21 | 明文 | 用户名(USER)、密码(PASS)全部可见 |
| Telnet | 23 | 明文 | 账号密码、每一条命令全部可见 |
| HTTPS | 443 | SSL/TLS 加密 | 抓包只能看到加密乱码 |
| SFTP | 22 | SSH 加密 | 抓包只能看到加密乱码 |
| SSH | 22 | 加密 | 抓包只能看到加密乱码 |
HTTP、FTP、Telnet 均以明文传输账号密码和操作指令,通过 Wireshark 中间人抓包可直接窃取敏感信息。企业生产环境必须禁用这些明文协议,改用 HTTPS、SFTP、SSH 等加密协议。
安全替代关系:
HTTP -> HTTPS
FTP -> SFTP
Telnet -> SSH
案情:某咖啡厅提供免费 Wi-Fi。攻击者连接同一 Wi-Fi 后,打开 Wireshark 进行抓包。发现有用户通过 HTTP 协议登录某网站,攻击者直接从抓包数据中提取到该用户的账号和明文密码,随后登录该用户账户进行非法操作。
攻击链条:
公共 Wi-Fi(无加密)-> 同一局域网 -> 用户用 HTTP 登录 -> 攻击者 Wireshark 抓包 -> 提取明文账号密码 -> 非法登录
对应知识点:
HTTP 明文传输:数据在网络上"裸奔",任何中间人都能查看
共享网络风险:同一 Wi-Fi/局域网内,默认可以监听到广播和本机流量
Wireshark 抓包:不需要任何高级技术,安装即可抓取
核心教训:
不要在公共 Wi-Fi 下访问非 HTTPS 的网站
涉及登录、支付等敏感操作,务必确认网站使用了 HTTPS(浏览器地址栏显示锁形图标)
网站开发者必须将登录、支付等敏感页面强制使用 HTTPS
| 常见错误认知 | 正确理解 |
|---|---|
| "Wireshark 可以抓取局域网内所有设备的流量" | 默认只能抓取经过本机网卡的数据(本机收发 + 广播)。其他设备间的通信包无法直接抓取,需要 ARP 欺骗或端口镜像 |
| "抓包过滤器报错 Wireshark 会提示" | 抓包过滤器语法错误时不会弹窗提示,只是抓不到包。显示过滤器输入框变红才会提示语法错误 |
| "抓完包后直接找账号密码" | 需要先用显示过滤器缩小范围(如 http、ftp、tcp.port == 23),再定位到具体数据包查看应用层 |
| "HTTP 回环抓包选普通网卡就行" | localhost/127.0.0.1 的流量不走物理网卡,必须选择回环网卡(Loopback Adapter)才能抓取 |
| "Telnet 的密码在单个数据包里就能看到" | Telnet 是逐字符传输的,密码分散在多个包中。需要用 Follow TCP Stream 查看完整会话流才能看到完整密码 |
| "FTP 登录后密码就看不到了" | FTP 明文传输全局可见,不仅是密码,后续传输的文件内容、目录列表也全部明文可抓 |
| 知识模块 | 核心内容 | 一句话速记 |
|---|---|---|
| 抓包原理 | 捕获经过本机网卡的数据帧/包,解析内容 | 在网络管路上装个分叉口 |
| Wireshark | 免费开源图形化抓包工具,核心功能:抓包、解析、过滤 | 流量分析入门首选 |
| 抓包过滤器 | 抓包前设置,只抓符合条件的流量,语法简单 | 提前筛选,只收想要的 |
| 显示过滤器 | 抓包后筛选,隐藏无关包,语法强大 | 事后筛选,随时可恢复 |
| 数据包解析 | 链路层 -> 网络层 -> 传输层 -> 应用层,逐层查看 | 从 MAC 到端口到数据 |
| HTTP 抓包 | 回环网卡 + 显示过滤器 http,POST 请求中抓明文密码 | 明文明信片,谁都能看 |
| FTP 抓包 | 显示过滤器 ftp,USER 命令查用户名,PASS 命令查密码 | 快递单上写着收件人信息 |
| Telnet 抓包 | tcp.port == 23 + Follow TCP Stream,密码和命令全部可见 | 远程操作每步都像在喊话 |
| 明文协议总结 | HTTP/FTP/Telnet 明文传输,HTTPS/SFTP/SSH 加密传输 | 明文三大件,全员裸奔 |
| 安全替代 | HTTP -> HTTPS,FTP -> SFTP,Telnet -> SSH | 加密三大件,锁死信息 |
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
已在FreeBuf发表 0 篇文章
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。