灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:22166回复:1

不知不觉帐号密码被窃:中间人攻击介绍 (图文)

楼主#
更多 发布于:2012-12-13 14:19

在那些好莱坞大片中,总是对于电脑黑客有一些夸大不实的描述,譬如《虎胆龙威4》里,就把黑客神化,短短数秒就能够破解别人的密码、穿越网络防火墙,取得机密资料…。虽然有些夸张,但在现实生活里,技术高深的黑客也确实能在在短短数分钟之内,窃听网络上的一举一动,当然也包括了你刚才输入过的帐号密码!今天本文要解析的内容,就在于如何进行网络窃听,而且神不知、鬼不绝,完全不在被窃听的电脑上留下任何蛛丝马迹!

图片:20121212143430720.jpg

MITM中间人攻击

一、中间人攻击原理

  中间人攻击(Man-in-the-MiddleAttack,简称MITM攻击)是一种通过窃取或窜改通信物理、逻辑链路间接完成攻击行为的网络攻击方法。这种攻击模式通过各种攻击手段入侵控制,或者直接以物理接入方式操控两台通信计算机之间的主机,并通过这台主机达到攻击两台通信计算机中任意一方的目的。这个被攻击者控制的通信节点就是所谓的“中间人”。

  中间人攻击很早就成为了黑客常用的一种攻击手段,其思想可以追溯到上千年前的古代,春秋战国时期窃符救赵的信陵君,窃取兵符控制军队即是针对魏王与军队之间信息传递方式的典型中间人攻击。

图片:20121212143431542.jpg

MITM中间人攻击

  在网络通信系统最被被设计出来时,安全因素并没有被考虑到,互联网工程任务组(IETF)设计的ARP、DNS、DHCP等常用协议都没有考虑网络通信被人恶意窜改的情况,即使在局域网中没有攻击者,只要有个别操作人员错误的配置了网络中的一个非关键结点(如多启动一个DHCP服务器),就有可能影响网络中其它结点的正常网络通信。

  这些早期的协议更无法对简单的物理连接改变而可能引发的安全问题进行防御。网络标准的向下兼容性决定了现代网络继承了这些问题,大家依然会被这些问题困扰。严格说起来,中间人攻击算是一种“概念”,它有很多实现方式。进行攻击的黑客,首先要找到网络协议的漏洞,对中间的网络设备进行偷天换日,神不知鬼不觉的把自己替换成网络传输过程必经的中间站,再纪录下特定网段内的数据包。

中间人攻击难以防御的地方在于:

  1.黑客在进行窃听时,一般网络链接仍能正常运行不会断线,故而少有人会主动发现。

2. 使用者电脑上不会被安装木马或恶意软件,也难以被杀毒软件发现。

3.黑客在欺骗网络协议时,虽然可能会留下一些蛛丝马迹,但由于网络设备不会保留太多纪录档案,事后难以追踪。

4.绝大多数的网络协议,仍然是基于“对方的数据是安全可靠”的假设来运作的,这导致黑客有太多漏洞可以钻,欺骗网络设备、伪装成中间人。

图片:20121212143431111.jpg

搭线窃听与中间人攻击

二、中间人攻击的典型网络环境及其防御

  中间人攻击有两种常见形式:基于监听的信息窃取与身份仿冒,与基于代理的信息窃取与窜改。以下为中间人攻击比较典型方式及其网络环境。

1.基于监听的信息窃取

  在同一个冲突域的局域网络中攻击者只要将网卡设为混杂模式,就可以轻松监听网络中的流量,通过Wireshark,Tcpdump等工具软件就可以过滤出密码、通信内容等敏感信息实现攻击。由于很多通信协议都是以明文来进行传输的,如HTTP、FTP、Telnet等,如果通信数据被监听,就会造成相当大的安全问题。

  通过集线器连接的以太网络或是以太网线路中被恶意物理接入集线器及监听节点就是这种攻击方式的常见网络环境。其防御方法也很简单,就是确保物理连接不被改动,冲突域中不存在第三方节点,如改用计算机直接连接交换机的组网方式。

