ARP攻击技术

ARP协议:IP地址是主机在网络层中的地址。数据链路层是不能够识别IP地址的,但网卡、交换机等都工作在数据链路层,所以如果想要将网络层中的数据包交给目的主机,必须要在数据链路层封装为有MAC地址的帧后才能发送。但是32bit的IP地址和48bit的MAC地址之间没有简单的映射关系。ARP协议就是将某个IP地址解析为对应的MAC地址的协议

每个主机都设有一个ARP高速缓存,存放局域网中主机的IP地址和MAC地址对。当两台主机进行通信时,通过查询ARP缓存表来进行IP地址到MAC地址的转换。缓存表中不存在查找项时,运行ARP广播查找目标主机的MAC地址。

ARP缓存表中的每一个映射地址项都有生存时间,进行定时更新。

 

嗅探技术:

是一种常用的收集有用数据信息的网络监听方法,是网络安全攻防技术中很重要的一种。

计算机与局域网的连接是通过主机箱内的网卡。网卡向下负责打包数据报为帧发送到局域网,向上接收正确的帧并交付网络层处理。

以太网网卡一般具有四种接收工作模式:

  • 广播模式:可以接收局域网内目的地址为广播地址的所有数据报;
  • 多播模式:可以接收目的地址为多播地址的所有数据报;
  • 直接模式:也就是单播模式,只接收目的地址为本机MAC地址的所有数据报;
  • 混杂模式:能够接收通过网卡的所有数据报。

1.共享式网络的嗅探技术

以太网的共享特性决定了嗅探能够成功。由于以太网是基于广播方式传送数据的,所有数据报都会被传送到每一个主机结点,当网卡被设置成混杂模式时,无论监听到的数据帧目的地址如何,网卡都能予以接收。

在局域网中,集线器是一种共享介质,采用单工数据操作的网络设备,工作在物理层。集线器对接收到的数据包采用广播的方式进行转发,即连接到集线器上的计算机共享带宽,并且需要处理网段内的所有数据包。

 ARP攻击技术

 

 

2.交换式网络的嗅探技术

交换机维护一张地址映射表,地址映射表记录网络节点与MAC地址的对应关系,当需要向目的地址发送数据时,交换机在地址映射表中查找这个MAC地址的节点位置,然后直接向这个位置的结点发送;如果没有找到匹配项,交换机可能会向除接收端口外的所有端口发送该数据报。在交换机的每个端口,都需要足够的缓存来记忆这些MAC地址。

对于三层交换机,地址映射表中存储的不仅仅是MAC地址了,而是MAC地址与IP地址的地址映射表。交换机在对一个数据流进行路由后,将会产生一个MAC地址和IP地址的地址映射。

ARP攻击技术

 

 

 

 

 

 

网络嗅探方法

在交换式网络环境下,要想达到嗅探的目的,可以有三个攻击点,一是交换机,二是目标主机,三是改变自己。

1.发送大量虚假的MAC地址数据报

交换机虽然可以维护一张 端口-MAC的地址映射表,但是由于交换机内存有限,地址映射表的大小也就有限。

如果主机C发送大量虚假MAC地址的数据报,快速填满地址映射表。交换机在地址映射表被填满后,就会像HUB一样以广播方式处理数据报。

这种方法不适合采用静态地址映射表的交换机,而且也不是所有交换机都采用这种转发处理方式。

2.ARP欺骗

ARP欺骗利用修改主机ARP缓存表的方法达到嗅探的目的,是一种中间人攻击。主机C为了达到嗅探的目的,会向主机A和主机B分别发送ARP应答包,告诉他们IP地址为IPB的主机MAC地址为MACC,IP地址为IPA的主机MAC地址为MACC。

这样主机A和主机B的ARP缓存中就会有IPB-MACC和IPA-MACC的记录。这样,主机A和主机B的通信数据都流向了主机C,主机C只要再发送到其真正的目的就可以了。当然APR缓存表项是动态更新的(一般为两分钟),如果没有更新信息,ARP映射项会自动删除。所以,主机C在监听过程中,还要不断向主机A和主机B发送伪造的ARP应答包。

3.修改本地MAC地址

也可以通过修改本地MAC地址为目标主机MAC地址来实现嗅探。把主机C的MAC地址修改为目标主机B的MAC地址,交换机会将MACB和端口C对应起来。

在收到目的地址为MACB的数据报后,交换机会将包从端口C发送出去。这样就达到了监听的目的。

但同样的,这种方法只适用于动态生成地址映射表的交换机,并且没有采用其他策略。

 

 

ARP攻击溯源

1.捕包分析

在网络内任意一台主机上运行抓包软件,捕获所有到达本机的数据包。如果发现有某个IP不断发送ARP Request请求包,那么这台电脑一般就是病毒源。

原理:无论何种ARP病毒变种,行为方式有两种,一是欺骗网关,二是欺骗网内所有主机。最终的结果是,在网关的ARO缓存表中,网内所有活动主机的MAC地址均为重度主机的MAC地址;网内所有主机的ARP缓存表中,网关的MAC地址也称为中毒主机的MAC地址。前者保证了从网关到网内主机的数据包被发到中毒主机,后者相反,使得主机发往网关的数据包均发送到中毒主机。

2.arp-a命令

使用arp-a命令任意选两台不能上网的主机,在DOS命令窗口下运行arp-a命令。例如在结果中,两台电脑除了网关的IP,MAC地址对应项,都包换了192.168.0.186的这个IP,则可以断定192.168.0.186这台主机就是病毒源。

原理:一般情况下,网内的主机只和网关通信。正常情况下,一台主机的ARP缓存中应该只有网关的MAC地址。如果有其他主机的MAC地址,说明本地主机和这台主机最后有过数据通信发生。如果某台主机既不是网关也不是服务器,但和网内的其他主机都有过通信活动,且此时又是ARP病毒发作时期,那么,病毒源也就是它了。

3.使用tracert命令

使用tracert命令在任意一台受影响的主机上,在DOS命令窗口下运行:tracery 61.135.179.148.

假定设置的缺省网关为10.8.6.1,在跟踪一个外网地址时,第一跳却是10.8.6.186,那么10.8.6.186就是病毒源。

原理:中毒主机在受影响主机和网关之间,扮演了“中间人”的角色。所有本应该到达网关的数据包,由于错误的MAC地址,均被发到了中毒主机。此时,中毒主机越俎代庖,起到了缺省网关的作用。

 

ARP攻击防御方法

1.减少过期时间

加快过期时间,并不能避免攻击,但是使得攻击更加困难,带来的影响是在网络中会大量的出现ARP请求和回复,请不要在繁忙的网络上使用。

2.建立静态ARP表

这是一种很有效的方法,而且对系统影响不大。缺点是破坏了动态ARP协议。可以建立如下的文件:

ip mac

ip mac

使用arp -f filename加载进去,这样的ARP映射将不会过期和被新的ARP数据刷新,除非使用arp -d才能删除。但是一旦合法主机的网卡硬件地址改变,就必须手工刷新这个arp文件。这个方法,不适合于经常变动的网络环境。

3.禁止ARP

可以通过ipconfig interface -arp完全禁止arp,这样,网卡不会发送ARP和接收ARP包。但是使用前提是使用静态ARP表,如果不再ARP表中的计算机,将不能通信。

这个方法不使用与大多数网络环境,因为这增加了网络管理的成本。但是对小规模的安全网络来说,还是有效可行的。