ARP攻击原理简析及防御措施

0x1  简介

网络欺骗攻击作为一种非常专业化的攻击手段,给网络安全管理者,带来严峻的考验。网络安全的战场已经从互联网蔓延到用户内部的网络,特别是局域网。目前利用ARP欺骗的木马病毒在局域网中广泛传播,导致网络随机掉线甚至整体瘫痪,通讯被窃听,信息被篡改等严重后果。

0x2  ARP协议概述

ARP协议(address resolution protocol)地址解析协议

一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址,所以用ARP解析协议将IP地址解析成MAC地址。ARP协议的基本功能就是通过目标设备的IP地址,来查询目标设备的mac地址。

在局域网的任意一台主机中,都有一个ARP缓存表,里面保存本机已知的此局域网中各主机和路由器的IP地址和MAC地址的对照关系。ARP缓存表的生命周期是有时限的(一般不超过20分钟)。

举个例子:假设局域网中有四台主机


主机


IP地址


MAC地址


网关


A


192.168.0.2


Mac-a


192.168.0.1


B


192.168.0.3


Mac-b


192.168.0.1


C


192.168.0.4


Mac-c


192.168.0.1


D


192.168.0.5


Mac-d


192.168.0.1

主机A想和主机B通信

主机A会先查询自己的ARP缓存表里有没有B的联系方式,有的话,就将mac-b地址封装到数据包外面,发送出去。没有的话,A会向全网络发送一个ARP广播包,大声询问:我的IP地址是192.168.0.2,硬件地址是mac-a,我想知道IP地址是192.168.0.3的硬件地址是多少?   此时,局域网内所有主机都收到了,B收到后会单独私密回应:我是192.168.0.3,我的硬件地址是mac-b,其他主机不会理A的此时A知道了B的信息,同时也会动态的更新自身的缓存表

0x3 ARP协议的缺陷

ARP协议是建立在信任局域网内所有节点的基础上的,他的效率很高。但是不安全。它是无状态的协议。他不会检查自己是否发过请求包,也不知道自己是否发过请求包。他也不管是否合法的应答,只要收到目标mac地址是自己的ARP reply或者ARP广播包(包括ARP reply和ARP request),都会接受并缓存。

0x4 ARP攻击原理

ARP欺骗攻击建立在局域网主机间相互信任的基础上的当A发广播询问:我想知道IP是192.168.0.3的硬件地址是多少?

此时B当然会回话:我是IP192.168.0.3我的硬件地址是mac-b,可是此时IP地址是192.168.0.4的C也非法回了:我是IP192.168.0.3,我的硬件地址是mac-c。而且是大量的。

所以A就会误信192.168.0.3的硬件地址是mac-c,而且动态更新缓存表这样主机C就劫持了主机A发送给主机B的数据,这就是ARP欺骗的过程。

假如C直接冒充网关,此时主机C会不停的发送ARP欺骗广播,大声说:我的IP是192.168.0.1,我的硬件地址是mac-c,此时局域网内所有主机都被欺骗,更改自己的缓存表,此时C将会监听到整个局域网发送给互联网的数据报。

0x5  ARP病毒攻击症状

通常表现:-打开网页速度非常慢,甚至打不开

-提示IP地址冲突

-甚至导致校园网瘫痪断网

-一般会绑定木马病毒,窃取用户账号密码

0x6  ARP病毒攻击形式

  1. 从协议内部分析

-假冒ARP reply包(单波或广播),向单台主机或多台主机发送虚假的IP/MAC地址

-假冒ARP request包(单播或广播),实际上是单播或广播虚假的IP、MAC映射。

-假冒中间人,启用包转发向两端主机发送假冒的ARP reply,由于ARP缓存的老化机制,有时还需要做周期性连续性欺骗。

2.  从影响网络连接通畅的角度看

-对路由ARP表的欺骗

ARP病毒截获网关数据,让路由器获得错误的内网MAC地址,导致路由器把数据发送给错误的mac,是内网内的主机断网

-伪造内网网关

ARP病毒通过冒充网关,是内网计算机发送的数据无法到达真正的路由器网关,导致内网计算机断网

0x7 ARP欺骗攻击监测技术

1.手动监测

网络管理员可以通过命令查看主机的ARP表或路由器的ARP表

也可以用Sniffer工具进行抓包,查看可疑的<IP,MAC>地址映射

2.动态监测

- 被动监测 (ARP watch,ARP Guard)

仅监测网路中是否存在ARP欺骗,不主动向外发送ARP报文

-主动监测(ARP防火墙)

能够动态的监测局域网内针对本主机和针对网关的ARP欺骗,但如果配置错误,ARP防火墙会向局域网内发送大量的ARP报文,造成ARP报文的广播风暴,影响网络通信。

在这里推荐一款查看局域网Mac地址和主机IP匹配显示的软件:Nbtscan  很好用网上也有使用说明,对于查找攻击主机很犀利、

0x8  ARP欺骗攻击的防御

-ARP双向绑定

在pc端上 IP+mac 绑定

在网络设备(交换路由)上 采用ip+mac+端口绑定

网关也进行IP和mac的静态绑定

-采用支持ARP过滤的防火墙

-建立DHCP服务器

ARP攻击一般先攻击网关,将DHCP服务器建立在网关上

-划分安全区域

