什么是ARP?如何防范ARP欺骗?

本文详细介绍了ARP协议及其欺骗方式,特别是针对校园网中的新型ARP欺骗木马病毒,包括其工作原理、中毒现象及多种应对措施,如检查染毒进程、设置ARP表、使用安全工具等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    这几天学校机房老不能正常上网,可苦了我们这几个信息老师,四个人中有三个人的教学内容和网络有关,没有网络课怎么能上好,对面的同事表现的很无奈,学生都对她不在机房上课有意见了。电信部门的师傅来看后,测试结果显示是我们内网的问题,估计是ARP中毒了。书呆子的我还真不清楚这个ARP是个什么东东,查询的资料贴过来大家共享:

什么是ARP?
    ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的低层协议,负责将某个IP地址解析成对应的MAC地址。

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

     近期,一种新型的“ ARP 欺骗”木马病毒正在校园网中扩散,严重影响了校园网的正常运行。感染此木马的计算机试图通过“ ARP 欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。ARP欺骗木马的中毒现象表现为:使用校园网时会突然掉线,过一段时间后又会恢复正常。比如客户端状态频频变红,用户频繁断网,IE浏览器频繁出错,以及一些常用软件出现故障等。如果校园网是通过身份认证上网的,会突然出现可认证,但不能上网的现象(无法ping通网关),重启机器或在MS-DOS窗口下运行命令arp -d后,又可恢复上网。ARP欺骗木马十分猖狂,危害也特别大,各大学校园网、小区网、公司网和网吧等局域网都出现了不同程度的灾情,带来了网络大面积瘫痪的严重后果。ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马发作时除了会导致同一局域网内的其他用户上网出现时断时续的现象外,还会窃取用户密码。如盗取QQ密码、盗取各种网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法交易活动等,这是木马的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。

  如何检查和处理“ ARP 欺骗”木马的方法
1 .检查本机的“ ARP 欺骗”木马染毒进程

同时按住键盘上的“ CTRL ”和“ ALT ”键再按“ DEL ”键,选择“任务管理器”,点选“进程”标签。察看其中是否有一个名为“ MIR0.dat ”的进程。如果有,则说明已经中毒。右键点击此进程后选择“结束进程”。参见右图。

2 .检查网内感染“ ARP 欺骗”木马染毒的计算机
在“开始” - “程序” - “附件”菜单下调出“命令提示符”。输入并执行以下命令:
ipconfig
记录网关 IP 地址,即“ Default Gateway ”对应的值,例如“ 59.66.36.1 ”。再输入并执行以下命令:
arp –a
在“ Internet Address ”下找到上步记录的网关 IP 地址,记录其对应的物理地址,即“ Physical Address ”值,例如“ 00-01-e8-1f-35-54 ”。在网络正常时这就是网关的正确物理地址,在网络受“ ARP 欺骗”木马影响而不正常时,它就是木马所在计算机的网卡物理地址。
也可以扫描本子网内的全部 IP 地址,然后再查 ARP 表。如果有一个 IP 对应的物理地址与网关的相同,那么这个 IP 地址和物理地址就是中毒计算机的 IP 地址和网卡物理地址。

3 .设置 ARP 表避免“ ARP 欺骗”木马影响的方法
本方法可在一定程度上减轻中木马的其它计算机对本机的影响。用上边介绍的方法确定正确的网关 IP 地址和网关物理地址,然后在 “命令提示符”窗口中输入并执行以下命令:
arp –s 网关 IP 网关物理地址

4.态ARP绑定网关
  步骤一:
  在能正常上网时,进入MS-DOS窗口,输入命令:arp -a,查看网关的IP对应的正确MAC地址, 并将其记录下来。
  注意:如果已经不能上网,则先运行一次命令arp -d将arp缓存中的内容删空,计算机可暂时恢复上网(攻击如果不停止的话)。一旦能上网就立即将网络断掉(禁用网卡或拔掉网线),再运行arp -a。
  步骤二:
  如果计算机已经有网关的正确MAC地址,在不能上网只需手工将网关IP和正确的MAC地址绑定,即可确保计算机不再被欺骗攻击。
  要想手工绑定,可在MS-DOS窗口下运行以下命令:
  arp -s 网关IP 网关MAC
  例如:假设计算机所处网段的网关为192.168.1.1,本机地址为192.168.1.5,在计算机上运行arp -a后输出如下:
  Cocuments and Settings>arp -a
  Interface:192.168.1.5 --- 0x2
  Internet Address Physical Address Type
  192.168.1.1  00-01-02-03-04-05 dynamic
  其中,00-01-02-03-04-05就是网关192.168.1.1对应的MAC地址,类型是动态(dynamic)的,因此是可被改变的。
  被攻击后,再用该命令查看,就会发现该MAC已经被替换成攻击机器的MAC。如果希望能找出攻击机器,彻底根除攻击,可以在此时将该MAC记录下来,为以后查找该攻击的机器做准备。
  手工绑定的命令为:
  arp -s 192.168.1.1  00-01-02-03-04-05
  绑定完,可再用arp -a查看arp缓存:
  Cocuments and Settings>arp -a
  Interface: 192.168.1.5 --- 0x2
  Internet Address Physical Address Type
  192.168.1.1  00-01-02-03-04-05 static
  这时,类型变为静态(static),就不会再受攻击影响了。
  但是,需要说明的是,手工绑定在计算机关机重启后就会失效,需要再次重新绑定。所以,要彻底根除攻击,只有找出网段内被病毒感染的计算机,把病毒杀掉,才算是真正解决问题。

