网络安全实战第6期:Hydra爆破SSH实战

HTTP vs HTTPS 抓包对比:为什么 TLS 1.3 连证书都看不到

网络安全实战 90 天 · Week 1 破冰 · 难度 ★★★ 进阶 | 关键词:HTTPS TLS 1.3 证书 Wireshark 加密传输

上一篇在 HTTP 里轻松捞到明文密码,那 HTTPS 呢?这篇文章用同一个工具、同一个操作,只把目标从 http 换成 https,对比两次抓包结果的差异。最有意思的发现是:在 TLS 1.3 下,你连服务器的证书都看不到------而这恰恰说明加密做对了。

一、实验设计:只改一个变量

做对比实验的关键是控制变量。这次两次抓包除目标网址外完全相同:同一个 Wireshark、同一个网卡选择逻辑、同样的过滤思路、同样的操作动作(访问页面)。

变量 HTTP 组 HTTPS 组
目标 http://127.0.0.1/login.php https://www.baidu.com
协议 HTTP 明文 TLS 1.3 加密
过滤器 http tls
预期能看到的 完整请求头 + 表单数据 只有握手记录,内容不可读

二、抓 HTTPS 流量

抓公网 HTTPS 需要虚拟机能够上外网,而 Host-Only 模式是上不了网的。所以第一步要改网络模式:

切换网络模式并抓包

text 复制代码
1. 关闭 Kali 虚拟机(改网络模式必须关机)
2. 虚拟机设置 → 网络适配器 → 改为 NAT 模式
3. 开机,确认能上网:ping www.baidu.com
4. sudo wireshark 启动抓包
5. 浏览器访问 https://www.baidu.com
6. 抓完后关机,把网络模式改回 Host-Only

注意 改网络模式必须关机,这是 VMware 的硬性要求。另外抓完记得切回 Host-Only------一直挂在 NAT 上,后面打靶机的实验会连不通,而且攻击流量有外泄风险。

三、用 tls 过滤器看握手过程

抓包开始后访问百度,停止抓包,输入过滤器:

TLS 过滤器

text 复制代码
tls

过滤出来的记录长这样:

抓到的 TLS 记录

text 复制代码
34    TLSv1.3   Client Hello (SNI=www.baidu.com)
36    TLSv1.3   Server Hello
37    TLSv1.3   Change Cipher Spec
38    TLSv1.3   Application Data
40    TLSv1.3   Application Data
42    TLSv1.3   Application Data

对比 HTTP 那次抓到的 POST /login.php,差别一目了然:HTTP 能看到路径、请求头、表单数据;HTTPS 只能看到"有几次握手"和"之后传了几段加密数据",内容全是 Application Data,不可读。

四、为什么连证书都看不到

这是本次实验最反直觉的发现。按教科书的说法,HTTPS 握手时服务器会把证书发给客户端,那 Wireshark 应该能抓到 Certificate 记录才对。但实际抓下来只有 Client Hello 和 Server Hello,没有 Certificate。

原因是 TLS 1.3 的一项重大改进:证书在握手阶段就被加密传输了。

在 TLS 1.2 及更早版本中,服务器发送 Certificate 消息是明文的,任何人抓包都能看到证书内容(包括域名、颁发机构、有效期)。TLS 1.3 把这一步放进了加密通道,旁观者只能看到 SNI(服务器名称指示),也就是 Client Hello 里那个明文的域名。

对比项 TLS 1.2 及更早 TLS 1.3
证书传输 明文可见 加密,抓包看不到
可见信息 域名、证书、颁发机构 只有 SNI 域名
握手往返 2-RTT 1-RTT(支持 0-RTT 恢复)
安全性 较高 更高

所以"看不到证书"不是抓包失败,而是加密生效的证据。想看证书内容,得去浏览器里看------因为浏览器是通信的一方,它本来就能解密。

五、在浏览器里查看证书

地址栏左侧点锁图标,按下面路径进去:

查看证书路径

text 复制代码
锁图标 → 连接安全 → 更多信息 → 查看证书

能看到的关键字段:

字段 含义 示例值
颁发给(Subject) 证书属于哪个域名 www.baidu.com
颁发者(Issuer) 哪个 CA 签发的 DigiCert Inc
有效期 起止时间 通常 1--2 年
公钥 用于密钥交换 RSA / ECDSA 公钥

