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

安全 黑客攻防
在现实生活里,技术高深的黑客也确实能在在短短数分钟之内,窃听网络上的一举一动,当然也包括了你刚才输入过的帐号密码!今天本文要解析的内容,就在于如何进行网络窃听,而且神不知、鬼不绝,完全不在被窃听的电脑上留下任何蛛丝马迹!

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

MITM中间人攻击

一、中间人攻击原理

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

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

MITM中间人攻击

MITM中间人攻击

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

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

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

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

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

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

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

搭线窃听与中间人攻击

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

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

1.基于监听的信息窃取

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

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

2. 基于监听的身份仿冒

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

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

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

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

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

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

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

1) ARP欺骗(ARP Spoofing)

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

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

ARP欺骗
ARP欺骗

ARP欺骗

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

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

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

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

2) DNS欺骗(DNS Spoofing)

DNS欺骗是攻击者冒充域名服务器让目标主机把域名转换成错误IP的一种欺骗行为,其目的是让受害主机把通过域名查询到的IP地址设为攻击者所控制主机的IP地址。如果受到此类攻击,用户通过域名连接的目标服务器可能被悄无声息地替换成了伪造服务。攻击者也可以在伪服务器上把受害主机的流量解析修改后冒名转发给真实的服务器,由“冒名顶替者”变为“中间人”。

DNS欺骗攻击是一种非常危险的中间人攻击,它容易被攻击者利用并且窃取用户的机密信息。其常被用于与钓鱼网站配合,如将用户对银行主页的访问重定向到攻击者所控制的钓鱼网站,骗取银行密码等。

中间人攻击MITM

图3 SSL欺骗攻击示意图

三、结束语

中间人攻击是一种非常危险的攻击形式,时常与钓鱼网站、挂马网站等攻击形式结合,让你不知不觉中泄漏电脑里的秘密,另外它会主动引导你下载病毒木马或木码。更重要的是,这种攻击可能将我们认为绝对安全的网络连接变成完全被人监听控制的连接,使得网络连接的私密性得不到保障,造成重要数据轻易落入攻击者之手。由于网络环境的复杂性,我们有必要对中间人攻击有进行了解,具备初步判断网络连接安全性的能力。

责任编辑:蓝雨泪 来源: 红黑联盟
相关推荐

2012-03-12 16:23:24

2014-03-17 09:16:08

2013-11-11 10:36:04

2019-01-28 08:59:59

2020-05-07 15:24:22

中间人攻击MITM

2017-02-16 08:53:42

2014-05-15 10:20:07

2014-03-20 10:26:58

2015-01-05 13:29:37

2015-12-29 10:41:16

2014-11-21 11:46:55

2010-06-13 12:06:41

2016-09-27 22:45:47

2010-09-25 14:50:34

2009-08-14 11:25:38

2010-01-07 16:19:53

Ubuntu root

2020-12-28 10:23:00

中间人攻击漏洞Kubernetes

2012-11-20 13:06:57

2010-12-24 10:26:19

2017-04-19 12:36:40

点赞
收藏

51CTO技术栈公众号