2008年11月11日星期二
彻底解决局域网ARP攻击
现在最常用的基本对治方法是“ARP双向绑定”。
由于ARP攻击往往不是病毒造成的,而是合法运行的程序(外挂、网页)造成的,所杀毒软件多数时候束手无策。
所谓“双向绑定”,就是再路由器上绑定ARP表的同时,在每台电脑上也绑定一些常用的ARP表项。
“ARP双向绑定”能够防御轻微的、手段不高明的ARP攻击。ARP攻击程序如果没有试图去更改绑定的ARP表项,那么ARP攻击就不会成功;如果攻击手段不剧烈,也欺骗不了路由器,这样我们就能够防住50%ARP攻击。
但是现在ARP攻击的程序往往都是合法运行的,所以能够合法的更改电脑的ARP表项。在现在ARP双向绑定流行起来之后,攻击程序的作者也提高了攻击手段,攻击的方法更综合,另外攻击非常频密,仅仅进行双向绑定已经不能够应付凶狠的ARP攻击了,仍然很容易出现掉线。
于 是我们在路由器中加入了“ARP攻击主动防御”的功能。这个功能是在路由器ARP绑定的基础上实现的,原理是:当网内受到错误的ARP广播包攻击时,路由 器立即广播正确的ARP包去修正和消除攻击包的影响。这样我们就解决了掉线的问题,但是在最凶悍的ARP攻击发生时,仍然发生了问题----当ARP攻击 很频密的时候,就需要路由器发送更频密的正确包去消除影响。虽然不掉线了,但是却出现了上网“卡”的问题。
所以,我们认为,依靠路由器实现“ARP攻击主动防御”,也只能够解决80%的问题。
为了彻底消除ARP攻击,我们在此基础上有增加了“ARP攻击源攻击跟踪”的功能。对于剩下的强悍的ARP攻击,我采用“日志”功能,提供信息方便用户跟踪攻击源,这样用户通过临时切断攻击电脑或者封杀发出攻击的程序,能够解决问题。
彻底解决ARP攻击
事实上,由于路由器是整个局域网的出口,而ARP攻击是以整个局域网为目标,当ARP攻击包已经达到路由器的时候,影响已经照成。所以由路由器来承担防御ARP攻击的任务只是权宜之计,并不能很好的解决问题。
我们要真正消除ARP攻击的隐患,安枕无忧,必须转而对“局域网核心”――交换机下手。由于任何ARP包,都必须经由交换机转发,才能达到被攻击目标,只要交换机据收非法的ARP包,哪么ARP攻击就不能造成任何影响。
我们提出一个真正严密的防止ARP攻击的方案,就是在每台接入交换机上面实现ARP绑定,并且过滤掉所有非法的ARP包。这样可以让ARP攻击足不能出户,在局域网内完全消除了ARP攻击。
因为需要每台交换机都具有ARP绑定和相关的安全功能,这样的方案无疑价格是昂贵的,所以我们提供了一个折衷方案。
经济方案
我们只是中心采用能够大量绑定ARP和进行ARP攻击防御的交换机――Netcore 7324NSW,这款交换机能够做到ARP绑定条目可以达到1000条,因此基本上可以对整网的ARP进行绑定,同时能杜绝任何非法ARP包在主交换机进行传播。
这样如果在强力的ARP攻击下,我们观察到的现象是:ARP攻击只能影响到同一个分支交换机上的电脑,这样可能被攻击到的范围就大大缩小了。当攻击发生时,不可能造成整个网络的问题。
在此基础上,我们再补充“日志”功能和“ARP主动防御”功能,ARP攻击也可以被完美的解决。
ARP攻击最新动态
最近一段时间,各网吧发现的ARP攻击已经升级,又一波ARP攻击的高潮来临。
这次ARP攻击发现的特征有:
1、 速度快、效率高,大概在10-20秒的时间内,能够造成300台规模的电脑掉线。
2、 不易发现。在攻击完成后,立即停止攻击并更正ARP信息。如果网内没有日志功能,再去通过ARP命令观察,已经很难发现攻击痕迹。
3、 能够破解最新的XP和2000的ARP补丁,微软提供的补丁很明显在这次攻击很脆弱,没有作用。
4、 介质变化,这次攻击的来源来自私服程序本身(不是外挂)和P2P程序。
局域网arp地址欺骗解决办法
【故障原因】
局域网内有人使用ARP欺骗的木马程序(比如:魔兽世界,天堂,劲舞团等盗号的软件,某些外挂中也被恶意加载了此程序)。
【故障原理】
要了解故障原理,我们先来了解一下ARP协议。
在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。
ARP 协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个 主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发 送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下所示。
主机 IP地址 MAC地址
A 192.168.16.1 aa-aa-aa-aa-aa-aa |
从上面可以看出,ARP协议的基础就是信任局域网内所有的人,那么就很容易实现在以太网上的ARP欺骗。对目标A进行欺骗,A去 Ping主机C却发送到了DD-DD-DD-DD-DD-DD这个地址上。如果进行欺骗的时候,把C的MAC地址骗为DD-DD-DD-DD-DD- DD,于是A发送到C上的数据包都变成发送给D的了。这不正好是D能够接收到A发送的数据包了么,嗅探成功。
A对这个变化一点都没有意识到,但是接下来的事情就让A产生了怀疑。因为A和C连接不上了。D对接收到A发送给C的数据包可没有转交给C。
做“man in the middle”,进行ARP重定向。打开D的IP转发功能,A发送过来的数据包,转发给C,好比一个路由器一样。不过,假如D发送ICMP重定向的话就中断了整个计划。
D 直接进行整个包的修改转发,捕获到A发送给C的数据包,全部进行修改后再转发给C,而C接收到的数据包完全认为是从A发送来的。不过,C发送的数据包又直 接传递给A,倘若再次进行对C的ARP欺骗。现在D就完全成为A与C的中间桥梁了,对于A和C之间的通讯就可以了如指掌了。
【故障现象】
当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。
切换到病毒主机上网后,如果用户已经登陆了服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录服务器,这样病毒主机就可以盗号了。
由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的木马程序停止运行时,用户会恢复从路由器上网,切换过程中用户会再断一次线。
【HiPER用户快速发现ARP欺骗木马】
在路由器的“系统历史记录”中看到大量如下的信息(440以后的路由器软件版本中才有此提示):
MAC Chged 10.128.103.124 |
如果是在路由器的“系统历史记录”中看到大量MAC Old地址都一致,则说明局域网内曾经出现过ARP欺骗(ARP欺骗的木马程序停止运行时,主机在路由器上恢复其真实的MAC地址)。
【在局域网内查找病毒主机】
在上面我们已经知道了使用ARP欺骗木马的主机的MAC地址,那么我们就可以使用NBTSCAN工具来快速查找它。
NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP/和MAC地址。
命 令:“nbtscan -r 192.168.16.0/24”(搜索整个192.168.16.0/24网段, 即192.168.16.1-192.168.16.254);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137 网段,即192.168.16.25-192.168.16.137。输出结果第一列是IP地址,最后一列是MAC地址。
NBTSCAN的使用范例:
假设查找一台MAC地址为“000d870d585f”的病毒主机。
1)将压缩包中的nbtscan.exe 和cygwin1.dll解压缩放到c:下。
2)在Windows开始—运行—打开,输入cmd(windows98输入“command”),在出现的DOS窗口中输入:C: btscan -r 192.168.16.1/24(这里需要根据用户实际网段输入),回车。
3)通过查询IP--MAC对应表,查出“000d870d585f”的病毒主机的IP地址为“192.168.16.223”。
【解决思路】
1、不要把你的网络安全信任关系建立在IP基础上或MAC基础上,(rarp同样存在欺骗的问题),理想的关系应该建立在IP+MAC基础上。
2、设置静态的MAC-->IP对应表,不要让主机刷新你设定好的转换表。
3、除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。
4、使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。
5、使用"proxy"代理IP的传输。
6、使用硬件屏蔽主机。设置好你的路由,确保IP地址能到达合法的路径。(静态配置路由ARP条目),注意,使用交换集线器和网桥无法阻止ARP欺骗。
7、管理员定期用响应的IP包中获得一个rarp请求,然后检查ARP响应的真实性。
8、管理员定期轮询,检查主机上的ARP缓存。
9、使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。
【HiPER用户的解决方案】
建议用户采用双向绑定的方法解决并且防止ARP欺骗。
1、在PC上绑定路由器的IP和MAC地址:
1)首先,获得路由器的内网的MAC地址(例如HiPER网关地址192.168.16.254的MAC地址为0022aa0022aa)。
2)编写一个批处理文件rarp.bat内容如下:
@echo off |
将这个批处理软件拖到“windows--开始--程序--启动”中。
3) 如果是网吧,可以利用收费软件服务端程序(pubwin或者万象都可以)发送批处理文件rarp.bat到所有客户机的启动目录。Windows2000 的默认启动目录为“C:\Documents and SettingsAll Users「开始」菜单程序启动”。
2、在路由器上绑定用户主机的IP和MAC地址(440以后的路由器软件版本支持):
在HiPER管理界面--高级配置--用户管理中将局域网每台主机均作绑定。
局域网受到ARP欺骗攻击的解决办法
【故障现象】当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和安全网关,让所有上网的流量必须经过病毒主机。其他用户原来直接通过安全网关上网现在转由通过病毒主机上网,切换的时候用户会断一次线。
切换到病毒主机上网后,如果用户已经登陆了传奇服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录传奇服务器,这样病毒主机就可以盗号了。
由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的木马程序停止运行时,用户会恢复从安全网关上网,切换过程中用户会再断一次线。
【快速查找】在WebUIà系统状态à系统信息à系统历史记录中,看到大量如下的信息:
MAC SPOOF 192.168.16.200
MAC Old 00:01:6c:36:d1:7f
MAC New 00:05:5d:60:c7:18
这个消息代表了用户的MAC地址发生了变化,在ARP欺骗木马开始运行的时候,局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的MAC New地址都一致为病毒主机的MAC地址)。
同时在安全网关的WebUIà高级配置à用户管理à读ARP表中看到所有用户的MAC地址信息都一样,或者在WebUIà系统状态à用户统计中看到所有用户的MAC地址信息都一样。
如果是在WebUIà系统状态à系统信息à系统历史记录中看到大量MAC Old地址都一致,则说明局域网内曾经出现过ARP欺骗(ARP欺骗的木马程序停止运行时,主机在安全网关上恢复其真实的MAC地址)。
在上面我们已经知道了使用ARP欺骗木马的主机的MAC地址,那么我们就可以使用NBTSCAN(下载地址:http://www.utt.com.cn/upload/nbtscan.rar)工具来快速查找它。
NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”传奇木马”在做怪,可以找到装有木马的PC的IP/和MAC地址。
命令:“nbtscan -r 192.168.16.0/24”(搜索整个192.168.16.0/24网段, 即192.168.16.1-192.168.16.254);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137 网段,即192.168.16.25-192.168.16.137。输出结果第一列是IP地址,最后一列是MAC地址。
NBTSCAN的使用范例:
假设查找一台MAC地址为“000d870d585f”的病毒主机。
1)将压缩包中的nbtscan.exe 和cygwin1.dll解压缩放到c:\下。
2)在Windows开始à运行à打开,输入cmd(windows98输入“command”),在出现的DOS窗口中输入:C:\nbtscan -r 192.168.16.1/24(这里需要根据用户实际网段输入),回车。
3)通过查询IP--MAC对应表,查出“000d870d585f”的病毒主机的IP地址为“192.168.16.223”。
【解决办法】
采用双向绑定的方法解决并且防止ARP欺骗。
1、在PC上绑定安全网关的IP和MAC地址:
1)首先,获得安全网关的内网的MAC地址(例如HiPER网关地址192.168.16.254的MAC地址为0022aa0022aa
2)编写一个批处理文件rarp.bat内容如下:
@echo off
arp -d
arp -s 192.168.16.254 00-22-aa-00-22-aa
将文件中的网关IP地址和MAC地址更改为实际使用的网关IP地址和MAC地址即可。
将这个批处理软件拖到“windowsà开始à程序à启动”中。
3)如果是网吧,可以利用收费软件服务端程序(pubwin或者万象都可以)发送批处理文件rarp.bat到所有客户机的启动目录。 Windows2000的默认启动目录为“C:\Documents and Settings\All Users「开始」菜单程序启动”。
2、在安全网关上绑定用户主机的IP和MAC地址:
在WebUIà高级配置à用户管理中将局域网每台主机均作绑定。局域网ARP欺骗的应对
一、故障现象及原因分析
情况一、当局域网内某台主机感染了ARP病毒时,会向本局域网内(指某一网段,比如:10.10.75.0这一段)所有主机发送ARP欺骗攻击谎称自己是这个网端的网关设备,让原本流向网关的流量改道流向病毒主机,造成受害者正常上网。
情况二、局域网内有某些用户使用了ARP欺骗程序(如:网络执法官,QQ盗号软件等)发送ARP欺骗数据包,致使被攻击的电脑出现突然不能上网,过一段时间又能上网,反复掉线的现象。
关于APR欺骗的具体原理请看我收集的资料ARP欺骗的原理
二、故障诊断
如果用户发现以上疑似情况,可以通过如下操作进行诊断:
点击“开始”按钮->选择“运行”->输入“arp–d”->点击“确定”按钮,然后重新尝试上网,如果能恢复正常,则说明此次掉线可能是受ARP欺骗所致。
注:arp-d命令用于清除并重建本机arp表。arp–d命令并不能抵御ARP欺骗,执行后仍有可能再次遭受ARP攻击。
三、故障处理
1、中毒者:建议使用趋势科技SysClean工具或其他杀毒软件清除病毒。
2、被害者:(1)绑定网关mac地址。具体方法如下:
1)首先,获得路由器的内网的MAC地址(例如网关地址10.10.75.254的MAC地址为0022aa0022aa)。2)编写一个批处理文件AntiArp.bat内容如下:
@echooffarp-darp-s10.10.75.25400-22-aa-00-22-aa |
(2)使用ARP防火墙(例如AntiArp)软件抵御ARP攻击。
AntiArp软件会在提示框内出现病毒主机的MAC地址
四,找出ARP病毒源
第一招:使用Sniffer抓包
在网络内任意一台主机上运行抓包软件,捕获所有到达本机的数据包。如果发现有某个IP不断发送
ARP Request请求包,那么这台电脑一般就是病毒源。原理:无论何种ARP病毒变种,行为方式有两种,一是欺骗网关,二是欺骗网内的所有主机。最终的结 果是,在网关的ARP缓存表中,网内所有活动主机的MAC地址均为中毒主机的MAC地址;网内所有主机的ARP缓存表中,网关的MAC地址也成为中毒主机 的MAC地址。前者保证了从网关到网内主机的数据包被发到中毒主机,后者相反,使得主机发往网关的数据包均发送到中毒主机。
第二招:使用arp- a命令任意选两台不能上网的主机,在DOS命令窗口下运行arp-a命令。例如在结果中,两台电脑除了网关的IP,MAC地址对应项,都包含了 192.168.0.186的这个IP,则可以断定192.168.0.186这台主机就是病毒源。原理:一般情况下,网内的主机只和网关通信。正常情况 下,一台主机的ARP缓存中应该只有网关的MAC地址。如果有其他主机的MAC地址,说明本地主机和这台主机最后有过数据通信发生。如果某台主机(例如上 面的192.168.0.186)既不是网关也不是服务器,但和网内的其他主机都有通信活动,且此时又是ARP病毒发作时期,那么,病毒源也就是它了。
第 三招:使用tracert命令在任意一台受影响的主机上,在DOS命令窗口下运行如下命令:tracert61.135.179.148。假定设置的缺省 网关为10.8.6.1,在跟踪一个外网地址时,第一跳却是10.8.6.186,那么,10.8.6.186就是病毒源。原理:中毒主机在受影响主机和 网关之间,扮演了“中间人”的角色。所有本应该到达网关的数据包,由于错误的MAC地址,均被发到了中毒主机。此时,中毒主机越俎代庖,起了缺省网关的作 用。
黑客技术-ARP欺骗
本来不打算写这接下的一系列讨论欺骗的文章(计划中有arp欺骗、icmp欺骗、路由rip欺骗、ip地址欺骗等),这主要是自己有些担心有些人会 给网管增加日常工作量,但是想想还是写的好,因为通常在你猛打完补丁后,你可能觉得你的系统安全了,但是,实际上,打补丁只是安全措施里的一个很基本的步 骤而已,通常一个hacker要进入你的系统,他所要做的并不是你打补丁就可以避免的,象这些欺骗都要求你必须掌握相当的网络底层知识和合理安排物理布线 才可阻止得了的。特别是多种手法混用的时候,特别要说明的是:有些人往往以为会使用某些工具入侵就觉得自己是个hacker,呵呵。。其实,我认为这只是 入门而已(有些是连门都找不到),通过本文,我想让人们知道,一个hacker在真正入侵系统时,他并不是依靠别人写的什么软件的。更多是靠对系统和网络 的深入了解来达到这个目的。
我想我会尽可能将我知道的写出来,同时也将尽可能把防止欺骗的解决办法写出来,当然,这只是我知道的而已,如果有失误的地方,欢迎指正。呵呵。。
首先还是得说一下什么是ARP,如果你在UNIXShell下输入arp-a(9x下也是),你的输出看起来应该是这样的:
| Interface:xxx.xxx.xxx.xxx InternetAddressPhysicalAddressType |
这里第一列显示的是ip地址,第二列显示的是和ip地址对应的网络接口卡的硬件地址(MAC),第三列是该ip和mac的对应关系类型。
可见,arp是一种将ip转化成以ip对应的网卡的物理地址的一种协议,或者说ARP协议是一种将ip地址转化成MAC地址的一种协议,它靠维持在内存中保存的一张表来使ip得以在网络上被目标机器应答。
为什么要将ip转化成mac呢?呵呵。。解释下去太多了,简单的说,这是因为在tcp网络环境下,一个ip包走到哪里,要怎么走是靠路由表定义,但 是,当ip 包到达该网络后,哪台机器响应这个ip包却是靠该ip包中所包含的mac地址来识别,也就是说,只有mac地址和该ip包中的mac地址相同的机器才会应 答这个ip包(好象很多余,呵呵。。),因为在网络中,每一台主机都会有发送ip包的时候,所以,在每台主机的内存中,都有一个arp-->mac 的转换表。通常是动态的转换表(注意在路由中,该arp表可以被设置成静态)。也就是说,该对应表会被主机在需要的时候刷新。这 捎谝姨谧油闵系拇涫强?8位的mac地址而决定的。
通常主机在发送一个ip包之前,它要到该转换表中寻找和ip包对应的mac地址,如果没有找到,该主机就发送一个ARP广播包,看起来象这样子:
“我是主机xxx.xxx.xxx.xxx,mac是xxxxxxxxxxx,ip为xxx.xxx.xxx.xx1的主机请报上你的mac来”
ip为xxx.xxx.xxx.xx1的主机响应这个广播,应答ARP广播为:
“我是xxx.xxx.xxx.xx1,我的mac为xxxxxxxxxx2”
于是,主机刷新自己的ARP缓存。然后发出该ip包。
了解这些常识后,现在就可以谈在网络中如何实现ARP欺骗了,可以看看这样
一个例子:
一个入侵者想非法进入某台主机,他知道这台主机的火墙只对192.0.0.3(假设)这个ip开放23口(telnet),而他必须要使用telnet来进入这台主机,所以他要这么做:
1、他先研究192.0.0.3这台主机,发现这台95的机器使用一个oob就可以让他死掉。
2、于是,他送一个洪水包给192.0.0.3的139口,于是,该机器应包而死。
3、这时,主机发到192.0.0.3的ip包将无法被机器应答,系统开始更新自己的arp对应表。将192.0.0.3的项目搽去。
4、这段时间里,入侵者把自己的ip改成192.0.0.3
5、他发一个ping(icmp0)给主机,要求主机更新主机的arp转换表。
6、主机找到该ip,然后在arp表中加如新的ip--$#@62;mac对应关系。
7、火墙失效了,入侵的ip变成合法的mac地址,可以telnet了。
(好象很罗嗦,呵呵。。不过这是很典型的例子)
现在,假如该主机不只提供telnet,它还提供r命令(rsh,rcopy,rlogin等)那么,所有的安全约定将无效,入侵者可以放心的使用这台主机的资源而不用担心被记录什么。
有人也许会说,这其实就是冒用ip嘛。。呵呵。。不错,是冒用了ip,但决不是ip欺骗,ip欺骗的原理比这要复杂的多,实现的机理也完全不一样。
上面就是一个ARP的欺骗过程,这是在同网段发生的情况,但是,提醒注意的是,利用交换集线器或网桥是无法阻止ARP欺骗的,只有路由分段是有效的 阻止手段。(也就是ip包必须经过路由转发。在有路由转发的情况下,ARP欺骗如配合ICMP欺骗将对网络造成极大的危害,从某种角度将,入侵者可以跨过 路由监听网络中任何两点的通讯,如果有装火墙,请注意火墙有没有提示过类似:某某IP是局域IP但从某某路由来等这样的信息。详细实施以后会讨论到。)
在有路由转发的情况下,发送到达路由的ip的主机其arp对应表中,ip的对应值是路由的mac。
比如:
我pingwww.nease.net后,那么在我主机中,www.nease.net的IP对应项不是nease的mac而是我路由的mac。其ip也是我路由的IP.(有些网络软件通过交换路由ARP可以得到远程IP的MAC)
有兴趣做深入一步的朋友可以考虑这样一种情况:
假设这个入侵者很不幸的从化学食堂出来后摔了一跤,突然想到:我要经过一个路由才可以走到那台有火墙的主机!!!^^^^
于是这个不幸的入侵者开始坐下来痛苦的思考:
1、我的机器可以进入那个网段,但是,不是用192.0.0.3的IP
2、如果我用那个IP,就算那台正版192.0.0.3的机器死了,那个网络里的机器也不会把ip包丢到路由传给我。
3、所以,我要骗主机把ip包丢到路由。
通过多种欺骗手法可以达到这个目的。所以他开始这样做:
1、为了使自己发出的非法ip包能在网络上活久一点,他开始修改ttl为下面的过程中可能带来的问题做准备。他把ttl改成255.(ttl定义一个ip包如果在网络上到不了主机后,在网络上能存活的时间,改长一点在本例中有利于做充足的广播)
2、他从贴身口袋中掏出一张软盘,这张有体温的软盘中有他以前用sniffer时保存的各种ip包类型。3、他用一个合法的ip进入网络,然后和上面一样,发个洪水包让正版的 192.0.0.3死掉,然后他用192.0.0.3进入网络。
4、在该网络的主机找不到原来的192.0.0.3的mac后,将更新自己的ARP对应表。于是他赶紧修改软盘中的有关ARP广播包的数据,然后对网络广播说“能响应 ip为192.0.0.3的mac是我”。
5、好了,现在每台主机都知道了,一个新的MAC地址对应ip192.0.0.3,一个ARP欺骗完成了,但是,每台主机都只会在局域网中找这个地址而根本就不会把发送给192.0.0.3的ip包丢给路由。于是他还得构造一个ICMP的重定向广播。
6、他开始再修改软盘中的有关ICMP广播包的数据,然后发送这个包,告诉网络中的主机:“到192.0.0.3的路由最短路径不是局域网,而是路由,请主机重定向你们的路由路径,把所有到192.0.0.3的ip包丢给路由哦。”
7、主机接受这个合理的ICMP重定向,于是修改自己的路由路径,把对192.0.0.3的ip通讯都丢给路由器。
8、不幸的入侵者终于可以在路由外收到来自路由内的主机的ip包了,他可以开始telnet到主机的23口,用ip192.0.0.3.9、这个入侵者一把冲出芙蓉一(229),对着楼下来往的女生喊到:“一二一。。
呵呵。。他完成了。
注意,这只是一个典型的例子,在实际操作中要考虑的问题还不只这些。
现在想想,如果他要用的是sniffer会怎样?
假如这个入侵者实在是倒霉(因为喊“一二一。。”而被女生痛殴),当他从地上爬起来后突然发现:其实我要经过好几个路由才可以到那台主机啊。。。。。这时他要怎么做?
呵呵。。。有兴趣做更深入了解的朋友可以自己构思。通常入侵者是这样做的:
1、苦思冥想六天六夜。。。。。
.
.
.
N、一把冲出芙蓉一(229),狂叫一声,一头栽向水泥马路。
可见,利用ARP欺骗,一个入侵者可以得到:
1、利用基于ip的安全性不足,冒用一个合法ip来进入主机。
2、逃过基于ip的许多程序的安全检查,如NSF,R系列命令等。
甚至可以得到:
栽账嫁祸给某人,让他跳到黄河洗不清,永世不得超生。
那么,如何防止ARP欺骗呢?从我收集整理的资料中,我找出这几条:(欢迎补充)
1、不要把你的网络安全信任关系建立在ip基础上或mac基础上,(rarp同样存在欺骗的问题),理想的关系应该建立在ip+mac基础上。
2、设置静态的mac-->ip对应表,不要让主机刷新你设定好的转换表。
3、除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。
4、使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。
5、使用"proxy"代理ip的传输。
6、使用硬件屏蔽主机。设置好你的路由,确保ip地址能到达合法的路径。(静态配置路由ARP条目),注意,使用交换集线器和网桥无法阻止ARP欺骗。
7、管理员定期用响应的ip包中获得一个rarp请求,然后检查ARP响应的真实性。
8、管理员定期轮询,检查主机上的ARP缓存。
9、使用火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。
以下是我收集的资料,供做进一步了解ARP协议和掌握下次会说到的snifferonarpspoofing
ARP的缓存记录格式:
每一行为:
IFIndex:PhysicalAddress:IPAddress:Type
其中:IFIndex为:
1乙太网
2实验乙太网
3X.25
4ProteonProNET(TokenRing)
5混杂方式
6IEEE802.X
7ARC网
ARP广播申请和应答结构
硬件类型:协议类型:协议地址长:硬件地址长:操作码:发送机硬件地址:发送机IP地址:接受机硬件地址:接受机IP地址。
其中:协议类型为:512XEROXPUP
| 513PUP地址转换 1536XEROXNSIDP 2048Internet协议(IP) 2049X.752050NBS 2051ECMA 2053X.25第3层 2054ARP 2055XNS 4096伯克利追踪者 21000BBSSimnet 24577DECMOP转储/装载 24578DECMOP远程控制台 24579DEC网IV段 24580DECLAT 24582DEC 32773HP探示器 32821RARP 32823AppleTalk 32824DEC局域网桥 |
如果你用过NetXRay,那么这些可以帮助你了解在细节上的ARP欺骗如何配合ICMP欺骗而让一个某种类型的广播包流入一个网络。
反击ARP欺骗 讲述我和网络执法官的战斗
作为一名校园网管理员,笔者近期接二连三地接到用户不能正常上网的举报,使得我们焦头烂额。经过进一步调查,终于发现了故障的真相。
首先说明一下我校的网络拓扑结构:在一台三层主交换机上划分了VLAN,VLAN1使用普通的二层交换机,连接学生宿舍的网络。使用 192.168.0.0作为网络地址,并在主交换机上做了MAC地址与IP地址的绑定,避免学生自行修改IP地址造成地址冲突。学生的计算机全部连接到普 通的二层交换机上。
一、故障现象
某台计算机会突然不能连接到服务器或其他客户机,重启后恢复正常,短时间后,又出现该状况。查看本地连接状态发现只有发出的数据包而没有返回的数据 包。根据以往的经验,该症状与MAC地址绑定错误相同,于是在交换机上查看,发现一切正常,只是该IP地址没有数据流量。同时,在网络中的网管软件监听到 大量未知MAC地址的数据包出现。
二、故障分析
综合考虑,我们认为有伪造MAC地址的情况出现。我们重点查找Windows系统下的嗅探软件,并以著名的Winpcap和Libpcap为重点,最终的焦点定位在一款叫做“网络执法官”的软件上。
我们立即下载该软件进行安装,发现其基于Winpcap。因为Winpcap的资料相对较多,我们没有试图对该软件进行反编译,而只对其基本功能进行了测试,发现其工作方式有三种,并进行了基本测试:
1.生成IP地址冲突
在该模式下,软件产生一个虚拟的MAC地址,并利用这个MAC地址伪造和被攻击机器的IP地址相同的数据包,从而使被攻击机器不断出现IP地址冲突对话框,但由于该MAC地址是伪造的,所以被攻击机器无法发现是哪个机器进行了攻击。
2.断开被攻击机器与网关的联系
在该模式下,软件对被攻击机和网关机都产生一个ARP的“欺骗”,使得两者不能正确获知对方的MAC地址,从而不能正常通讯。但被攻击机器和局域网内其他主机可以进行通讯。
3.断开被攻击机器与所有其他主机的联系
在该模式下,软件对被攻击机器和局域网内所有主机(包括网关)都进行“ARP欺骗”,被攻击机器不能和任何机器通讯。但本主机不能和被攻击机断开联系(该软件不会欺骗本身主机),所以如果该软件如果安装在网关机上,就失去了网络管理功能。
明显的,这是一种“ARP欺骗”的攻击。而ARP协议位于TCP/IP协议中的网络层,主要功能是将广域网的IP地址寻址转换成局域网中的MAC地 址寻址。所以,如果我们破坏了IP/MAC地址的转换,被攻击的主机就不能在局域网中进行通讯了(因为没有其他主机“认识”它了)。
三、故障解决
那么,我们能不能避免ARP“欺骗”攻击呢?很遗憾的是:鉴于ARP协议的“自治”性,除非全部使用静态ARP,否则是不能的。
用什么办法对抗网络执法官呢?我们从查、躲、杀三个角度进行了试验。
1.如何得知自己是否受到“ARP欺骗”的攻击呢?
您可以检测自己的网卡工作状态,如果只发数据而不能接收到数据的话,很可能就受到了攻击。您也可以在命令行状态下使用ARP-A命令,来查看本机的 ARP缓存状态,正常情况下除了网关外不会有太多的记录,您需要查看网关的MAC地址是否和正常的一样。如果不同,那么或者网关换了网卡,或者您受到了 “ARP欺骗”的攻击。
同样,如果没有记录或者有过多的ARP记录,您也可能受到了攻击(不同版本的网络执法官的攻击方式有所不同)。
2.如何在局域网中查找该主机
因为该软件是基于Winpcap驱动的,其工作起来必然需要将该主机网卡工作于“混杂”模式下,原理类似于常见的嗅探软件,所以,反嗅探的软件可以 对其进行查找。经常使用的有Antisniffer、ARPkiller等。利用反嗅探软件查找局域网内处于“混杂”模式的网卡,基本可以确定进行攻击的 主机的IP地址。
注:被查找到的主机也可能没有使用“ARP欺骗”,而只进行了窃听。但总之处于“混杂”状态的主机肯定是不正常的。
同样的,您还可以安装网络执法官的检测版本来检测本网中运行该软件的主机。
3.躲过“ARP欺骗”的攻击
如果您的网络里没有在网关绑定MAC地址和IP地址的话,您可以针对被攻击的类型不同选择不同的方式躲避攻击:
(1)产生IP地址冲突的攻击
如果产生地址冲突,您可以看见类似“系统检测到IP地址和硬件地址00-50-FC-1F-4C-9E发生冲突”的对话框。您可以将您的MAC地址设置为该硬件地址,就可以避免再次出现该对话框。
(2)断开被攻击机器与网关的联系和断开被攻击机器与所有其他主机的联系的攻击
您可以自行修改MAC地址,修改后,可以在短时间内避开被攻击,但是如果攻击者在网络执法官中设置了“发现用户上网即进行管理”后,不久会再次受到攻击。
总之,利用修改MAC地址来躲避并不是有效的办法。况且很多局域网中还进行的MAC地址和IP地址的绑定,就算避过了网络执法官的攻击,也同样不能正常上网。
4.“杀”实际上是一种“对攻”
因为ARP缓存具有一定的生命周期,所以网络执法官会在几秒内产生一个新的ARP数据包。首先我们可以利用静态ARP在本机注册网关正确的MAC地 址,然后利用ARPkiller等软件不停地向网络中发布本机的正确IP和MAC数据,使得网关的ARP缓存中始终保持有关本机的正确数据,这样就可以保 持和网关的通讯,也就可以正常上网了。甚至,我们同样可以发动“反击”,使得对方“掉网”。
巧论ARP攻击防制方法之虚虚实实
ARP欺骗/攻击反复袭击,是近来网络行业普遍了解的现象,随着ARP攻击的不断升级,不同的解决方案在市场上流传。但是笔者最近发现,有一些方 案,从短期看来似乎有效,实际上对于真正的ARP攻击发挥不了作用,也降低局域网工作效率。Qno侠诺的技术服务人员接到很多用户反应说有些ARP防制方 法很容易操作和实施,但经过实际深入了解后,发现长期效果都不大。
对于ARP攻击防制,Qno侠诺技术服务人员的建议,最好的方法是先踏踏实实把基本防制工作做好,才是根本解决的方法。由于市场上的解决方式众多, 我们无法一一加以说明优劣,因此本文解释了ARP攻击防制的基本思想。我们认为读者如果能了解这个基本思想,就能自行判断何种防制方式有效,也能了解为何 双向绑定是一个较全面又持久的解决方式。
一、不坚定的ARP协议一般计算机中的原始的ARP协议,很像一个思想不坚定,容易被其它人影响的人,ARP欺 骗/攻击就是利用这个特性,误导计算机作出错误的行为。ARP攻击的原理,互联网上很容易找到,这里不再覆述。原始的ARP协议运作,会附在局域网接收的 广播包或是ARP询问包,无条件覆盖本机缓存中的ARP/MAC对照表。这个特性好比一个意志不坚定的人,听了每一个人和他说话都信以为真,并立刻以最新 听到的信息作决定。
就像一个没有计划的快递员,想要送信给“张三”,只在马路上问“张三住那儿?”,并投递给最近和他说“我就是!”或“张三住那间!”,来决定如何投 递一样。在一个人人诚实的地方,快递员的工作还是能切实地进行;但若是旁人看快递物品值钱,想要欺骗取得的话,快递员这种工作方式就会带来混乱了。
我们再回来看ARP攻击和这个意志不坚定快递员的关系。常见ARP攻击对象有两种,一是网络网关,也就是路由器,二是局域网上的计算机,也就是一般 用户。攻击网络网关就好比发送错误的地址信息给快递员,让快递员整个工作大乱,所有信件无法正常送达;而攻击一般计算机就是直接和一般人谎称自己就是快递 员,让一般用户把需要传送物品传送给发动攻击的计算机。
由于一般的计算机及路由器的ARP协议的意志都不坚定,因此只要有恶意计算机在局域网持续发出错误的ARP讯息,就会让计算机及路由器信以为真,作 出错误的传送网络包动作。一般的ARP就是以这样的方式,造成网络运作不正常,达到盗取用户密码或破坏网络运作的目的。针对ARP攻击的防制,常见的方 法,可以分为以下三种作法:
1、利用ARP echo传送正确的ARP讯息:通过频繁地提醒正确的ARP对照表,来达到防制的效果。
2、利用绑定方式,固定ARP对照表不受外来影响:通过固定正确的ARP对照表,来达到防制的效果。
3、舍弃ARP协议,采用其它寻址协议:不采用ARP作为传送的机制,而另行使用其它协议例如PPPoE方式传送。
以上三种方法中,前两种方法较为常见,第三种方法由于变动较大,适用于技术能力较佳的应用。下面针对前两种方法加以说明。
PK 赛之“ARP echo”
ARP echo是最早开发出来的ARP攻击解决方案,但随着ARP攻击的发展,渐渐失去它的效果。现在,这个方法不但面对攻击没有防制效果,还会降低局域网运作 的效能,但是很多用户仍然以这个方法来进行防制。以前面介绍的思想不坚定的快递员的例子来说,ARP echo的作法,等于是时时用电话提醒快递员正确的发送对象及地址,减低他被邻近的各种信息干扰的情况。
但是这种作法,明显有几个问题:第一,即使时时提醒,但由于快递员意志不坚定,仍会有部份的信件因为要发出时刚好收到错误的信息,以错误的方式送出 去;这种情况如果是错误的信息频率特高,例如有一个人时时在快递员身边连续提供信息,即使打电话提醒也立刻被覆盖,效果就不好;第二,由于必须时时提醒, 而且为了保证提醒的效果好,还要加大提醒的间隔时间,以防止被覆盖,就好比快递员一直忙于接听总部打来的电话,根本就没有时间可以发送信件,耽误了正事; 第三,还要专门指派一位人时时打电话给快递员提醒,等于要多派一个人手负责,而且持续地提醒,这个人的工作也很繁重。
第二页
以ARP echo方式对应ARP攻击,也会发生相似的情况。第一,面对高频率的新式ARP攻击,ARP echo发挥不了效果,掉线断网的情况仍旧会发生。ARP echo的方式防制的对早期以盗宝为目的的攻击软件有效果,但碰到最近以攻击为手段的攻击软件则公认是没有效果的。第二,ARP echo手段必须在局域网上持续发出广播网络包,占用局域网带宽,使得局域网工作的能力降低,整个局域网的计算机及交换机时时都在处理ARP echo广播包,还没受到攻击局域网就开始卡了。第三,必须在局域网有一台负责负责发ARP echo广播包的设备,不管是路由器、服务器或是计算机,由于发包是以一秒数以百计的方式来发送,对该设备都是很大的负担。
图一:ARP攻击防制 方法之“ARP echo”图示说明
常见的ARP echo处理手法有两种,一种是由路由器持续发送,另一则是在计算机或服务器安装软件发送。路由器持续发送的缺点是路由器原本的工作就很忙,因此无法发送 高频率的广播包,被覆盖掉的机会很大,因此面对新型的ARP攻击防制效果小。因此,有些解决方法,就是拿ARP攻击的软件来用,只是持续发出正确的网关、 服务器对照表,安装在服务器或是计算机上,由于服务器或是计算机运算能力较强,可以同一时间内发出更多广播包,效果较大,但是这种作法一则大幅影响局域网 工作,因为整个局域网都被广播包占据,另则攻击软件通常会设定更高频率的广播包,误导局域网计算机,效果仍然有限。
此外,ARP echo一般是发送网关及私服的对照信息,对于防止局域网计算机被骗有效果,对于路由器没有效果,仍需作绑定的动作才可。
第三页
PK赛之“ARP绑定”
ARP echo的作法是不断提醒计算机正确的ARP对照表,ARP绑定则是针对ARP协议“思想不坚定“的基本问题来加以解决。Qno侠诺技术服务人员认 为,ARP绑定的作法,等于是从基本上给这个快递员培训,让他把正确的人名及地址记下来,再也不受其它人的信息干扰。由于快递员脑中记住了这个对照表,因 此完全不会受到有心人士的干扰,能有效地完成工作。在这种情况下,无论如何都可以防止因受到攻击而掉线的情况发生。
但是ARP绑定并不是万灵药,还需要作的好才有完全的效果。第一,即使这个快递员思想正确,不受影响,但是攻击者的网络包还是会小幅影响局域网部份 运作,网管必须通过网络监控或扫瞄的方法,找出攻击者加以去除;第二,必须作双向绑定才有完全的效果,只作路由器端绑定效果有限,一般计算机仍会被欺骗, 而发生掉包或掉线的情况。
双向绑定的解决方法,最为网管不喜欢的就是必须一台一台加以绑定,增加工作量。但是从以上的说明可知道,只有双向绑定才能有效果地解决ARP攻击的 问题,而不会发生防制效果不佳、局域网效率受影响、影响路由器效能或影响服务器效能的缺点。也就是说双向绑定是个硬工夫,可以较全面性地解决现在及未来 ARP攻击的问题,网管为了一时的省事,而采取片面的ARP echo解决方式,未来还是要回来解决这个问题。
图二:ARP攻击防制 方法之侠诺“ARP双向绑定”图示说明
另外,对于有自动通过局域网安装软件的网络,例如网吧的收费系统、无盘系统,都可以透过自动的批次档,自动在开机时完成绑定的工作,网管只要撰写一 个统一的批次文件程序即可,不必一一配置。这些信息可以很容易地在互联网上通过搜索找到或者是向Qno侠诺的技术服务人员索取即可。
二、现阶段较佳解决方案——双向绑定以上以思想不坚定的快递员情况,说明了常见的ARP攻击防制方法。ARP攻 击利用的就是ARP协议的意志不坚,只有以培训的方式让ARP协议的意志坚定,明白正确的工作方法,才能从根本解决问题。只是依赖频繁的提醒快递员正确的 作事方法,但是没有能从快递员意志不坚的特点着手,就好像只管不教,最终大家都很累,但是效果仍有限。
Qno侠诺的技术服务人员建议,面对这种新兴攻击,取巧用省事的方式准备,最后的结果可能是费事又不管用,必须重新来过。ARP双向绑定虽然对网管 带来一定的工作量,但是其效果确是从根本上有效,而且网管也可参考自动批次档的作法,加快配置自动化的进行,更有效地对抗ARP攻击。