本系列将讨论最常被使用的中间人攻击形式,包括ARP缓存中毒攻击(ARP Cache Poisoning)、DNS欺骗(DNS Spoofing)、HTTP会话劫持等。windows
导言缓存
用于攻击我的以及企业的最多见的网络攻击方式就是中间人攻击(MITM)。做为一种主动窃听攻击方式,中间人攻击方式主要是经过与目标机器创建链接并在目标机器间传递信息来发动攻击。在这种状况下,用户会认为本身正在与另外一名用户直接通讯,而实际上,经过主机的通讯流量正在对用户执行攻击。最终结果是,攻击主机不只能截取重要信息,并且可以注入数据流来进一步控制受害用户。安全
在本系列文章中,咱们将讨论最常被使用的中间人攻击形式,包括ARP缓存中毒攻击(ARP Cache Poisoning)、DNS欺骗(DNS Spoofing)、HTTP会话劫持等。在实际状况中,你会发现,大多数受害用户使用的都是windows系统,所以咱们将详细分析运行不一样版本的windows系统时中间人攻击的状况。网络
ARP缓存中毒并发
在本文中咱们将主要探讨ARP缓存中毒,这也是现代中间人攻击中最先出现的攻击形式,ARP缓存中毒(有时也被称为ARP中毒路由)可以让与受害用户在相同子网的攻击者窃取用户的全部网络留恋。咱们首先讨论这种攻击形式是由于,它是最容易执行的攻击形式,但也是最有效的攻击形式。工具
正常ARP通讯编码
ARP协议的主要目的在于简化OSI模型第二层和第三层间地址的翻译。第二层(也就是数据链层)使用MAC地址,以便硬件设备能够在小范围内直接进行通讯。第三层(也就是网络层)使用IP地址(最多见的形式)来建立连通世界各地用户的大规模网络。数据链层直接处理链接在一块儿的设备,而网络层处理那些直接以及间接链接的设备,每一层都有本身的地址形式,他们必须合做才能实现网络通讯。正是因为这个缘由,ARP与RFC826(以太网地址解析协议)一块儿被建立。翻译
图1:ARP通讯过程接口
ARP运做其实是围绕两个数据包进行的:ARP请求和ARP回复。请求和回复的目的在于肯定与特定IP地址相关的硬件MAC地址,这样流量才可以在网络上找到目的地。请求数据包被发送给网络段上的每台设备并发出信息“个人IP地址是XX.XX.XX.XX,个人MAC地址是XX:XX:XX:XX:XX:XX,我须要将信息发送给这个IP地址XX.XX.XX.XX,可是我不知道它的硬件地址,请这个IP地址将其MAC地址回复给我?”回复会以ARP回复数据包的形式,并回复说“你好,传递设备,我就是你要找的IP地址XX.XX.XX.XX,个人MAC地址是XX:XX:XX:XX:XX:XX”,收到回复后,传递设备会更新其ARP缓存表,而后设备就能够与另外一台设备进行通讯。进程
缓存中毒
ARP缓存中毒利用了ARP协议不安全的本质。ARP协议有别于其余协议,例如DNS协议能够配置为仅接受安全动态更新,而使用ARP的设备则能够接受任什么时候间的更新。这意味着任何机器均可以向另外一台主机发送ARP回复数据包,并迫使主机更新其ARP缓存。发送ARP回复而没有生成请求时,此时被成为无效ARP。当恶意攻击者以这种方式放置一些无效ARP时,用户就会认为他们正在与另外一用户通讯,而其实是与窃取信息的攻击者通讯。
图2: ARP缓存中毒截取通讯
使用Cain & Abel工具
让咱们从具体状况来分析,攻击者会使用几种不一样的工具执行必要的步骤以毒化受害者的ARP缓存,咱们将使用常见的安全工具Cain & Abel来模拟缓存中毒攻击。Cain & Abel是很是有效的安全工具,而且安装过程也十分简单。
在开始模拟缓存中毒前,你须要收集一些信息,包括你这次模拟攻击但愿使用的网络接口,以及两个通讯受害者IP地址。
当你第一次打开Cain & Abel工具时,你会发如今窗口上方有不少选项卡,咱们只须要使用Sniffer选项,当你点击此按钮,你会看到一个空表。为了完成此表格,你须要激活该程序的内置嗅探器而且扫描你的网络。
图3: Cain&Abel工具的Sniffer选项
点击工具栏上的第二个图标,相似于网络卡。首次操做时,会要求你选择你但愿嗅探的接口,这个接口应该是链接到你将要执行ARP缓存中毒攻击的接口。选择好接口后,点击确认来激活Cain & Abel的内置嗅探器。此时,工具栏图标会变暗。为网络中有效主机创建列表,你须要点击相似+符号的主要工具栏,点击确认。
图4:扫描主机
以前的空表格如今以及填满了全部链接网络上的主机名,以及MAC地址、IP地址以及供应商验证信息,这些是发动ARP缓存中毒攻击的有利信息。
在程序窗口的地步,你会看到一组标签,这些标签将引领你到嗅探器的其余窗口。如今你已经创建了主机列表,你须要从ARP标签开始,点击标签以切换到ARP窗口。
打开ARP窗口后,你会看到两个空表格:上表和下表。设置好这两个表格后,上表会显示ARP缓存中毒涉及的设备,下表会显示中毒机器间的全部通讯。
点击程序的标准工具栏上的+符号的图标以继续设置ARP中毒,显示的窗口有并排两个选择列,在左侧,你会看到全部有效主机的列表。点击其中一个IP地址,你会看到,右边窗口显示的是网络中全部主机,而没有显示你所选择的IP地址。在右边窗口,点击另外一个受害者的IP地址,而后点击确认。
图5:选择缓存中毒的攻击主机
这些设备的IP地址如今都被列在主要程序窗口的上表中,为了完成这个操做,请点击标准工具栏的黄黑色放射符号。这样将激活Cain & Abel的ARP缓存中毒功能并容许系统成为受害机器间全部通讯的中间人。若是你很好奇背后发生的状况,能够安装wireshark并窃听接口,你很快会看到受害电脑间的通讯。
图6:ARP通讯注射
完成以上操做后,只要再次点击黄黑色发射符号就能够中止ARP缓存中毒。
防护ARP缓存中毒
从防护者的角度来看ARP缓存中毒攻击彷佛处于不利的位置,ARP进程在后台进行,咱们很难控制。并无万能的解决方案,你能够采用主动和被动的立场来考虑ARP缓存中毒。
保护局域网安全
ARP缓存中毒的确是截取位于相同局域网的两台主机间的通讯的可行的攻击技术,但只有当网络上的本地设备比破坏,受信任用户有恶意企图,或者某用户试图将不可信设备接入网络时,ARP缓存中毒攻击才可能形成真正的威胁。尽管咱们每每将主要精力集中在保护网络外围安全上,但抵御内部威胁以及确保内部安全绝对能够更好的确保系统安全。
硬编码ARP缓存
抵御ARP请求和回复的动态本质所带来的威胁的方法是使这个进程不那么动态,这是由于windows系统主机容许其余静态表项进入ARP缓存,你能够经过打开命令提示符并输入arp-a命令来查看windows系统的ARP缓存。
图7:查看ARP缓存
能够经过使用这个命令arp –s 来添加表项到这个列表。
若是你的网络配置并非常常变更,作静态ARP表项的列表并经过自动化脚本将表项部署到客户端是彻底可行的。这能够确保设备始终依赖本地ARP缓存,而不是依赖ARP请求和回复。
使用第三方程序监测ARP通讯
抵御ARP缓存中毒攻击的另外一种方法是被动方法,监控主机的网络流量,这能够经过入侵检测系统(如Snort)或者其余监测工具(如xARP)来进行监控流量。对于一台主机而言,这多是很简单的事情,可是对于整个网络而言就不是那么简单了。
总结
ARP缓存中毒是中间人攻击中最有效的攻击方式,由于它很是容易执行,对于现代网络是巨大的威胁,而且这种攻击方式很难检测和防护。
备注:转自IT专家网