5 .作批处理文件
  在客户端做对网关的arp绑定,具体操作步骤如下:
  步骤一:
  查找本网段的网关地址,比如192.168.1.1,以下以此网关为例。在正常上网时,“开始→运行→cmd→确定”,输入:arp -a,点回车,查看网关对应的Physical Address。
比如:网关192.168.1.1 对应00-01-02-03-04-05。
  步骤二:
  编写一个批处理文件rarp.bat,内容如下:
  @echo off
  arp -d
  arp -s  192.168.1.1  00-01-02-03-04-05
  保存为:rarp.bat。
  步骤三:
  运行批处理文件将这个批处理文件拖到“Windows→开始→程序→启动”中,如果需要立即生效,请运行此文件。
  注意:以上配置需要在网络正常时进行

6.使用安全工具软件
  及时下载Anti ARP Sniffer软件保护本地计算机正常运行。具体使用方法可以在网上搜索。
  如果已有病毒计算机的MAC地址,可使用NBTSCAN等软件找出网段内与该MAC地址对应的IP,即感染病毒的计算机的IP地址,然后报告单位的网络中心对其进行查封。
  或者利用单位提供的集中网络防病毒系统来统一查杀木马。另外还可以利用木马杀客等安全工具进行查杀。

7.应急方案
  网络管理管理人员利用上面介绍的ARP木马检测方法在局域网的交换机上查出受感染该病毒的端口后,立即关闭中病毒的端口,通过端口查出相应的用户并通知其彻底查杀病毒。而后,做好单机防范,在其彻底查杀病毒后再开放相应的交换机端口,重新开通上网。
附录一
清华大学校园网络安全响应小组编的一个小程序
下载地址:
ftp://166.111.8.243/tools/ArpFix.rar

清华大学校园网络安全响应小组编了一个小程序,它可以保护您的计算机在同一个局域网内部有ARP欺骗木马计算机的攻击时,保持正常上网。具体使用方法:
1、 程序运行后请先选择网卡,选定网卡后点击“选定”按钮。
2、 选定网卡后程序会自动获取您机器的网关地址。
3、获得网关地址后请点击获取MAC地址按钮获取正确的网关MAC地址。
4、 确认网关的MAC地址后请点击连接保护,程序开始保护您的机器。
5、 点击程序右上角的叉,程序自动隐藏到系统托盘内。
6、要完全退出程序请在系统托盘中该程序图标上点击右键选择EXIT。
注意:
1、这个程序只是一个ARP攻击保护程序,即受ARP木马攻击时保持自己计算机的MAC地址不被恶意篡改,从而在遭受攻击时网络不会中断。本程序并不能清除已经感染的ARP木马,要预防感染或杀除木马请您安装正版的杀毒软件!


附录二
Anti Arp Sniffer 的用法
下载地址:
http://www.wipe.edu.cn/Files/wlzx/Antiarp.rar

双击Antiarp文件,出现图二所示对话框。

图二
输入网关地址(网关地址获取方式:[开始] -->[程序]--> [附件]菜单下调出“命令提示符”,输入ipconfig,其中Default Gateway即为网关地址);点击获取网关MAC地址,点击自动防护保证当前网卡与网关的通信不被第三方监听。
点击恢复默认,然后点击防止地址冲突,如频繁的出现IP地址冲突,这说明攻击者频繁发送ARP欺骗数据包。

