科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道ARP攻击的攻、判、防的详细解析

ARP攻击的攻、判、防的详细解析

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

ARP攻击不是病毒—因而几乎所有的杀毒软件对之都无可奈何;但它却胜似病毒—因为它轻可造成通信变慢、网络瘫痪,重会造成信息的泄密。多年来,ARP攻击一直存在,却没有一个好的解决办法。很多网络用户深受其害,网管人员更是无从下手、苦不堪言。本实验从分析ARP协议和欺骗原理入手,介绍如何实施ARP攻击,如何判断正在遭受ARP攻击,如何防范和解决ARP攻击。

来源:论坛整理 2009年2月21日

关键字: 网络安全 ARP 攻击防范

  • 评论
  • 分享微博
  • 分享邮件
ARP攻击的攻、判、防

    ARP攻击不是病毒—因而几乎所有的杀毒软件对之都无可奈何;但它却胜似病毒—因为它轻可造成通信变慢、网络瘫痪,重会造成信息的泄密。多年来,ARP攻击一直存在,却没有一个好的解决办法。很多网络用户深受其害,网管人员更是无从下手、苦不堪言。本实验从分析ARP协议和欺骗原理入手,介绍如何实施ARP攻击,如何判断正在遭受ARP攻击,如何防范和解决ARP攻击。

    1.ARP协议及欺骗原理

    (1)以太网的工作原理。以太网中,数据包被发送出去之前,首先要进行拆分(把大的包进行分组)、封装(在Network层添加源IP地址和目标的IP地址,在Data Link层添加源MAC地址和下一跳的MAC地址),变成二进制的比特流,整个过程如图I-1所示。数据包到达目标后再执行与发送方相反的过程,把二进制的比特流转变成帧,解封装(Data Link层首先比较目标的MAC是否与本机网卡的MAC相同或者是广播MAC,如相同则去除帧头,再把数据包传给Network层,否则丢弃;Network层比较目的地IP地址是否与本机相同,相同则继续处理,否则丢弃)。如果发送方和接收方位于同一个网络内,则下一跳的MAC就是目标的MAC,如发送方和接收方不在同一个网络内,则下一跳的MAC就是网关的MAC。从这个过程不难发现,以太网中数据的传速仅知道目标的IP地址是不够的,还需要知道下一跳的MAC地址,这需要借助于另外一下协议,ARP(地址解析协议)。

   

 
图I-1  数据的封装和解封装

    2)ARP的工作原理。计算机发送封装数据之前,对比目标IP地址,判断源和目标在不在同一个网段,如在同一网段,则封装目标的MAC;如不在同一网段,则封装网关的MAC。封装之前,查看本机的ARP缓存,看有没有下一跳对应的IP和MAC映射条目,如有则直接封装;如没有则发送ARP查询包。ARP查询和应答包的格式如图I-2所示,查询包中 “以太网目的地址”为0xffffffffffff广播地址,“以太网源地址”为本机网卡的MAC地址,“帧类型”为0x0806表示ARP应答或请求,“硬件类型”为0x0001表示以太网地址,“协议类型”为0x0800表示IP地址,“OP”为ARP的请求或应答,ARP请求包的OP值为1,ARP应答包的OP值为2,“发送端以太网地址”为发送者的MAC地址,“发送端IP”为发送者的IP地址,“目的以太网地址”这里为0x000000000000,“目的IP”为查询MAC地址的IP。此包以广播形式发送到网络上,局域网中所有的计算机均收到此包,只有本机IP地址为“目的IP”的计算机对此数据包进行响应,并回复此数据包。当始发送端方收到此ARP应答包后,即获取到目标IP对应的MAC地址,然后就可进行数据包的封装了。

   

 
图I-2  ARP的查询和应答包格式

    (3)ARP的欺骗。于TCP通过序列号和确认号字段不同,实施三次握手来保证数据传输的可靠性,ARP是一个无状态的协议,也就是说不管有没有发送ARP请求,只要有发往本机的ARP应答包,计算机都不加验证的接收,并更新自己的ARP缓存。了解ARP的工作原理后,只要有意图的填充图I-2中的某些字段,即可达到ARP攻击的效果:IP地址冲突、ARP欺骗、ARP攻击等。

    P地址冲突。计算机检测本机IP地址是否在网上被使用的方法是用本机IP地址作为目的IP地址,发送ARP查询包,如果收到应答,则说明本IP地址已经在网上被使用,弹出IP地址被使用对话框,释放出本机的IP地址。ARP攻击者利用这一原理,用任意的MAC地址(非被攻击者真实的MAC地址)填充“发送端以太网地址”字段,用被攻击者的IP地址填充“发送端IP”字段,用被攻击者的真实MAC地址填充“目的以太网地址”字段,用被攻击者的IP地址填充“目的IP”字段,OP的值为“2”,如图I-3所示。当被攻击者收到这样的ARP应答后,就认为本机的IP地址在网络上已经被使用,弹出IP地址冲突对话框。

   

 
