ARP病毒原理及防御

ARP病毒原理及防御以及如何快速定位ARP病毒源。

ARP协议

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

一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址,所以用ARP解析协议将IP地址解

析成MAC地址。ARP协议的基本功能就是通过目标设备的IP地址,来查询目标设备的mac地址。

在局域网的任意一台主机中,都有一个ARP缓存表,里面保存本机已知的此局域网中各主机和路由器的IP地址和MAC地址的对照关系。ARP缓存

表的生命周期是有时限的(一般不超过20分钟)。

假设局域网中有A,B,C,D四台主机

主机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的信息,同时也会动态的更新自身的缓存表

缺陷

ARP协议是建立在信任局域网内所有节点的基础上的,他的效率很高。但是不安全。它是无状态的协议。他不会检查自己是否发过请求包,

也不知道自己是否发过请求包。他也不管是否合法的应答,只要收到目标mac地址是自己的ARP reply或者ARP广播包(包括ARP reply和ARP request),

都会接受并缓存。

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将会监听到整个局域网发送给互联网的数据报。

如何快速找到病毒源

使用Sniffer抓包

在网络内任意一台主机上运行抓包软件,捕获所有到达本机的数据包。如果发现有某个IP不断发送请求包,那么这台电脑一般就是病毒源。原理:无论何种ARP病毒变种,行为方式有两种,一是欺骗网关,二是欺骗网内的所有主机。

使用arp -a命令

任意选两台不能上网的主机,在DOS命令窗口下运行arp -a命令。例如在结果中,两台电脑除了网关的IP,MAC地址对应项,都包含了192.168.0.186的这个IP,则可以断定192.168.0.186这台主机就是病毒源。原理:一般情况下,网内的主机只和网关通信。

使用tracert命令

在任意一台受影响的主机上,在DOS命令窗口下运行如下命令:tracert 61.135.179.148。 假定设置的缺省网关为10.8.6.1,在跟踪一个外网地址时,第一跳却是10.8.6.186,那么,10.8.6.186就是病毒源。原理:中毒主机在受影响主机和网关之间,扮演了“中间人”的角色。所有本应该到达网关的数据包,由于错误的MAC地址,均被发到了中毒主机。此时,中毒主机越俎代庖,起了缺省网关的作用。

ARP防御

ARP双向绑定

在pc端上 IP+mac 绑定

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

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

建立DHCP服务器

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

划分安全区域

ARP广播包是不能跨子网或网段传播的,网段可以隔离广播包。VLAN就是一个逻辑广播域,通过VLAN技术可以在局域网中创建多个子网,就在局域网中隔离了广播,缩小感染范围。