网络安全实战第5期:Wireshark抓明文密码

Wireshark 抓明文密码:选对网卡 + 过滤器 + 协议分层全解析

网络安全实战 90 天 · Week 1 破冰 · 难度 ★★★ 进阶 | 关键词:Wireshark 抓包 明文传输 HTTP 网络嗅探

上一篇用 Burp 抓到密码,那是"代理"的功劳------请求本来就经过它。这篇换一种更底层的方式:不配任何代理,直接用 Wireshark 在网络层嗅探,把数据包从网卡上原样捞下来。重点讲清三件事:网卡怎么选、过滤器怎么写、协议分层怎么展开。

一、Burp 和 Wireshark 的区别

两者都能看到明文密码,但原理完全不同,适用场景也不一样:

对比项 Burp Suite Wireshark
工作方式 中间人代理,主动介入 网卡嗅探,被动旁观
是否需要配置 两端都要配代理 不需要任何配置
能否修改请求 能(这是核心能力) 不能,只能看
能否看到 HTTPS 明文 能(装了 CA 证书) 不能,TLS 加密后是乱码
适用场景 Web 漏洞测试 协议分析、流量取证

一句话总结:Burp 是主动参与的中间人,Wireshark 是躲在旁边的旁观者。旁观者的优势是"不需要目标配合"------只要能碰到流量就能抓。

二、启动 Wireshark 并选网卡

Kali 里用 sudo 启动(抓包需要原始套接字权限):

启动 Wireshark

bash 复制代码
sudo wireshark

启动后第一屏就是网卡列表,这是整个实验最关键的选择。选错网卡,后面什么都抓不到。

DVWA 部署位置 流量实际走哪 应该选的网卡
本机 Docker(127.0.0.1) 本机环回 lo
Host-Only 虚拟机 虚拟网卡 ens33 / eth0
桥接或 NAT 物理/虚拟网卡 对应网卡名

本文的 DVWA 是用 Docker 起在本机的,访问地址是 127.0.0.1,所以流量走的是环回接口,必须选 lo。如果这时候选了 ens33,抓半天一个 HTTP 包都不会有。

三、重现登录动作

选好网卡开始抓包,然后在浏览器里访问 DVWA 登录页,用 admin / password 正常登录一次。

关键 抓包前一定要把 Firefox 的代理关掉,让它直连 127.0.0.1。否则流量会先经过 Burp 再转发,Wireshark 抓到的是"浏览器↔Burp"这一段,虽然也能看到密码,但端口和路径会和真实情况不一致,容易把结论搞混。

四、用过滤器定位目标流量

刚打开抓包时列表是滚动的,几百上千个包混在一起没法看。用显示过滤器收窄范围:

显示过滤器

text 复制代码
http                          # 只看 HTTP 协议
http.request.method == "POST"  # 只看 POST 请求

过滤之后,找到那一行登录请求:

抓到的三条关键记录

text 复制代码
1258  127.0.0.1 → 127.0.0.1  HTTP   POST /login.php HTTP/1.1
1260  127.0.0.1 → 127.0.0.1  HTTP   302 Found
1262  127.0.0.1 → 127.0.0.1  HTTP   GET /index.php HTTP/1.1

三行的顺序很有信息量:先 POST 提交凭据 → 服务器返回 302 重定向 → 浏览器再 GET 首页。302 就是"登录成功,请去首页"的信号。

五、展开协议分层,找到明文密码

点中那条 POST 请求,下方的详情面板会按协议逐层展开:

协议分层结构

text 复制代码
Frame               ← 物理层信息:抓包时间、包长度
  Ethernet II       ← 以太网帧头:源/目的 MAC
    Internet Protocol v4  ← IP 层:源/目的 IP
      Transmission Control Protocol  ← TCP 层:源/目的端口
        Hypertext Transfer Protocol  ← HTTP 层:请求头
          HTML Form URL Encoded      ← 表单数据:真正的密码在这

展开最底层的 HTML Form URL Encoded,就能看到表单字段的键值对:

明文凭据

text 复制代码
Form item: "username" = "admin"
Form item: "password" = "password"