六、HTTPS 到底解决了什么

用一个比喻概括:HTTP 像寄明信片,路上每个经手的人都能读到内容;HTTPS 像密封信封,外人只能看到收件地址,拆不开。具体来说 HTTPS 解决了三个问题:

威胁 HTTP 下的后果 HTTPS 如何应对
窃听 密码、Cookie 全明文 内容加密,抓包不可读
篡改 运营商可插入广告、改内容 完整性校验,改动即被发现
冒充 DNS 劫持到假网站 证书验证服务器身份

七、踩坑记录

坑 1:Host-Only 模式下上不了网

Host-Only 的设计就是不连外网,这是它的安全特性,不是故障。要抓公网流量必须临时切到 NAT。注意桥接模式虽然也能上网,但会把虚拟机直接暴露在局域网里,做安全实验时不要用。

坑 2:切了 NAT 还是抓不到 tls

改完网络模式后,流量走的是 ens33 而不是 lo。如果 Wireshark 还停留在 lo 上抓,自然什么都没有。切换网络模式后要重新选网卡------这一点和 Day005 的坑是同一个根源:先想清楚流量走哪条路。

坑 3:只有 Client Hello,怀疑抓包不完整

看到没有 Certificate 记录,第一反应是"是不是我漏抓了"。实际上这是 TLS 1.3 的正常行为。验证方法:看记录里的版本号,如果显示 TLSv1.3,就说明是这个原因;如果是 TLSv1.2 却没有证书,那才是真有问题。

坑 4:找不到查看证书的入口

现代浏览器的证书入口藏得比较深,不在设置菜单里,而是在地址栏的锁图标上。Firefox 的路径是:锁图标 → 连接安全 → 更多信息 → 查看证书。

八、附录:CA 机构与 TLS 版本

证书由 CA(证书颁发机构)签发,浏览器内置了一批受信任的 CA 根证书。常见的有:

CA 机构 特点
DigiCert 老牌商业 CA,大型网站常用
Let's Encrypt 免费自动化签发,个人站首选
Comodo / Sectigo 商业 CA,覆盖面广
GlobalSign 欧洲老牌 CA

TLS 各版本现状:

版本 状态 说明
TLS 1.0 / 1.1 已淘汰 存在已知弱点,主流浏览器已停止支持
TLS 1.2 主流 目前使用最广泛
TLS 1.3 最新 握手更快,默认加密更多内容

九、小结

  • 抓 HTTPS 必须让虚拟机能上网,临时切 NAT,抓完切回 Host-Only。

  • TLS 1.3 下看不到证书是正常现象,证书已被加密传输,这是安全性提升而非故障。

  • 抓包能看到的信息量,直接反映了协议的安全强度。

  • HTTP 的三个致命问题------窃听、篡改、冒充------正是 HTTPS 要解决的核心。

Week 1 到这里接近尾声。最后一篇换个方向:从 Web 转到服务,用 Hydra 爆开一台靶机的 SSH。

相关推荐
是真的小外套1 小时前
网络安全实战第5期:Wireshark抓明文密码
安全·web安全·wireshark
学网安的肆伍1 小时前
认证机制攻防学习|PortSwigger Authentication 靶场复现总结(二):用户名枚举进阶
学习·web安全·网络安全·burpsuite·portswigger·认证安全·靶场复现
KeyAction66661 小时前
从西班牙高铁追尾看安全系统设计:当违规指令成为输入,防护逻辑如何兜底
运维·服务器·安全
程序员初一2 小时前
我在 1C1G 的服务器上装了个桌面环境,然后用 VNC 连它,然后我后悔了
linux·ssh
桐盛科技3 小时前
中央空调全链路管控:基于边缘计算的负荷预判与安全联锁实现
物联网·安全·能源·边缘计算
manok3 小时前
软件供应链安全数据周报|2026-10-19 ~ 2026-10-25
安全·供应链安全
迪康coolmu3 小时前
金融客户数据合规落地:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·数据库·经验分享·安全·网络安全·金融
和芯星通unicore4 小时前
汽车GNSS保护等级PL赋能智能辅助驾驶安全
安全·汽车·gnss·智能驾驶·辅助驾驶·驾驶安全
努力实干4 小时前
第二阶段 · 第 7 课:C++ 多线程与线程安全
开发语言·c++·安全