• 解析中间人攻击(4/4)---SSL欺骗


      本文我们将探讨SSL欺骗和SSL连接理论及其安全性问题。

      导言

      前面的文章中,我们已经探讨了ARP缓存中毒、DNS欺骗以及会话劫持这四种中间人攻击形式。在本文中,我们将研究SSL欺骗,这也是最厉害的中间人攻击方式,因为SSL欺骗可以通过利用人们信赖的服务来发动攻击。首先我们先讨论SSL连接的理论及其安全性问题,然后看看SSL连接如何被利用来发动攻击,最后与大家分享关于SSL欺骗的检测以及防御技巧。

      SSL和HTTPS

      安全套接字层(SSL)或者传输层安全(TLS)旨在通过加密方式为网络通信提供安全保障,这种协议通常与其他协议结合使用以确保协议提供服务的安全部署,例如包括SMTPS、IMAPS和最常见的HTTPS,最终目的在于在不安全网络创建安全通道。

      在本文中,我们将重点探讨通过HTTP(即HTTPS)对SSL的攻击,因为这是SSL最常用的形式。可能你还没有意识到,你每天都在使用HTTPS。大多数主流电子邮件服务和网上银行程序都是依靠HTTPS来确保用户浏览器和服务器之间的安全通信。如果没有HTTPS技术,任何人使用数据包嗅探器都能窃取用户网络中的用户名、密码和其他隐藏信息。

      使用HTTPS技术是为了确保服务器、客户和可信任第三方之间数据通信的安全。例如,假设一个用户试图连接到Gmail电子邮箱账户,这就涉及到几个不同的步骤,如图1所示。

      HTTPS通信过程

      图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所示。

    劫持HTTPS通信

      图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,如下图所示。

    启用IP转发

      图3:启用IP转发

      完成上述操作后,我们必须强制将所有被拦截的HTTP流量路由到SSLstrip将会监听的端口,这通过修改iptables防火墙配置来实现,使用命令iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 如下图所示。

    配置IPTables来正确路由HTTP流量

      图4:配置IPTables来正确路由HTTP流量

      当然,你需要使用你选择的随机端口来替换,当完成这些配置后,我们就可以运行sslstrip,并将其配置为监听由命令sslstrip -l 指定的端口了。

    使用sslstrip

      图5:使用sslstrip

      这个过程的最后步骤就是配置ARP欺骗来拦截目标主机的流量,在前面的文章中我们使用的是windows中的Cain和Abel来实现,但是在这篇文章中,我们将使用arpspoof工具,该工具是内置在Backtrack 4,使用命令arpspoof -i -t 。

    配置ARP欺骗

      图6:配置ARP欺骗

      使用这个命令会将为目标客户端的IP地址执行这些行动的网络接口替换为,而将目标使用的网关路由器的IP地址替换为

      完成上述操作后,你就可以主动劫持任何建立的SSL连接。你可以使用数据包器从流量来收集密码、个人身份信息、信用卡号码等。

      如何抵御SSL劫持攻击

      如上所述,这种方式的SSL劫持根本无法从服务器端检测出来,因为在服务器开来,这只是与客户端的正常通信,它无法辨识是从代理来与客户端通信。不过我们还是可以从客户端的角度来检测和抵御这种类型的攻击。

      使用HTTPS确保安全连接- 当你执行上诉描述的攻击时,攻击破坏了连接的安全性,这种安全性在浏览器中有所反映。这意味着如果你登录网上银行时,发现只是标准的HTTP连接,那么很有可能正受到攻击。不管你使用何种浏览器,你都要确保你知道如何识别安全连接与不安全连接。

      将网上银行保存为主页-攻击者拦截家庭网络比拦截工作网络的可能性更低,这并不是因为家庭电脑更加安全(实际上,家庭电脑更加不安全),而是因为家庭网络中往往只有一两台电脑,除非家庭成员发动内部攻击。在公司网络中,你无法知晓网络情况或者分公司网络情况,所以潜在攻击源更多。会话劫持最大的目标之一就是网上银行,但是其他任何个人信息都有可能被劫持。

      确保内部机器的安全 - 这种类型的攻击大多数都是从网络内部发动攻击的,如果你的网络设备很安全,那么那些被感染主机被利用发动会话劫持攻击的可能性就很小。

      总结

      这种类型的中间人攻击形式是最致命的攻击形式,因为这种攻击将我们认为安全的连接变成完全不安全的连接。我们每天访问的网站都不一定安全,如果这些网络连接是不安全的,将会使重要个人信息落入他人之手。因此,我们必须具备识别安全连接和不安全连接的能力。

    备注:转自IT专家网

  • 相关阅读:
    Bzoj4627 [BeiJing2016]回转寿司
    Bzoj1901 Zju2112 Dynamic Rankings
    COGS728. [网络流24题] 最小路径覆盖问题
    Bzoj4568 [Scoi2016]幸运数字
    Bzoj2728 [HNOI2012]与非
    HDU4609 3-idiots
    Bzoj2194 快速傅立叶之二
    Bzoj2179 FFT快速傅立叶
    模拟52 题解
    模拟51 题解
  • 原文地址:https://www.cnblogs.com/Alim/p/5340760.html
Copyright © 2020-2023  润新知