导言
前面的文章中,我们已经探讨了ARP缓存中毒、DNS欺骗以及会话劫持这四种中间人攻击形式。在本文中,我们将研究SSL欺骗,这也是最厉害的中间人攻击方式,因为SSL欺骗可以通过利用人们信赖的服务来发动攻击。首先我们先讨论SSL连接的理论及其安全性问题,然后看看SSL连接如何被利用来发动攻击,最后与大家分享关于SSL欺骗的检测以及防御技巧。
SSL和HTTPS
安全套接字层(SSL)或者传输层安全(TLS)旨在通过加密方式为网络通信提供安全保障,这种协议通常与其他协议结合使用以确保协议提供服务的安全部署,例如包括SMTPS、IMAPS和最常见的HTTPS,最终目的在于在不安全网络创建安全通道。
在本文中,我们将重点探讨通过HTTP(即HTTPS)对SSL的攻击,因为这是SSL最常用的形式。可能你还没有意识到,你每天都在使用 HTTPS。大多数主流电子邮件服务和网上银行程序都是依靠HTTPS来确保用户浏览器和服务器之间的安全通信。如果没有HTTPS技术,任何人使用数据包嗅探器都能窃取用户网络中的用户名、密码和其他隐藏信息。
使用HTTPS技术是为了确保服务器、客户和可信任第三方之间数据通信的安全。例如,假设一个用户试图连接到Gmail电子邮箱账户,这就涉及到几个不同的步骤,如图1所示。
图1: HTTPS通信过程
图1显示的过程并不是特别详细,只是描述了下列几个基本过程:
编缉推荐阅读以下文章
1. 客户端浏览器使用HTTP连接到端口80的http://mail.google.com
2. 服务器试用HTTP代码302重定向客户端HTTPS版本的这个网站
3. 客户端连接到端口443的网站https://mail.google.com
4. 服务器向客户端提供包含其电子签名的证书,该证书用于验证网址
5. 客户端获取该证书,并根据信任证书颁发机构列表来验证该证书
6. 加密通信建立
如果证书验证过程失败的话,则意味着无法验证网址的真实度。这样的话,用户将会看到页面显示证书验证错误,或者他们也可以选择冒着危险继续访问网站,因为他们访问的网站可能是欺诈网站。
HTTPS被攻破
这个过程一直被认为是非常安全的,直到几年前,某攻击者成功对这种通信过程进行劫持,这个过程并不涉及攻击SSL本身,而是对非加密通信和加密通信间的“网桥”的攻击。
知名安全研究人员Moxie Marlinspike推测,在大多数情况下,SSL从未直接遭遇威胁问题。SSL连接通常是通过HTTPS发起的,因为用户通过HTTP302响应代码被定位到HTTPS或者他们点击连接将其定位到一个HTTPS站点,例如登录按钮。这就是说,如果攻击者攻击从非安全连接到安全连接的通信,即从HTTP 到HTTPS,则实际上攻击的是这个“网桥”,SSL连接还未发生时的中间人攻击。为了有效说明这个概念,Moxie开发了SSLstrip工具,也就是我们下面将要使用的工具。
这个过程非常简单,与我们前面文章所提到的攻击有所类似,如图2所示。
图2:劫持HTTPS通信
编缉推荐阅读以下文章
图2中描述的过程如下:
1. 客户端与web服务器间的流量被拦截
2. 当遇到HTTPS URS时,sslstrip使用HTTP链接替换它,并保存了这种变化的映射
3. 攻击机模拟客户端向服务器提供证书
4. 从安全网站收到流量提供给客户端
这个过程进展很顺利,服务器认为其仍然在接收SSL流量,服务器无法辨别任何改变。用户可以感觉到唯一不同的是,浏览器中不会标记HTTPS,所以某些用户还是能够看出不对劲。
使用SSLStrip
实现这个过程是使用SSLstrip工具,大家可以点击此处下载并测试。这个工具只能在Linux运行,大家也可以下载运行Backtrack 4。
安装好SSLstrip后,有几个必须做的事情。首先,你使用的Linux系统必须被配置为IP转发,实现这个配置,需要输入命令echo "1" > /proc/sys/net/ipv4/ip_forward,如下图所示。
图3:启用IP转发
完成上述操作后,我们必须强制将所有被拦截的HTTP流量路由到SSLstrip将会监听的端口,这通过修改iptables防火墙配置来实现,使用命令iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 如下图所示。
编缉推荐阅读以下文章
图4:配置IPTables来正确路由HTTP流量
当然,你需要使用你选择的随机端口来替换,当完成这些配置后,我们就可以运行sslstrip,并将其配置为监听由命令sslstrip -l 指定的端口了。
图5:使用sslstrip
这个过程的最后步骤就是配置ARP欺骗来拦截目标主机的流量,在前面的文章中我们使用的是windows中的Cain和Abel来实现,但是在这篇文章中,我们将使用arpspoof工具,该工具是内置在Backtrack 4,使用命令arpspoof -i -t 。
图6:配置ARP欺骗
使用这个命令会将为目标客户端的IP地址执行这些行动的网络接口替换为,而将目标使用的网关路由器的IP地址替换为
完成上述操作后,你就可以主动劫持任何建立的SSL连接。你可以使用数据包器从流量来收集密码、个人身份信息、信用卡号码等。
如何抵御SSL劫持攻击
如上所述,这种方式的SSL劫持根本无法从服务器端检测出来,因为在服务器开来,这只是与客户端的正常通信,它无法辨识是从代理来与客户端通信。不过我们还是可以从客户端的角度来检测和抵御这种类型的攻击。
使用HTTPS确保安全连接- 当你执行上诉描述的攻击时,攻击破坏了连接的安全性,这种安全性在浏览器中有所反映。这意味着如果你登录网上银行时,发现只是标准的HTTP连接,那么很有可能正受到攻击。不管你使用何种浏览器,你都要确保你知道如何识别安全连接与不安全连接。
将网上银行保存为主页-攻击者拦截家庭网络比拦截工作网络的可能性更低,这并不是因为家庭电脑更加安全(实际上,家庭电脑更加不安全),而是因为家庭网络中往往只有一两台电脑,除非家庭成员发动内部攻击。在公司网络中,你无法知晓网络情况或者分公司网络情况,所以潜在攻击源更多。会话劫持最大的目标之一就是网上银行,但是其他任何个人信息都有可能被劫持。
确保内部机器的安全 - 这种类型的攻击大多数都是从网络内部发动攻击的,如果你的网络设备很安全,那么那些被感染主机被利用发动会话劫持攻击的可能性就很小。
总结
这种类型的中间人攻击形式是最致命的攻击形式,因为这种攻击将我们认为安全的连接变成完全不安全的连接。我们每天访问的网站都不一定安全,如果这些网络连接是不安全的,将会使重要个人信息落入他人之手。因此,我们必须具备识别安全连接和不安全连接的能力。
编缉推荐阅读以下文章
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!