网络arp攻击原理
现在我们用的互联网的时间越来越多,需要掌握的网络技能也很多,那么你知道网络arp攻击原理吗?下面是小编整理的一些关于网络arp攻击原理的相关资料,供你参考。
什么是arp?
地址解析协议,即arp(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的arp请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机arp缓存中并保留一定时间,下次请求时直接查询arp缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送arp应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机arp缓存;由此攻击者就可以向某一主机发送伪arp应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个arp欺骗。arp命令可用于查询本机arp缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有Rarp、代理arp。NDP用于在IPv6中代替地址解析协议。
网络arp攻击原理:
针对arp表的攻击,arp表是IP地址和MAC地址的映射关系表,任何实现了IP协议栈的设备,一般情况下都通过该表维护IP地址和MAC地址的对应关系,这是为了避免arp解析而造成的广播数据报文对网络造成冲击。arp表的建立一般情况下是通过二个途径:
1、 主动解析,如果一台计算机想与另外一台不知道MAC地址的计算机通信,则该计算机主动发arp请求,通过arp协议建立(前提是这两台计算机位于同一个IP子网上);
2、 被动请求,如果一台计算机接收到了一台计算机的arp请求,则首先在本地建立请求计算机的IP地址和MAC地址的对应表。
因此,如果一个攻击者通过变换不同的IP地址和MAC地址,向同一台设备,比如三层交换机发送大量的arp请求,则被攻击设备可能会因为arp缓存溢出而崩溃。
针对arp表项,还有一个可能的攻击就是误导计算机建立正确的arp表。根据arp协议www.runet.cn,如果一台计算机接收到了一个arp 请求报文,在满足下列两个条件的情况下,该计算机会用arp请求报文中的源IP地址和源MAC地址更新自己的arp缓存:
1、 如果发起该arp请求的IP地址在自己本地的arp缓存中;
2、 请求的目标IP地址不是自己的。
可以举一个例子说明这个过程,假设有三台计算机A,B,C,其中B已经正确建立了A和C计算机的arp表项。假设A是攻击者,此时,A发出一个arp请求报文,该请求报文这样构造:
1、 源IP地址是C的IP地址,源MAC地址是A的MAC地址;
2、 请求的目标IP地址是A的IP地址。
这样计算机B在收到这个arp请求报文后(arp请求是广播报文,网络上所有设备都能收到),网站防御系统发现B的arp表项已经在自己的缓存中,但MAC地址与收到的请求的源MAC地址不符,于是根据arp协议,使用arp请求的源MAC地址(即A的MAC地址)更新自己的arp表。
这样B的arp混存中就存在这样的错误arp表项:C的IP地址跟A的MAC地址对应。这样的结果是, B发给C的数据都被计算机A接收到。
针对流项目表的攻击
有的网络设备为了加快转发效率,建立了所谓的流缓存。所谓流,可以理解为一台计算机的一个进程到另外一台计算机的一个进程之间的数据流。如果表现在TCP/IP协议上,则是由(源IP地址,目的IP地址,协议号,源端口号,目的端口号)五元组共同确定的所有数据报文。
一个流缓存表一般由该五元组为索引,每当设备接收到一个IP报文后,会首先分析IP报头,把对应的五元组数据提取出来,进行一个HASH运算,然后根据运算结果查询流缓存,如果查找成功,则根据查找的结果进行处理,如果查找失败,则新建一个流缓存项,查路由表,根据路由表查询结果填完整这个流缓存,然后对数据报文进行转发(具体转发是在流项目创建前还是创建后并不重要)。
可以看出,如果一个攻击者发出大量的源IP地址或者目的IP地址变化的数据报文,就可能导致设备创建大量的流项目,因为不同的源IP地址和不同的目标IP地址对应不同的流。这样可能导致流缓存溢出。
网络arp攻击原理的评论条评论