图I-3  IP地址冲突的ARP应答包

    ARP欺骗:如图I-4所示,PC1是攻击者,攻击的目的是“中断PC2与网关的通信”。PC1生成一个ARP应答信息包,“发送端的IP”填写成网关的IP地址,“发送端以太网地址”填写一个非网关的MAC地址(这个地址可以随机生成),“目的IP”填写PC2的IP地址,“目的以太网地址”填入PC2的MAC地址。主机PC2收到这个最新的ARP应答信息包后,就会用这个不正确的网关的MAC地址更新自己的ARP缓存表,以后PC2后就这个错误的MAC地址进行封装,造成封装后的数据包无法正确到达网关;PC1类似的再发送一个不正确ARP应答包给网关,“发送端的IP”填写成PC2的IP地址,“发送端以太网地址”填写一个非PC2的MAC地址(这个地址可以随机生成),“目的IP”填写网关的IP地址。网关收到这样的ARP应答信息后,也在缓存中保存了错误的PC2映射条目。PC1周期性向网关和PC2发送这样的包,以免它们的ARP表老化,这样就达到了阻止它们通信的目的。

   

 
图I-4  ARP欺骗示意图

    ARP攻击。以称为中间人攻击(Man-in-the-middle attack),与ARP欺骗类似,只是PC1发送ARP请求时,所填入的“发送端以太网地址”不是随机生成,而是替换成PC1本机的MAC地址,开启PC1的路由功能——修改(添加)注册表选项HKEY_LOCAL_ MACH INE\ SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter = 0x1,同时在PC1上安装窃听软件,截获PC2与网关之间所有的通信包。

  实验I  ARP攻击的攻、判、防

    2.如何实施ARP攻击

    这里介绍两款ARP攻击软件的使用方法,拓扑如图I-5所示。

   

 
图I-5  ARP攻击

    第一款软件主要用于攻击,破坏正常的网络通信,如图I-5所示,在虚拟机2上安装“网络执法官”软件,破坏虚拟机1和真实机之间的正常通信,实验步骤如下。

    正确配置各计算机的IP地址。虚拟机1的网卡类型Bridged,IP地址是192.168.1.220,掩码255.255.255.0,网关192.168.1.1,DNS是218.2.135.1。虚拟机2的网卡类型Bridged,IP地址是192.168.1.210,掩码255.255.255.0,网关192.168.1.1,DNS是218.2.135.1。真实机的IP地址是192.168.1.200,掩码255.255.255.0,网关192.168.1.1,DNS是218.2.135.1。

    在虚拟机2上安装WinPcap。解压缩“网络执法官.rar”文件,双击“WinPcap30.exe”文件,开始安装WinPcap。

    在虚拟机2上安装网络执法官软件。双击“网络执法官2.8破解版.exe”文件开始安装网络执法官。

    运行网络执法官。第一次运行执法官,打开如图I-6所示对话框,提示进行监控参数选择。

   

 
图I-6  监控参数选择

    因为只有一块网块,选中最上面的网卡复选框,单击“确定”按钮。打开如图I-7所示的监控范围选择对话框,在指定监控范围中列出网卡所在子网的所有可用IP地址,单击图中的“添加/修改”,把范围加入后,单击“确定”按钮。

 
图I-7  监控范围选择

    攻击前测试。在虚拟机1上,打开DOS窗口,输入ping 192.168.1.200 –t,持续的ping真实机的IP地址,可以发现是通的。不要关闭该窗口。

    开始攻击。网络执法官软件可以监测到同一个子网中所有在线的主机,在网络执法官的管理界面中,右键单击真实机,从快捷菜单中选择“手工管理”,如图I-8所示。

   

 
图I-8  执法官管理界面

    在如图I-9所示的对话框中,选中第三个选项“禁止与所有其他主机…”,单击“开始”,此时可以发现虚拟机1和真实机之间的ping测试开始提示“Request timed out”,通信中断了。实际环境中,还可以只选中“禁止与关键主机连接…”,然后单击“关键主机”,加入网关的地址,这样被攻击计算机只会中断与网关的连接,和局域网内计算机之间的通信不会中断。

   

 
图I-9  手工管理计算机

    第二款软件主要用于窃取有用信息,如图I-5所示,在虚拟机1上安装“Cain & Abel”软件,破坏虚拟机1和真实机之间的正常通信,实验步骤如下。