2. 基于监听的身份仿冒

  在物理上不能保证通信不被监听的情况下,为了保护重要信息不被泄露,网络系统一般会对口令、敏感内容进行加密传输或引入Kerbose、SSL等协议对登录认证等关键通信过程进行加密保护。但是限于性能、效率等因素,并不是所有网络系统都能保证所有传输内容得到加密保护。

  如一般的web网站系统,只会对登录认证过程进行加密,而后续用户与网站的交互采用明文的HTTP协议传输。基于监听的中间人攻击,在口令或认证过程加密的情况下,通过其它技术手段也会对网络造成安全威胁,比较典型的手法是针对HTTPCookie的攻击。

  网站用户在访问网站前常常需要输入用户名与密码。网站会为通过验证的登录用户建立会话,一般会用Cookie(网站储存在用户本地浏览器上的数据,并在每次访问时提交给网站)保持对会话追踪以确认访问者的身份及登陆状态,并根据身份及登录状态为访问者设置访问网站资源的权限。当会话结束时,登陆信息就会被清除,但Cookie可能不会马上失效。

  尽管访问者在浏览网站过程中通常没有意识到这种会话的存在,但它确实发生在每一次的链接点击过程中,是网站中最常见的会话形式。如果能够获取用于维持浏览器和登陆网站间会话状态的Cookie,攻击者可以模拟真实用户的访问,将窃取的Cookie发给网站服务器,这样就能冒充合法的会话连接获得在网站资源的相应权限(如图1所示)。攻击者一旦通过窃取Cookie完成对网站服务器的会话欺骗,受害者在网站上的个人数据将被任意查看和修改,受害者的帐号也可能被用于基于社交网络的攻击与诈骗。

图片:20121212143431635.jpg

图1基于Cookie的中间人攻击示意图

  防御基于Cookie的中间人攻击,服务器端可以把Cookie的有效时间设置为较短时间,以使已经结束会话的缓存状态尽快失效。另外,服务器或IPS设备在处理Cookie时,可以绑定一些用户信息如IP地址等,并对其进行验证,这样可以有效防止相当一部分的攻击。作为Web用户,在登录后结束浏览时,应该使用退出功能明确通知服务器会话已经结束,使Cookie立即失效

3.基于中间代理的中间人攻击

1)ARP欺骗(ARP Spoofing)

  ARP欺骗是现代中间人攻击中最早出现的攻击形式,能够让与受害主机在相同子网的攻击者主机窃取目标主机的所有网络流,是比较容易执行且相当有效的中间人攻击形式。

  从ARP工作机制可以看出,ARP协议简单易用,但是却没有任何安全机制,使用ARP协议的设备会接受在任何时间源自任何主机的ARP更新。这意味着攻击者可以向子网内另一台主机发送ARP数据包,并迫使目标主机更新其ARP缓存。ARP欺骗主要有仿冒网关或仿冒用户两类,由于子网内的主机与外网通信均需要经过网关,仿冒网关而进行的中间人攻击最为常见。

图片:20121212143431642.jpg

ARP欺骗

图片:20121212143431143.jpg

ARP欺骗

  如图2所示,因为攻击主机A仿冒网关向主机B发送了伪造的网关ARP报文,导致主机B的ARP表中记录了错误的网关地址映射关系,正常的数据从而不能被网关接收。主机B原本通过网关发送到外网的所有数据报文都按照学习到的错误ARP表项发送到了攻击者控制的主机A,此时主机A可以把主机B的报文解析修改后转发给网关,并在后续将网关转回的外网回应报文解析修改后转发给主机B,成为主机B与网关之间的“中间人”。

  防御ARP欺骗的主要方法有在整个局域网使用静态ARP,及通过主机ARP防护软件或交换机、路由器对ARP进行过滤及安全确认,其核心目标均是建立正确的ARP表项。静态ARP通过手动配置或自动学习后再固化的方式,在主机及网络设备上建立静态不变的正确ARP表项。

图片:20121212143432566.png

图2 ARP欺骗仿冒网关示意图

  而伪造ARP报文的检测,需要由主机或网络设备提借额外的安全功能。伪造ARP报文具有如下特点:源MAC地址/目的MAC地址和以太网帧封装中的源MAC地址/目的MAC地址不一致;源IP地址和源MAC地址的映射关系不是合法用户真实的映射关系。精确的过滤与安全确认能有效的阻止ARP欺骗的发生。


 
2) DNS欺骗(DNS Spoofing)
  DNS欺骗是攻击者冒充域名服务器让目标主机把域名转换成错误IP的一种欺骗行为,其目的是让受害主机把通过域名查询到的IP地址设为攻击者所控制主机的IP地址。如果受到此类攻击,用户通过域名连接的目标服务器可能被悄无声息地替换成了伪造服务。攻击者也可以在伪服务器上把受害主机的流量解析修改后冒名转发给真实的服务器,由“冒名顶替者”变为“中间人”。
  DNS欺骗攻击是一种非常危险的中间人攻击,它容易被攻击者利用并且窃取用户的机密信息。其常被用于与钓鱼网站配合,如将用户对银行主页的访问重定向到攻击者所控制的钓鱼网站,骗取银行密码等。