这就是整条链路的终点。数据从浏览器发出,经过 TCP/IP 封装,在网络上是完全透明的------任何能接触到这段流量的人,都能用同样的方式读到它。

六、踩坑记录

坑 1:选错网卡,抓到零个 HTTP 包

最常见的问题。DVWA 跑在 127.0.0.1 上,这是本机环回地址,流量根本不经过物理网卡。如果选了 ens33 或 eth0,抓到的全是无关的背景流量,一个 HTTP 都不会有。

判断方法很简单:先明确"我要抓的流量走哪条路"。本机服务走 lo,跨机器走对应网卡。不确定就先都抓一遍,看哪个有数据。

坑 2:Burp 还开着,流量被拆成两段

我第一次做这个实验时,Burp 的代理没关。结果 Wireshark 抓到的是 Firefox 发给 Burp 的请求(目标端口 8080),而不是发给 DVWA 的请求(目标端口 80)。虽然内容一样,但端口不对,而且多了一层无关转发,看协议分层时会多出一段。

解决:抓包前把浏览器代理关掉,让它直连目标。

坑 3:流量太多,找不到目标包

不做过滤的话,列表几秒钟就刷出上千行。必须用显示过滤器。常用的几个够用了:

过滤器 作用
http 只看 HTTP 协议
http.request.method == "POST" 只看 POST 请求
ip.addr == 192.168.56.102 只看与某 IP 相关的流量
tcp.port == 80 只看 80 端口
tcp.port == 8080 只看 8080 端口(Burp 代理)
http contains "password" 内容包含 password 的包
!arp and !dns 排除 ARP 和 DNS 噪音

坑 4:找不到 HTML Form URL Encoded 这一层

有时展开 HTTP 层后只有请求头,看不到表单数据。两个原因:

  • 选的不是 POST 请求。GET 请求的参数在 URL 里,不在请求体,所以没有表单层。

  • 看错了面板。详情面板分三块(Packet Details / Packet Bytes),表单数据在中间那块,需要继续往下展开 HTTP 节点。

还有个更快的办法:右键那条包 → Follow → HTTP Stream,直接把整个请求和响应拼成可读文本。

七、常用快捷键

快捷键 功能
Ctrl + E 开始 / 停止抓包
Ctrl + F 在当前结果中查找
Ctrl + Shift + O 跳到下一个包
Ctrl + Alt + Shift + R 重新开始抓包

八、小结

  • Wireshark 是被动嗅探,不需要目标配合,但看不到加密后的内容。

  • 网卡选择是第一道门槛:本机服务走 lo,跨机器走实际网卡。

  • 显示过滤器能把上千个包收窄到几条,是必备技能。

  • HTTP 明文传输意味着密码在网络上是裸奔的,这就是必须上 HTTPS 的根本原因。

下一篇把 HTTP 和 HTTPS 放在一起对比抓包,看看加密之后 Wireshark 到底还能看到什么。

相关推荐
学网安的肆伍1 小时前
认证机制攻防学习|PortSwigger Authentication 靶场复现总结(二):用户名枚举进阶
学习·web安全·网络安全·burpsuite·portswigger·认证安全·靶场复现
KeyAction66661 小时前
从西班牙高铁追尾看安全系统设计:当违规指令成为输入,防护逻辑如何兜底
运维·服务器·安全
桐盛科技3 小时前
中央空调全链路管控:基于边缘计算的负荷预判与安全联锁实现
物联网·安全·能源·边缘计算
manok3 小时前
软件供应链安全数据周报|2026-10-19 ~ 2026-10-25
安全·供应链安全
迪康coolmu3 小时前
金融客户数据合规落地:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·数据库·经验分享·安全·网络安全·金融
和芯星通unicore4 小时前
汽车GNSS保护等级PL赋能智能辅助驾驶安全
安全·汽车·gnss·智能驾驶·辅助驾驶·驾驶安全
努力实干4 小时前
第二阶段 · 第 7 课:C++ 多线程与线程安全
开发语言·c++·安全
LMT_Lanmantech4 小时前
Synopsys Verdi安全合规:风险、审计与应对
安全·软件许可证