右击[我的电脑]-->[管理]-->点击[事件查看器]-->点击[系统]-->查看来源为[TcpIP]--->双击事件可以看到显示地址发生冲突,并记录了该MAC地址,请复制该MAC地址并填入Anti ARP Sniffer的本地MAC地址输入框中(请注意将:转换为-),输入完成之后点击[防护地址冲突],为了使MAC地址生效请禁用本地网卡然后再启用网卡,在CMD命令行中输入Ipconfig /all,查看当前MAC地址是否与本地MAC地址输入框中的MAC地址相符,如果成功将不再会显示地址冲突。
注:1、如果您想恢复默认MAC地址,请点击[恢复默认],为了使MAC地址生效请禁用本地网卡然后再启用网卡;本软件不支持多网卡,部分网卡可能更改MAC会无效。
 
    根据以上内容判断,估计我们的机器可能是属于ARP欺骗的第二种,对内网PC的网关欺骗,怪不得我们的网关老是ping不通。除了上面给出清华的这个小软件,昨天我用的是个彩影,也还不错。
 
<think>我们正在讨论ARP协议,用户已经提供了几个引用,我需要基于这些引用来解释ARP协议的定义、作用和工作原理。 根据引用[1]:ARP是地址解析协议,用于通过IP地址解析MAC地址,它在TCP/IP模型中被划分为网络层,是网络层和链路层之间的重要枢纽。 引用[2]:ARP协议采用广播方式发送请求,只有目标主机会响应,其他主机丢弃该请求。 引用[3]:ARP协议报文大小是28字节,并且可以用于任意网络层地址到任意物理地址的转换。 引用[4]:ARP用于将数据包封装在帧中,使用数据链路标识(如MAC地址)来传送帧。 因此,我的回答结构应该包括: 1. ARP协议的定义 2. ARP协议的作用 3. ARP协议的工作原理(包括请求和响应过程) 4. ARP缓存表的作用 5. 可能的相关问题 注意:用户要求使用中文回答,并且按照格式要求处理数学表达式(虽然ARP协议中可能没有太多数学,但如果有数字或公式,要正确使用LaTeX)。同时,在引用处添加引用标识。 由于用户之前的问题是关于IP层的TTL,现在转向ARP协议,虽然ARP通常被归类为网络层协议,但它是为链路层服务的,所以我们可以强调它在网络层和链路层之间的桥梁作用。 另外,用户提供的引用中提到了ARP协议的工作原理,包括广播请求和单播响应,以及ARP缓存表,这些都需要在回答中体现。 我将按照以下结构组织回答: ### ARP协议详解 #### **ARP协议的定义** 根据引用[1][3],ARP(地址解析协议)是一种用于将网络层地址(如IPv4地址)解析为数据链路层地址(如MAC地址)的网络协议。它在TCP/IP模型中属于网络层协议,是网络层与链路层之间的关键枢纽[^1][^3]。 #### **ARP协议的作用** 1. **地址解析**:实现IP地址到MAC地址的映射(如将`192.168.1.1`解析为`00-1A-2B-3C-4D-5E`)[^1][^4] 2. **数据封装基础**:为数据包在数据链路层的帧封装提供目标MAC地址,确保帧能够通过物理网络正确传输[^4] 3. **网络通信桥梁**:解决IP地址(逻辑地址)与MAC地址(物理地址)之间的转换问题,使上层应用无需关注底层硬件细节[^1] #### **ARP协议的工作原理** ARP协议采用**请求-响应机制**,具体流程如下: 1. **ARP请求(广播)** - 当主机A需要与主机B(IP地址已知)通信时,先检查本地ARP缓存表 - 若未找到B的MAC地址,主机A构建一个ARP请求帧: ```plaintext 源MAC:主机A的MAC 目标MAC:FF:FF:FF:FF:FF:FF(广播地址) 源IP:主机A的IP 目标IP:主机B的IP ``` (注:ARP请求帧封装在以太网帧中,类型字段为`0x0806`[^3]) - 该广播帧被同一局域网内所有主机接收[^2] 2. **ARP响应(单播)** - 除主机B外,其他主机发现目标IP不匹配,丢弃该请求[^2] - 主机B识别到自身IP后: a. 将主机A的IP-MAC映射存入本地ARP缓存 b. 向主机A单播发送ARP响应帧(包含自身MAC地址) 3. **通信建立** - 主机A收到响应后: a. 更新ARP缓存表(记录主机B的IP-MAC映射) b. 使用该MAC地址封装数据帧并发送 **关键点**: - ARP报文长度为28字节(不含以太网帧头)[^3] - 广播请求 → 单播响应的设计减少网络流量 #### **ARP缓存表的作用** - 存储近期解析过的IP-MAC映射(如Windows系统通过`arp -a`查看) - 有效减少ARP广播次数,提升网络效率 - 表项通常具有时效性(如Windows默认缓存20分钟),避免地址变更导致通信错误[^1] #### **工作流程示例** ```mermaid graph LR A[主机A] -- 广播ARP请求 --> B(所有主机) B -- 丢弃请求 --> C[主机C] B -- 丢弃请求 --> D[主机D] B --> E[主机B] -- 单播响应 --> A ``` ### 相关问题 1. ARP协议是否可能引发安全问题?如何防范ARP欺骗? 2. RARP协议与ARP协议有何区别? 3. 跨网段通信时ARP如何工作? 4. ARP缓存表的老化时间如何设置? 5. 如何通过命令行查看和清除ARP缓存? 注意:在回答中,我引用了用户提供的引用,并在相应的位置添加了引用标识[^1][^2][^3][^4]。同时,由于没有数学公式,所以没有使用LaTeX,但如果有,会按照要求处理。 另外,我使用了mermaid语法来绘制一个简单的工作流程图,但考虑到平台兼容性,也可以使用纯文字描述。如果用户的环境不支持mermaid,我们可以用文字描述代替。 由于用户要求生成相关问题,我在最后列出了5个相关问题。 现在,我将按照上述结构编写回答。</think>### ARP协议详解 #### **ARP协议的定义** ARP(Address Resolution Protocol,地址解析协议)是一种**网络层协议**,用于实现**IP地址到MAC地址的动态映射**。它在TCP/IP协议栈中处于网络层(OSI模型的第3层),充当网络层与数据链路层之间的转换枢纽[^1][^3]。核心功能是将32位的IPv4地址(逻辑地址)转换为48位的MAC地址(物理地址),使数据能在物理网络中正确传输。 #### **ARP协议的核心作用** 1. **地址解析桥梁** 解决IP地址(网络层标识)与MAC地址(数据链路层标识)之间的转换问题,使上层应用无需关注底层硬件细节[^1]。 *类比:如同应用程序开发者调用驱动程序API,无需直接操作硬件[^1]* 2. **数据封装基础** 为IP数据包提供目标MAC地址,使数据包能被封装成数据链路层帧(如以太网帧)进行传输[^4] 3. **网络通信保障** 确保同一局域网内的设备能通过MAC地址相互识别,实现点对点通信 #### **ARP协议工作原理** 采用**广播请求-单播响应**机制,具体流程如下: 1. **检查本地ARP缓存** - 主机A(IP_A)欲向主机B(IP_B)发送数据 - 先查询本地ARP缓存表是否存在IP_B对应的MAC_B - 若存在,直接使用该地址封装数据帧 2. **广播ARP请求帧** ```mermaid graph LR A[主机A] -->|广播ARP请求| B(所有主机) B --> C[主机C] -->|丢弃| D[无效] B --> E[主机B] -->|响应| A ``` - 若缓存无记录,主机A构造ARP请求帧: - 目标MAC地址:`FF:FF:FF:FF:FF:FF`(广播地址) - 目标IP地址:`IP_B` - 源IP地址:`IP_A` - 源MAC地址:`MAC_A` - 通过数据链路层广播至整个网段[^2][^3] 3. **目标主机响应** - 网段内所有主机收到广播帧 - 非目标主机(如主机C)检查目标IP后丢弃请求[^2] - 目标主机B识别自身IP后: a. 将IP_A→MAC_A映射存入本地ARP缓存 b. 单播发送ARP响应帧给主机A(包含自身MAC_B) 4. **更新缓存并通信** - 主机A收到响应后: a. 更新ARP缓存表(记录IP_B→MAC_B) b. 用MAC_B封装数据帧开始通信 - ARP缓存有效期通常为15-20分钟(防地址变更) #### **技术细节** - **报文结构**:28字节(不含帧头),包含: - 硬件类型(如以太网=1) - 协议类型(如IPv4=0x0800) - 操作码(请求=1,响应=2) - 源/目标IP及MAC地址[^3] - **帧标识**:以太网帧类型字段为`0x0806`[^3] - **跨网段通信**:通过网关ARP实现(解析网关MAC地址) #### **典型应用场景** 1. 主机首次访问局域网内设备 2. 设备更换网卡后重新通信 3. 网络设备(路由器)转发数据前解析下一跳MAC --- ### 相关问题 1. ARP缓存中毒攻击的原理是什么?如何防御? 2. 免费ARP(Gratuitous ARP)有什么特殊作用? 3. 代理ARP与普通ARP有何区别? 4. IPv6是否还需要ARP协议? 5. 如何通过命令行查看系统的ARP缓存表?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值