ARP攻击与检测

本文转自:http://51runaway.blog.163.com/blog/static/24028688201002611363468/

我们知道,当我们在浏览器里面输入网址时,DNS服务器会自动把它解析为IP地址,浏览器实际上查找的是IP地址而不是网址。那么IP地址是如何转换为第二层物理地址(即MAC地址)的呢?在局域网中,这是通过ARP协议来完成的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现 ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。所以网管们应深入理解ARP协议。


一、什么是ARP协议 

        ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

二、ARP协议的工作原理 

        在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下表所示。

主机                    IP地址                             MAC地址
A                     192.168.16.1                     aa-aa-aa-aa-aa-aa
B                     192.168.16.2                     bb-bb-bb-bb-bb-bb

C                     192.168.16.3                     cc-cc-cc-cc-cc-cc
D                     192.168.16.4                     dd-dd-dd-dd-dd-dd

        我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。

        当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标 IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A 就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问: “192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应: “192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。

三、如何查看ARP缓存表 

        ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入“arp -a”就可以查看ARP缓存表中的内容了,如附图所示。 

        用“arp -d”命令可以删除ARP表中某一行的内容;用“arp -s”可以手动在ARP表中指定IP地址与MAC地址的对应。

四、ARP欺骗 

        其实,此起彼伏的瞬间掉线或大面积的断网大都是ARP欺骗在作怪。ARP欺骗攻击已经成了破坏网吧经营的罪魁祸首,是网吧老板和网管员的心腹大患。 

        从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。 

        第一种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。 

        一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。有些网管员对此不甚了解,出现故障时,认为PC没有问题,交换机没掉线的“本事”,电信也不承认宽带故障。而且如果第一种ARP欺骗发生时,只要重启路由器,网络就能全面恢复,那问题一定是在路由器了。为此,宽带路由器背了不少 “黑锅”。 

        作为网吧路由器的厂家,对防范ARP欺骗不得已做了不少份内、份外的工作。一、在宽带路由器中把所有PC的IP-MAC输入到一个静态表中,这叫路由器 IP-MAC绑定。二、力劝网管员在内网所有PC上设置网关的静态ARP信息,这叫PC机IP-MAC绑定。一般厂家要求两个工作都要做,称其为IP- MAC双向绑定。

五、如何实现ARP攻击?针对ARP原理的例子:

        了解上面这些常识后,现在就可以谈在网络中如何实现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(icmp 0)给主机,要求主机更新主机的arp转换表。 
        6、主机找到该ip,然后在arp表中加入新的ip-->mac对应关系。 
        7、防火墙失效了,入侵的ip变成合法的mac地址,可以telnet了。

