什么是中间人攻击
中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。然后入侵者把这台计算机模拟一台或两台原始计算机,使“中间人”能够与原始计算机建立活动连接并允许其读取或修改传递的信息,然而两个原始计算机用户却认为他们是在互相通信。通常,这种“拦截数据——修改数据——发送数据”的过程就被称为“会话劫持”(SessionHijack)。
中间人攻击的简介
中间人攻击(Man-in-the-Middle Attack, MITM)是一种由来已久的网络入侵手段,并且在今天仍然有着广泛的发展空间,如SMB会话劫持、DNS欺骗等攻击都是典型的MITM攻击。简而言之,所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。随着计算机通信网技术的不断发展,MITM攻击也越来越多样化。最初,攻击者只要将网卡设为混杂模式,伪装成代理服务器监听特定的流量就可以实现攻击,这是因为很多通信协议都是以明文来进行传输的,如HTTP、FTP、Telnet等。后来,随着交换机代替集线器,简单的嗅探攻击已经不能成功,必须先进行ARP欺骗才行。如今,越来越多的服务商(网上银行,邮箱登陆)开始采用加密通信,SSL(Secure Sockets Layer 安全套接层)是一种广泛使用的技术,HTTPS、FTPS等都是建立在其基础上的。
ssl/tls中间人攻击漏洞怎么修复
解析最厉害的中间人攻击方式之SSL欺骗导言在本文中,我们将研究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的4.服务器向客户端提供包含其电子签名的证书,该证书用于验证网址5.客户端获取该证书,并根据信任证书颁发机构列表来验证该证书6.加密通信建立如果证书验证过程失败的话,则意味着无法验证网址的真实度。这样的话,用户将会看到页面显示证书验证错误,或者他们也可以选择冒着危险继续访问网站,因为他们访问的网站可能是欺诈网站。HTTPS被攻破这个过程一直被认为是非常安全的,直到几年前,某攻击者成功对这种通信过程进行劫持,这个过程并不涉及攻击SSL本身,而是对非加密通信和加密通信间的“网桥”的攻击。知名安全研究人员MoxieMarlinspike推测,在大多数情况下,SSL从未直接遭遇威胁问题。SSL连接通常是通过HTTPS发起的,因为用户通过HTTP302响应代码被定位到HTTPS或者他们点击连接将其定位到一个HTTPS站点,例如登录按钮。这就是说,如果攻击者攻击从非安全连接到安全连接的通信,即从HTTP到HTTPS,则实际上攻击的是这个“网桥”,SSL连接还未发生时的中间人攻击。为了有效说明这个概念,Moxie开发了SSLstrip工具,也就是我们下面将要使用的工具。这个过程非常简单,与我们前面文章所提到的攻击有所类似,如图2所示。图2:劫持HTTPS通信图2中描述的过程如下:1.客户端与web服务器间的流量被拦截2.当遇到HTTPSURS时,sslstrip使用HTTP链接替换它,并保存了这种变化的映射3.攻击机模拟客户端向服务器提供证书4.从安全网站收到流量提供给客户端这个过程进展很顺利,服务器认为其仍然在接收SSL流量,服务器无法辨别任何改变。用户可以感觉到唯一不同的是,浏览器中不会标记HTTPS,所以某些用户还是能够看出不对劲。使用SSLStrip实现这个过程是使用SSLstrip工具。这个工具只能在Linux运行,大家也可以下载运行Backtrack4。安装好SSLstrip后,有几个必须做的事情。首先,你使用的Linux系统必须被配置为IP转发,实现这个配置,需要输入命令echo“1“》/proc/sys/net/ipv4/ip_forward,如下图所示。图3:启用IP转发完成上述操作后,我们必须强制将所有被拦截的HTTP流量路由到SSLstrip将会监听的端口,这通过修改iptables防火墙配置来实现,使用命令iptables-tnat-APREROUTING-ptcp--destination-port80-jREDIRECT--to-port如下图所示。图4:配置IPTables来正确路由HTTP流量当然,你需要使用你选择的随机端口来替换,当完成这些配置后,我们就可以运行sslstrip,并将其配置为监听由命令sslstrip-l指定的端口了。图5:使用sslstrip这个过程的最后步骤就是配置ARP欺骗来拦截目标主机的流量,在前面的文章中我们使用的是windows中的Cain和Abel来实现,但是在这篇文章中,我们将使用arpspoof工具,该工具是内置在Backtrack4,使用命令arpspoof-i-t。图6:配置ARP欺骗使用这个命令会将为目标客户端的IP地址执行这些行动的网络接口替换为,而将目标使用的网关路由器的IP地址替换为完成上述操作后,你就可以主动劫持任何建立的SSL连接。你可以使用数据包器从流量来收集密码、个人身份信息、信用卡号码等。如何抵御SSL劫持攻击如上所述,这种方式的SSL劫持根本无法从服务器端检测出来,因为在服务器开来,这只是与客户端的正常通信,它无法辨识是从代理来与客户端通信。不过我们还是可以从客户端的角度来检测和抵御这种类型的攻击。使用HTTPS确保安全连接-当你执行上诉描述的攻击时,攻击破坏了连接的安全性,这种安全性在浏览器中有所反映。这意味着如果你登录网上银行时,发现只是标准的HTTP连接,那么很有可能正受到攻击。不管你使用何种浏览器,你都要确保你知道如何识别安全连接与不安全连接。将网上银行保存为主页-攻击者拦截家庭网络比拦截工作网络的可能性更低,这并不是因为家庭电脑更加安全(实际上,家庭电脑更加不安全),而是因为家庭网络中往往只有一两台电脑,除非家庭成员发动内部攻击。在公司网络中,你无法知晓网络情况或者分公司网络情况,所以潜在攻击源。会话劫持最大的目标之一就是网上银行,但是其他任何个人信息都有可能被劫持。确保内部机器的安全-这种类型的攻击大多数都是从网络内部发动攻击的,如果你的网络设备很安全,那么那些被感染主机被利用发动会话劫持攻击的可能性就很小。总结这种类型的中间人攻击形式是最致命的攻击形式,因为这种攻击将我们认为安全的连接变成完全不安全的连接。我们每天访问的网站都不一定安全,如果这些网络连接是不安全的,将会使重要个人信息落入他人之手。因此,我们必须具备识别安全连接和不安全连接的能力。