使用SSL通信的HTTPS网页,也难逃sslstrip攻击,获取敏感数据 « 黑客联盟[民间 公益 非盈利]尚武精神

首页 » 黑客新闻 » 使用SSL通信的HTTPS网页,也难逃sslstrip攻击,获取敏感数据

使用SSL通信的HTTPS网页,也难逃sslstrip攻击,获取敏感数据

20-02-05 07:41 0 RSS 2.0
本文仅用于讨论网络安全技术,以保护信息安全为目的,请勿用于非法用途!

SSL原理

SSL的作用是为了传输敏感信息(比如凭证)提供安全可靠的保障,确保用户使用浏览器和远程服务器之间传输的数据是安全可信的,传输的数据不会被恶意窃取。

当我们访问一个https类型的网站,浏览器首先是向服务器发送HTTP层面的请求,所求SSL证书,一旦服务器返回的证书验证通过,浏览器就会接受服务器下发的证书,然后浏览器将通知服务器,而服务器此时就会返回一个数字签名确认消息,从此两者开始进行SSL安全通信!传输的数据就得到了安全保障!

比如访问一个https类型的网页,登录个人账号,如果这个网页返回的证书验证没能和浏览器收录的证书匹配,就会弹出证书风险提示,假如进一步继续访问,你输入的用户和密码就不再安全,很有可能被窃取!

https

大多数操作系统都会自动给各大浏览器预先配置好可信的CA证书权威机构列表清单,只有被这个清单可信、记录在案的服务器网站证书才能建立SSL通信,否则继续访问就会在浏览器自动弹出“连接可能是安全的,也可能不是。请自担风险”这个证书风险提示!其实我们确实可以等待对方单击忽视风险提示,继续访问网页的方式来截获对方数据,但是大部分人此时就会警惕,不会继续访问警告提醒的网页,即使网页看起来是正常的,因为谁都不知道继续在一个证书提示风险的网页上输入个人信息,会不会造成信息泄露?

SSLStrip原理

Win7靶机此时需要访问远程服务器上的某个网页,上面讲过,浏览器首先会自动进行http层面的发送数据到外网,从服务器进行证书验证,验证成功才开始进行SSL加密通信!此时,我们如果使用SSL Strip让kali充当中间人,让kali把win7浏览器刚开始进行的http连接截获,之后win7访问外网提交的数据都只会先和kali进行http通信,自然这一个连接就不会弹出证书风险提示,可以捕获敏感数据。而另一边kali负责流量转发和原来的目标服务器进行正常的HTTPS通信,但是win7靶机的浏览器用户应该是不会发现这个微妙变化的,此时所有敏感数据可截取了。

证书系统

总的来说,SSL Strip的优点就是在充当中间人攻击的时候,不会在对方电脑上提示风险警告!一边负责和靶机之间进行http明文传输,kali能够截获数据。而另一边是正常的https通信!

成功测试的前提

如果靶机win7在浏览器地址栏输入的是 带https的网址,对不起,win7浏览器首先不会进行http的发起,再转到https通信的,而是直接进行https通信,此时无法截获数据!

直接使用https

上图,就是正常打开集客家的网站,网址前缀有https的!

不要灰心,大多数人,是不可能去输入https这个前缀的。

因为在浏览器地址栏中输入jikejia.cn也能跳转到集客家的网站,只是这个过程中多了一步:浏览器首先进行http的请求,然后才是证书握手验证成功后进行SSL HTTPS的通信,要知道就是利用这个设计缺陷,SSL Strip攻击才有发挥用武之地,一边和win7进行http通信,另一边是和服务器进行https连接!

即使不使用https,也能成功访问

再看看这里的上图,发现没有了https,已经被kali 的SSL Strip攻击剔除了HTTPS,也就是说win7是和kali进行着http通信,但这个网页依然有效,而且不会引起任何怀疑!

在修改后的http类型网站中,点击任何该官网的链接文字,都不会再出现https前缀,也就是说win7靶机访问的这个网站之后的通信都会被kali截获。

SSL Strip攻击演示

  • 开启kali的IP转发(截获时,能让对方继续上网)

echo 1 > /proc/sys/net/ipv4/ip_forward

  • 建立防火墙规则:

iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT –to-port 8080

此时kali的防火墙规则就是把访问kali80端口(HTTPS)的这些流量重新转发到另外一个端口8080(任意即可)上,下面,我们再在这个8080端口上使用今天的主角——sslstrip,实现截取服务器发回的https类型流量,然后替换成http无加密的流量,最后转发给win7,这样既保证了win7能正常上网,而我们的kali又能截取敏感数据!

  • 在设置防火墙之后的8080端口中开启sslstrip侦听:

sslstrip -l 8080

  • 使用ARP欺骗,截获流量:

arpspoof -i eth0 -t 192.168.31.16 192.168.31.1 冒充网关

arpspoof -i eth0 -t 192.168.31.16 192.168.31.1 冒充win7

  • 打开win7靶机,模拟浏览https类型网站

这里只能在浏览器输入“jikejia.cn” 。

上面讲过:一般人输入网址,是不可能连https一起写入的。

win7模拟访问

win7靶机浏览——jikejia.cn,如图。

在账号登录中,输入公司名称、以及凭证。

被替换后的集客家登录页面

点击登录,然后前往kali的主文件夹找到一个文件sslstrip.log的文件,如图:

找到sslstrip生成的饥捕获日志

双击打开这个sslstrip.log文件,红色乱码不要管,往下翻,就可以看到:

箭头数据就是捕获的凭证

这找到这样的POST类型数据,就能找到jikejia.cn提交的用户名laowang和密码123456789!

由于这个文件是实时写入数据的,所以会弹出打开文件错误的提示,不用管,找到用户名和密码就关掉即可!

通过以上这个例子,使用ssltrip可以提取https类型网站的敏感用户信息和密码,当然有的密码经过了加密方式,大家可以将加密的数据复制到cmd5.com上进行解密,简单点的常见的加密都是可以解密的!有的无法解密。如下图我对某一个管理系统网站(暂时不可泄露)进行了上面的方法进行sslstrip攻击,只要在win7靶机上浏览这个管理网站的地址,截获出来的密码如图:MTIzNDU2。

捕获的加密密码

使用在线解密,即可知道使用了base64加密!

秘钥是123456

清除防火墙规则

测试完毕,创建的防火墙规则也要即使清除!

iptables -t nat -L (查询当前防火墙规则)

iptables -t nat -D PREROUTING 1 (删除当前防火墙规则)


到目前为止,我们学会了SSLStrip攻击使用了SSL验证通信的HTTPS类型网站,凡是对方访问网址时没有键入https://前缀,在这里输入的用户凭证都会被sslstrip截取,甚至可以直接显示明文密码,有的则需要解密。

网络安全我想说

想系统学习kali渗透、web渗透、安卓渗透等相关技术,请关注作者,私信我获取。欢迎在下方评论区留言讨论!

联系我 Contact Me

回到页首