图片:20121212143432631.jpg


DNS欺骗 DNSSpoofing

  DNS机制中,DNS服务器包含着一个数据库,域名与IP地址相互映射关系存储在其中。在正常的通信中,当主机不知道域名对应的IP地址时,主机发送解析请求到DNS服务器,DNS服务器响应正确的IP地址信息。如果当前DNS服务器没有相应的映射数据,它将发送请求到外部其它DNS服务器来获取正确的响应。DNS欺骗的关键是让受害主机或没有映射数据的DNS服务器相信伪造的DNS响应的真实性。
  实现DNS欺骗攻击的方法有多种,比较典型的为DNS劫持(又称域名劫持)。每个通过互联网发送的DNS请求都包含一个独特的识别码,其目的在于辨识、查询和响应,并将对应的查询和响应配对在一起。这就意味着,如果攻击主机可以拦截目标设备发送的DNS查询,攻击者只需要做一个包含该识别码的假数据包,这样目标计算机就会根据识别码而接受攻击主机发送的查询结果,从而达到DNS劫持的目的。
  实现DNS劫持的前提条件是,攻击者对网络的数据包有一定的拦截能力,如通过ARP缓存投毒干扰DNS查询的响应报文,以便乘机伪造替换。其它常见的DNS欺骗方法有:直入侵接控制DNS服务器或利用漏洞修改域名IP映射,通过病毒等手段修改主机上的DNS配置文件等。DNS欺骗攻击的直接检测相当困难,因为这种攻击大多数本质都是被动的,只能通过提高DNS服务器及整体网络环境的安全性来实现。

3)SSL欺骗(SSL Spoofing)
  SSL(Secure SocketsLayer,安全套接层)及其继任者TLS(Transport LayerSecurity 传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密,通常与其他协议结合使用以确保该协议提供服务的安全部署,如SMTPS、IMAPS及最常见的HTTPS,最终目的是在不够安全的网络中创建安全通道。SSL欺骗通常以伪造的服务器,使用明文协议如HTTP与客户端建立连接,同时顶替客户端与真正的服务建立使用SSL加密的连接,受害者与合法服务器之间的全部通信经过“中间人”的代理转发,如图3所示。
  由于人们信赖SSL所加密的服务,SSL欺骗造成的危害更大,往往能够窃取到更机密的数据。实现SSL欺骗的前提,是使客户端的加密连接请求转向到攻击者控制的服务器上,这常常要依赖于前面介绍的ARP期骗、DNS期骗等攻击形式。从本质上来说,SSL欺骗攻击的不是SSL协议本身,而是承载SSL的网络通道。SSL欺骗的检测也相当困难,因为在服务器看来,攻击会话只是与客户端的正常通信,它无法辨别哪些与客户端通信会话被攻击者代理了。
  在客户端看来,从协议角度出发,客户端与中间人的会话均是正常的明文协议通信。还好客户端可以通过加密连接是否转成非加密连接及计算连接建立所花费时间来判断是否受到SSL欺骗攻击。SSL欺骗攻击与大多数中间在人攻击一样,都是从网络内部发起,内部网络很安全,那么这种攻击的发生的可能性就很小。

图片:20121212143432506.jpg


图3SSL欺骗攻击示意图

三、结束语
  中间人攻击是一种非常危险的攻击形式,时常与钓鱼网站、挂马网站等攻击形式结合,让你不知不觉中泄漏电脑里的秘密,另外它会主动引导你下载病毒木马或木码。更重要的是,这种攻击可能将我们认为绝对安全的网络连接变成完全被人监听控制的连接,使得网络连接的私密性得不到保障,造成重要数据轻易落入攻击者之手。由于网络环境的复杂性,我们有必要对中间人攻击有进行了解,具备初步判断网络连接安全性的能力。
文章来源:H3C攻防团队《MITM攻击简介》
参考资料:MMDays 《神不知,鬼不觉,你的帐号密码是如何被窃听的?中间人攻击〈Man-in-the-middleAttack〉初探》


喜欢1 评分0

最新喜欢:

coolmancoolma...
hzai
侠客
侠客
  • 注册日期2011-08-18
  • 发帖数94
  • QQ
  • 火币134枚
  • 粉丝11
  • 关注9
沙发#
发布于:2012-12-13 14:30
         

回复(0) 喜欢(0)     评分
游客

返回顶部