ARP广播包是不能跨子网或网段传播的,网段可以隔离广播包。VLAN就是一个逻辑广播域,通过VLAN技术可以在局域网中创建多个子网,就在局域网中隔离了广播。。缩小感染范围。  但是,安全域划分太细会使局域网的管理和资源共享不方便。

前几天体育课认识的一基友,遭ARP攻击了,问我怎么防,直接给我问懵了,就看了看,对于个人来说,在局域网内遭ARP攻击,还能咋办,除了装ARP防火墙,用代理,我也没辙。

不过最好的办法就是用arp  –a命令查看一下arp缓存表,看谁在攻击你,打电话给网管,让网管灭了它。

作者:manue1

来源:51CTO

时间: 2024-11-03 14:48:29

ARP攻击原理简析及防御措施的相关文章

PHP的错误报错级别设置原理简析

原理简析 摘录php.ini文件的默认配置(php5.4): ; Common Values: ; E_ALL (Show all errors, warnings and notices including coding standards.) ; E_ALL & ~E_NOTICE (Show all errors, except for notices) ; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for

Java Annotation 及几个常用开源项目注解原理简析

文简单介绍下 Annotation 示例.概念及作用.分类.自定义.解析,并对几个 Android 开源库 Annotation 原理进行简析. PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示例 Override Annotation Java 1 2 @Override public void onCreate(Bundle savedIns

腾讯Android自动化测试实战3.2 Robotium原理简析

3.2 Robotium原理简析 如前文所述,一个基本的自动化测试用例主要分为获取控件.控件操作.断言三个步骤,而在实际编写测试用例的过程中,我们常常会遇到各种各样的问题,比如: 在这样的UI结构下该如何获取控件? 为何报这样或那样的错? 明明滑动了为何没有效果? 因为不同的项目有其自身的独特性与复杂性,没有任何书籍可以解决实际过程中遇到的所有问题,甚至即使求助Google搜索也可能得不到自己想要的答案.因此,对于任何一门技术而言都很有必要知其然并知其所以然,只有了解了其原理实现,才能更高效地运

图解接入层交换机防ARP攻击原理

交换机要防御ARP攻击,就必须能够识别并读取ARP报文内容, 然后根据报文内容判断是否存在欺骗攻击行为,对于ARP欺骗报文进行丢弃处理.在接入层就是利用接入交换机的ARP入侵检测(ARP Intrusion Inspection)功能,进行ARP欺骗攻击防御. 498)this.w idth=498;' onmousewheel = 'javascript:return big(this)' height=256 alt="" src="/files/uploadimg/20

ARP攻击原理及解决方法

故障原因 局域网内有人使用ARP欺骗的木马程序(比如:传奇盗号的软件,某些传奇外挂中也被恶意加载了此程序). 故障原理 要了解故障原理,我们先来了解一下ARP协议. 在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的.ARP协议对网络安全具有重要的意义.通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞. ARP协议是"Address Resolution Protocol"(地址解析协议)的缩写.在局域网中,网络中实际

cpu工作原理简析

在了解CPU工作原理之前,我们先简单谈谈CPU是如何生产出来的.CPU是在特别纯净的硅材料上制造的.一个CPU芯片包含上百万个精巧的晶体管.人们在一块指甲盖大小的硅片上,用化学的方法蚀刻或光刻出晶体管.因此,从这个意义上说,CPU正是由晶体管组合而成的.简单而言,晶体管就是微型电子开关,它们是构建CPU的基石,你可以把一个晶体管当作一个电灯开关,它们有个操作位,分别代表两种状态:ON(开)和OFF(关).这一开一关就相当于晶体管的连通与断开,而这两种状态正好与二进制中的基础状态"0"和

Android热补丁技术—dexposed原理简析(手机淘宝采用方案)

上篇文章<Android无线开发的几种常用技术>我们介绍了几种android移动应用开发中的常用技术,其中的热补丁正在被越来越多的开发团队所使用,它涉及到dalvik虚拟机和android的一些核心技术,现在就来介绍下它的一些原理. 本篇先介绍dexposed方案:https://github.com/alibaba/dexposed,它是手机淘宝团队使用的热补丁方案,后来开源到github上,取的名字dexposed表明了自己是基于大名鼎鼎的xposed hook方案,有饮水思源.回馈开源项

委托的使用与原理简析

一.委托声明与本质 1.声明委托 public delegate void SayHelloDelegate(string who); 2.使用ILSpy反编译后,看其本质 public class auto ansi sealed SayHelloDelegate: MulticastDelegate 编译器自动生成了一个委托类,继承自MulticastDelegate 委托被标识为class,说明委托是一种数据类型:类 委托类即可嵌套在一个类型中定义,也可以在全局范围中定义,就是说由于委托是

JavaScript mapreduce工作原理简析_基础知识

谷歌在2003到2006年间连续发表了三篇非常有影响力的文章,分别是2003年在SOSP上发布的GFS,2004年在OSDI上发布的MapReduce,以及2006年在OSDI上发布的BigTable.GFS是文件系统相关的,其对后来的分布式文件系统设计具有指导意义:MapReduce是一种并行计算的编程模型,用于作业调度:BigTable是一个用于管理结构化数据的分布式存储系统,构建在GFS.Chubby.SSTable等Google技术之上.相当多的Google应用使用了这三种技术,比如Go