六、其他相关知识:

        tcp/ip:TCP/IP协议(Transmission Control Protocol/Internet Protocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础。 

        TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说 TCP/IP是Internet协议族,而不单单是TCP和IP。 

        TCP/IP是用于计算机通信的一组协议,我们通常称它为TCP/IP协议族。它是70年代中期美国国防部为其ARPANET广域网开发的网络体系结构和协议标准,以它为基础组建的INTERNET是目前国际上规模最大的计算机网络,正因为INTERNET的广泛使用,使得TCP/IP成了事实上的标准。 

        之所以说TCP/IP是一个协议族,是因为TCP/IP协议包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP协议。以下我们对协议族中一些常用协议英文名: 

        TCP(Transmission Control Protocol)传输控制协议 

        IP(Internet Protocol)网际协议 

        UDP(User Datagram Protocol)用户数据报协议 

        ICMP(Internet Control Message Protocol)互联网控制信息协议 

        SMTP(Simple Mail Transfer Protocol)简单邮件传输协议 

        SNMP(Simple Network manage Protocol)简单网络管理协议 

        FTP(File Transfer Protocol)文件传输协议 

        ARP(Address Resolation Protocol)地址解析协议 

        从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。

其中:

        网络接口层 这是TCP/IP软件的最低层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。 

        网络层负责相邻计算机之间的通信。其功能包括三方面。一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。二、处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。三、处理路径、流控、拥塞等问题。 

        传输层 提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送。 

        应用层向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。 TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。 

        前面我们已经学过关于OSI参考模型的相关概念,现在我们来看一看,相对于七层协议参考模型,TCP/IP协议是如何实现网络模型的。 

        OSI中的层 功能 TCP/IP协议族 

        应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 

        表示层 数据格式化,代码转换,数据加密 没有协议 

        会话层 解除或建立与别的接点的联系 没有协议 

        传输层 提供端对端的接口 TCP,UDP 

        网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP 

        数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,ARP,RARP,MTU 

        物理层 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802。IEEE802.2 

        数据链路层包括了硬件接口和协议ARP,RARP,这两个协议主要是用来建立送到物理层上的信息和接收从物理层上传来的信息; 

        网络层中的协议主要有IP,ICMP,IGMP等,由于它包含了IP协议模块,所以它是所有机遇TCP/IP协议网络的核心。在网络层中,IP模块完成大部分功能。ICMP和IGMP以及其他支持IP的协议帮助IP完成特定的任务,如传输差错控制信息以及主机/路由器之间的控制电文等。网络层掌管着网络中主机间的信息传输。 

        传输层上的主要协议是TCP和UDP。正如网络层控制着主机之间的数据传递,传输层控制着那些将要进入网络层的数据。两个协议就是它管理这些数据的两种方式:TCP是一个基于连接的协议(还记得我们在网络基础中讲到的关于面向连接的服务和面向无连接服务的概念吗?忘了的话,去看看);UDP则是面向无连接服务的管理方式的协议。 

        应用层位于协议栈的顶端,它的主要任务就是应用了。上面的协议当然也是为了这些应用而设计的,具体说来一些常用的协议功能如下: 

        Telnet:提供远程登录(终端仿真)服务,好象比较古老的BBS就是用的这个登陆。 

        FTP :提供应用级的文件传输服务,说的简单明了点就是远程文件访问等等服务; 

        SMTP:不用说拉,天天用到的电子邮件协议。 

        TFTP:提供小而简单的文件传输服务,实际上从某个角度上来说是对FTP的一种替换(在文件特别小并且仅有传输需求的时候)。 

        SNTP:简单网络管理协议。看名字就不用说什么含义了吧。 

        DNS:域名解析服务,也就是如何将域名映射城IP地址的协议。 

        HTTP:这个就更不讲了。

七、检测是否有ARP攻击的方法:

        扯了这么多,其实就这点有用:

        思路:不断清空ARP缓存,然后Ping一个域名,比如百度,这个最近也挨攻击,还是google吧。用windump工具检测就可以了:

1.    arpTest.bat:

       @echo off
       :Goon
       cd \
       arp -d
      SET LX-T1=ping 127.0.0.1 -n
      %LX-T1% 2 > nul
      ping www.google.cn

      goto Goon

        命令解释:goto,就是一个死循环;ping 127.0.0.1这段干嘛的?计时用的,ping一次的时间大约是一秒,一个循环也就是2秒循环一次,就像sleep函数。

2.    windump检测:

         windump -i 3 -n arp and host 192.168.1.1 >> d:\arpTest.log

        参数解释:-i 3 标示我的本地网卡编号,也许你的网卡编号不是这样,用windump -D参数查看仔细;192.168.1.1:我的网关地址,一段时间后查看一下日志,输入到D盘的arpTest.log文件里去了。如果网关repley的物理地址不是你网关的物理地址,则恭喜你,你成功检测到arp攻击,就这么简单。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 环路是指数据在网络中循环传输,从而导致网络拥塞和性能下降的问题。为了解决环路问题,可以使用环路检测工具。 环路检测工具可以监测并识别网络中的环路,并及时采取措施解决环路问题。当网络中有环路出现时,环路检测工具会发送探测数据包,通过检测返回的数据包路径信息来确认是否存在环路,然后进行相应的环路隔离或删除操作。 ARP攻击是指ARP协议被恶意利用,进行欺骗性的网络攻击ARP攻击者通过发送伪造的ARP响应消息,欺骗目标设备,使其将通信数据发送到攻击者指定的错误目标地址上。为了检测和防止ARP攻击,可以使用ARP攻击检测工具。 ARP攻击检测工具可以识别和监测网络中的ARP攻击行为。它通过监测网络中的ARP请求和响应消息,对比IP地址和MAC地址的一致性,以及反向匹配检查等方式,来判断是否存在ARP攻击。当检测ARP攻击时,该工具会及时进行警报或阻止攻击者继续进行攻击。 总结来说,环路和ARP攻击检测工具都是用来监测和防止网络中的问题和攻击行为。环路检测工具可以帮助解决网络中的环路问题,提高网络性能和稳定性;而ARP攻击检测工具可以识别和拦截恶意的ARP攻击,保护网络安全。 ### 回答2: 环路和ARP攻击是网络安全领域中常见的攻击方式。在对环路和ARP攻击进行检测时,有一些专用的工具可以帮助我们实现。 对于环路攻击检测,有一个常用的工具是Traceroute。Traceroute可以追踪数据包在网络中的路径,并通过确定是否存在环路来检测攻击。它通过向目标主机发送一系列的数据包,每个包都带有递增的TTL值(Time To Live),当某个数据包在网络中过期(TTL值为0)时,目标主机返回一个错误信息给源主机。通过检查这些错误信息,Traceroute可以判断网络中是否存在环路。 对于ARP攻击检测,常用的工具是ARPWatch和ArpON。ARPWatch可以监视本地网络上的ARP流量,当检测ARP欺骗攻击时,它会生成日志或发送警报通知管理员。ArpON是另一个常用的ARP防护和检测工具,它通过监听和分析网络上的ARP流量,识别和阻止不正常的ARP行为,如欺骗攻击。除了这些工具外,还有一些网络流量分析工具可以进行深入的ARP攻击检测,如Wireshark和tcpdump。 总的来说,环路和ARP攻击检测工具可以帮助网络管理员及时发现和防范网络中的攻击行为。但需要注意的是,这些工具仅仅是检测和监视工具,对于实际的攻击防御仍然需要采取其他的安全措施,如使用安全协议、加密通信等。 ### 回答3: 环路和ARP攻击是计算机网络中常见的安全威胁,为了及时发现和阻止这些攻击,可以使用专门的环路和ARP攻击检测工具。 环路检测工具主要用于检测网络中是否存在环路。环路是网络设备之间的链路形成一个闭合回路,导致网络流量在网络中无限循环,造成网络拥堵和性能下降。环路检测工具使用网络链路状态数据,通过分析链路之间的连接关系,快速识别和报告网络中的环路问题。它可以提供实时监测和警报功能,帮助网络管理员及时采取措施消除环路,提高网络的可靠性和性能。 ARP攻击检测工具主要用于检测网络中的ARP攻击行为。ARP(地址解析协议)攻击是一种利用ARP协议漏洞的攻击方式,攻击者伪造或修改网络设备的ARP缓存信息,导致网络设备将流量重定向到攻击者控制的恶意主机上。ARP攻击检测工具通过监视网络中的ARP请求和响应数据包,分析和识别异常的ARP流量模式,例如重复的ARP响应或重复的ARP请求。工具还可以进行流量监控和分析,帮助管理员及时发现和定位ARP攻击源,保护网络安全。 总结来说,环路和ARP攻击检测工具可以帮助网络管理员及时发现并应对网络中的环路和ARP攻击问题,提高网络的可靠性和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值