在虚拟机1上安装Cain & Abel。双击“ca_setup.exe”文件,开始安装,安装接近结来时,会提示需要安装WinPcap4.0,如图I-10所示,选择“Install”,开始安装WinPcap4.0。

   

 
图I-10  安装WinPcap4.0

    运行Cain & Abel。双击桌面上的“Cain”图标,打开Cain & Abel的管理界面,单击管理界面中的“Start/Stop Sniffer”图标,如图I-11所示,开始抓包。

   

 
图I-11  开始Sniffer

    集线器环境下的密码获取。单击图I-11中上方的“Sniffer”选项卡,再单击下方的“Passwords”选项卡,开始捕获敏感的密码信息,包括邮件,Telnet,FTP等。在虚拟机2上开启Telnet服务,在真实机上telnet 192.168.1.210,然后输入用户和密码进行登录,如图I-12所示左侧导航栏中的Telnet提示捕获了一条信息。

   

 
(点击查看大图)图I-12  监听敏感信息

    单击左侧导航栏中的“Telnet”,在右边的列表栏中,右键单击捕获的那个条目,在快捷菜单中选择“View”,打开如图I-13所示的记事本文件,从中不难看出用户名是administrator,密码是cisco。图中administrator单词中每个字母显示了两次,因有一次是telnet的回显。

  

 
图I-13  捕获的密码文件

    交换机环境下的密码获取。刚才很容易获取密码的原因是因为虚拟机1和虚拟机2,以及真实机都是连接在真实机的网卡上,相当于都接在一台集线器上,现实环境中,更常见的是交换机,交换机不会把两台主机或某台主机与网关之间的通信传给攻击者的主机。这时就需要使用ARP欺骗,单击如图I-12所示下方的“ARP”选项卡,再单击“Add to list”工具栏图标,如图I-14所示。

 
图I-14  增加ARP欺骗到列表

    打开ARP的条目如图I-15所示,在左边选中一个IP地址,在右边选中一个IP地址,这两个IP地址的主机将被欺骗。

   

 
(点击查看大图)图I-15  选择被欺骗的计算机

    单击“OK”按钮返回,再单击图I-11所示工具栏“Start/Stop Sniffer”图标右边的 “Start/Stop ARP”图标,开始执行ARP欺骗,如图I-15所示选择的计算机之间的通信将从虚拟机1中转,虚拟机1自然可以获取它们之间的明文敏感信息。由此看来交换机的网络也存在安全隐患。

  实验I  ARP攻击的攻、判、防

    3.如何判断正在遭受ARP攻击

    上面介绍的ARP欺骗攻击不会造成网络阻塞,但却会发生泄密,接下来介绍解决的办法。判断是否存在第一种ARP攻击的方法比较简单,步骤如下。

    持续ping不能访问的IP地址。在出现问题计算机(虚拟机1)的DOS窗口中输入“ping 192.168.1.200  -t”,用来测试网络的连通性;192.168.1.200是不能正常通信的计算机(这里是真实机),实际工程中换成不能访问的同一网段的目标计算机的IP地址。如果正在遭受ARP攻击,屏幕将会提示“Request time out”。

    在受害计算机(虚拟机1)上开启另外一个DOS窗口,输入“arp –d”,arp是一个DOS命令,能解析出IP地址对应的网卡MAC地址,-d用来清除本机缓存的所有IP和MAC地址的对应。如果发现Step 1中的窗口的内容变成持续的“Reply from……”,则表示曾遭受过ARP攻击,现在已经正常了;如果仅出现了一个“Reply from……”包,后面又变成了“Request time out”包,则表明该计算机正在遭受持续不断的ARP攻击。

  4.如何防范和解决ARP攻击

    ARP攻击的解决办法五花八门,但却因为各种的限制,最终可以实施的非常少,甚至连一种可以实施的都找不到。下面的解决办法虽然不能包罗万象,但不管实际的网络硬件配备如何,一定可以从中找到一种最适合的解决办法。

    方法1:经过判断已经发现存在ARP攻击,如果攻击持续存在,在受害的计算机上执行“arp –d”后,再执行“arp –a”,–a的作用是显示该计算机上的所有ARP缓存。从中我们可能会发现有几条记录,其中一个记录是网关或要访问的目标主机,还有一条其他记录,也可能有几条。多执行几次“arp –d”、“arp –a”,总结一下,出现最多的那条记录基本上就是ARP攻击者的真实IP地址。

    该方法的优点:是比较简单,几乎适合所有的网络环境,不需要任何辅助软件,也不需要网管有非常专业的知识,即可找出攻击者,然后对攻击者进行网络隔离。缺点如果攻击者仅仅是破坏,而不是出于控制的目的,“arp –a”看到的记录就不可靠了。

    方法2:在目标设备和受害计算机上分别进行IP地址和MAC地址的静态绑定。例如,在计算机上执行:

   

 “arp –s 192.168.1.1 00-aa-00-62-c6-09”

    在路由或交换设备(这里仅以思科的设备为例)上执行:

   

 “Cisco-6509(config)# arp 192.168.1.2 0009.6be2.3ca3 ARPA”

    把要保护的目标设备的IP地址和MAC地址进行绑定,使非法的ARP攻击无孔可入。并不是每一个用户都有权在网关设备上把自己使用的IP地址和MAC地址进行绑定,但用户至少可以做到的是在自己的计算机上把网关的IP地址和MAC地址进行绑定,最好做成一个批处理文件,每次计算机启动时都执行该文件,使用这种方法可以有效的避免上述的第二种泄密攻击。

    该方法的优点是小规模网络比较适用。缺点是具体实施的难度比较大,如果上网主机比较多,并且主机经常变化,如高校这一群体,每年都有新报到和毕业的学生,静态绑定工作量巨大,难以实施;太多的绑定条目会影响设备的执行速度,降低效率;即使ARP攻击不会影响上网,但大量的ARP包仍被发送,还是要占用大量的有用带宽;要求设备支持静态绑定功能。

    方法3:采用动态ARP检察技术,结合DHCP的功能,实现IP和MAC的自动绑定。该方法和方法2类似,但绑定是自动完成的,可以在接入层交换机上部署,非法的ARP包将被交换机丢弃,感兴趣的朋友,可查找相关设备的技术文档。

    该方法的优点是解决ARP攻击最好的方法,不需要管理人员的协助,非法的ARP包也无法进入网络。既不会存在危害,也不会影响网络性能。缺点是要求管理员有较好的技术;要求网络设备的支持,思科公司支持这种功能的设备至少要三层以上(国内很少有企业在接入层使用三层设备),很多厂家的设备目前尚未支持。

    方法4:在网管型交换机,用一分钟的时间即可找出攻击者。在前面的解决方法1中,可以发现目标IP的MAC地址并不是真实的MAC,记下这个MAC地址,假使这个MAC是“0050.bae3.2305”,在网管型交换机(这里仅以思科设备为例)上执行:

   

 “Cisco-2950#show  arp | include 0050.bae3.2305
Internet  10.168.168.9          239   0050.bae3.2305 
ARPA   FastEthernet1/17”

    第一行是执行的命令,单纯的“show arp”会显示出交换机学习到的所有MAC地址,从中找到攻击MAC非常困难,“ | include 0050.bae3.2305”起到过滤功能,仅显示对应的行。第二行是执行结果,会发现这个MAC地址来自Fa1/17端口。找到该端口对应的主机即找到了攻击源,如果该端口接的不是一台计算机,而是另一台交换机,重复刚才的方法,直到找出最终的计算机。

    该方法的优点是最具可操作性,执行比较快捷,所有的网管型交换机均支持该功能,强烈推荐使用。缺点是还有很多单位仍在使用着非网管型交换机或集线器。

    方法5:在非网管型交换机或集线器的情况下,用十分钟的时间即可找出攻击者。在被攻击者的计算机(虚拟机1)上打开两个DOS窗口,一个窗口执行“ping 192.168.1.200  -t”,另一个DOS窗口中间隔性执行“arp –d”,如果有多台非网管型交换机或集线器,依次切断他们的电源,何时发现第二个DOS窗口中出现持续的“Reply from……”,则可以断定ARP攻击源来自这台网络设备。接下恢复该设备的电源,把网线一根根的拔下来,何时发现第二个DOS窗口中出现持续的“Reply from……”,则可以断定,该网线所接的设备就是ARP攻击源。如果这种查找方法慢,可以使用二分查找法,即一次拔下一半的线,测一下,一般不超过十分钟即可找出攻击源。

    该方法的优点是几乎适合任何网络环境。缺点是执行起来有点辛苦,最好还是换成网管型的交换机吧。

    方法6:普通用户的自救方法。作为一名普通的网络使用者,向网管报修可能得不到及时解决,编写一个批处理文件,在计算机上执行,即可解决ARP的攻击问题。批处理文件的内容如下:

   

 :a
Arp  -d
Ping  1.1.1.1  -n  1  -w  100
Goto  a

    把该文本文件保存为a.bat,然后在用户的计算机上双击执行,会打开一个DOS窗口,程序会循环执行,不要关闭该窗口即可解决ARP攻击问题。如果ARP清除方法的速度太慢,可以改变上面的100(表示0.1s)为想要的数值。

    该方法的优点是普通用户也可以解决ARP攻击问题,几乎适合任何网络环境。缺点是频繁的清除ARP缓存,频繁的发送ARP广播包,会给本她计算机和网络带来额外负担。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章