APP下载

浅谈局域网中ARP欺骗攻击及安全防范

2009-07-16张学林

新媒体研究 2009年8期
关键词:安全防范局域网

王 明 张学林

[摘要]介绍ARP协议的定义和工作原理,分析ARP欺骗攻击的过程和攻击危害,分析ARP病毒,有针对性提出解决ARP欺骗攻击方案,最后给出安全防范的措施和原则。

[关键词]ARP协议 局域网 ARP欺骗 安全防范

中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0420061-02

一、ARP欺骗原理

ARP欺骗就是一种用于会话劫持攻击中的常见手法。地址解析协议(ARP)利用第2层物理MAC地址来映射第3层逻辑IP地址,如果设备知道了IP地址,但不知道被请求主机的MAC地址,它就会发送ARP请求。ARP请求通常以广播形式发送,以便所有主机都能收到。

在电信一般接终端的交换机都是2层交换机,交换原理是通过IP寻找对应的MAC网卡地址,由于TCP/IP协议决定了只会通过MAC寻址到对应的交换机的物理端口,所以才会遭到ARP欺骗攻击。

首先局域网的某一台电脑中了ARP病毒,通过他自动发送ARP欺骗包,正常的TCP/IP网络是不会有这样的错误包发送的,而人工发送又比较麻烦。也就是说当黑客没有运行这个恶毒程序的话,网络上通信应该是一切正常的,保留在各个连接网络计算机上的ARP缓存表也应该是正确的,只有程序启动开始发送错误ARP信息以及ARP欺骗包时才会让某些计算机访问网络出现问题。接下来我们来阐述下ARP欺骗的原理。

第一步:假设这一个网络,一个Hub或交换机连接了3台机器,依次是计算机A,B,C。

A的地址为:IP:192.168.1.1 MAC:AA-AA-AA-AA-AA-AA

B的地址为:IP:192.168.1.2 MAC:BB-BB-BB-BB-BB-BB

C的地址为:IP:192.168.1.3 MAC:CC-CC-CC-CC-CC-CC

第二步:正常情况下在A计算机上运行ARP -A查询ARP缓存表应该出现如下信息。

Interface:192.168.1.1 on Interface 0x1000003

Internet Address Physical Address Type

192.168.1.3 CC-CC-CC-CC-CC-CC dynamic

第三步:在计算机B上运行ARP欺骗程序,来发送ARP欺骗包。

B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A可不知道被伪造了)。而且A不知道其实是从B发送过来的,A 这里只有192.168.10.3(C

的IP地址)和无效的DD-DD-DD-DD-DD-DD mac地址。

第四步:欺骗完毕我们在A计算机上运行ARP-A来查询ARP缓存信息。你会发现原来正确的信息现在已经出现了错误。

从上面的介绍我们可以清楚的明白原来网络中传输数据包最后都是要根据MAC地址信息的,也就是说虽然我们日常通讯都是通过IP地址,但是最后还是需要通过ARP协议进行地址转换,将IP地址变为MAC地址。而上面例子中在计算机A上的关于计算机C的MAC地址已经错误了,所以即使以后从A计算机访问C计算机这个192.168.1.3这个地址也会被ARP协议错误的解析成MAC地址为DD-DD-DD-DD-DD-DD的。

ARP欺骗可以造成内部网络的混乱,让某些被欺骗的计算机无法正常访问内外网,让网关无法和客户端正常通信。实际上他的危害还不仅仅如此,由于系统并不会判断ARP缓存的正确与否,无法像IP地址冲突那样给出提示。由于网关MAC地址错误,所以从网络中计算机发来的数据无法正常发到网关,自然无法正常上网。这就造成了无法访问外网的问题。

二、ARP病毒分析

由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的木马程序停止运行时,用户会恢复从路由器上网,切换过程中用户会再断一次线。

在路由器的“系统历史记录”中看到大量如下的信息:

MAC Chged 10.128.103.124

MAC Old 00:01:6c:36:d1:7f

MAC New 00:05:5d:60:c7:18

这个消息代表了用户的MAC地址发生了变化,在ARP欺骗木马开始运行的时候,局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的MAC New地址都一致为病毒主机的MAC地址),同时在路由器的“用户统计”中看到所有用户的MAC地址信息都一样。

如果是在路由器的“系统历史记录”中看到大量MAC Old地址都一致,则说明局域网内曾经出现过ARP欺骗(ARP欺骗的木马程序停止运行时,主机在路由器上恢复其真实的MAC地址)。

BKDR_NPFECT.A病毒引起ARP欺骗之实测分析。

(一)病毒现象

中毒机器在局域网中发送假的APR应答包进行APR欺骗,造成其他客户机无法获得网关和其他客户机的网卡真实MAC地址,导致无法上网和正常的局域网通信。

(二)病毒原理分析

1.病毒的组件

本文研究的病毒样本有三个组件构成:

%windows%SYSTEM32LOADHW.EXE(108,386 bytes)…”病毒组件释放者”;

%windows%System32drivers pf.sys(119,808 bytes)…”发ARP欺骗包的驱动程序”;

%windows%System32msitinit.dll (39,952 bytes)…“命令驱动程序发ARP欺骗包的控制者”。

2.病毒运作基理

(1)LOADHW.EXE 执行时会释放两个组件npf.sys和msitinit.dll.

LOADHW.EXE释放组件后即终止运行。

注意:病毒假冒成winPcap的驱动程序,并提供winPcap的功能。客户若原先装有winPcap。

npf.sys将会被病毒文件覆盖掉。

(2)随后msitinit.dll将npf.sys注册(并监视)为内核级驱动设备:"NetGroup Packet Filter Driver"

msitinit.dll还负责发送指令来操作驱动程序npf.sys(如发送APR欺骗包,抓包,过滤包等)以下从病毒代码中提取得服务相关值:

(3)npf.sys 负责监护msitinit.dll.并将LOADHW.EXE注册为自启动程序:

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce]

dwMyTest =LOADHW.EXE

由于该项位于RunOnce下,该注册表启动项在每次执行后,即会被系统自动删除。

(三)反病毒应急响应解决方案

按以下顺序删除病毒组件:

1.删除“病毒组件释放者”。

%windows%SYSTEM32LOADHW.EXE

2.删除“发ARP欺骗包的驱动程序”(兼“病毒守护程序”)。

%windows%System32drivers pf.sys

(1)在设备管理器中, 单击“查看”“显示隐藏的设备”在设备树结构中,打开“非即插即用…。”

(2)找到“NetGroup Packet Filter Driver”,若没找到,请先刷新设备列表。

(3)右键点击“NetGroup Packet Filter Driver”菜单,并选择“卸载”。

(4)重启windows系统。

(5)删除%windows%System32drivers pf.sys。

3.删除“命令驱动程序发ARP欺骗包的控制者”。

%windows%System32msitinit.dll

4.删除以下“病毒的假驱动程序”的注册表服务项。

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNpf

三、定位ARP攻击源头和防御方法

1.主动定位方式:因为所有的ARP攻击源都会有其特征网卡会处于混杂模式,可以通过ARPKiller这样的工具扫描网内有哪台机器的网卡是处于混杂模式的,从而判断这台机器有可能就是“元凶”。定位好机器后,再做病毒信息收集,提交给趋势科技做分析处理。

网卡可以置于一种模式叫混杂模式(promiscuous),在这种模式下工作的网卡能够收到一切通过它的数据,而不管实际上数据的目的地址是不是它。这实际就是Sniffer工作的基本原理:让网卡接收一切它所能接收的数据。

2.被动定位方式:在局域网发生ARP攻击时,查看交换机的动态ARP表中的内容,确定攻击源的MAC地址;也可以在局域居于网中部署Sniffer工具,定位ARP攻击源的MAC。

也可以直接Ping网关IP,完成Ping后,用ARP a查看网关IP对应的MAC地址,此MAC地址应该为欺骗的MAC。

使用NBTSCAN可以取到PC的真实IP地址、机器名和MAC地址,如果有“ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP、机器名和MAC地址。

命令:“nbtscan -r 192.168.16.0/24”(搜索整个192.168.16.0/24

网段,即192.168.16.1-192.168.16.254);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137 网段,即192.168.16.25-192.168.16.137。输出结果第一列是IP地址,最后一列是MAC地址。

NBTSCAN的使用范例:

假设查找一台MAC地址为“000d870d585f”的病毒主机。

(1)将压缩包中的nbtscan.exe 和cygwin1.dll解压缩放到c:下。

(2)在Windows开始运行打开,输入cmd(windows输入“command”),在出现的DOS窗口中输入:C:btscan -r 192.168.16.1/24(这里需要根据用户实际网段输入),回车。

(3)通过查询IP--MAC对应表,查出“000d870d585f”的病毒主机的IP地址为“192.168.16.223”。

通过上述方法,我们就能够快速的找到病毒源,确认其MAC〉机器名和IP地址。

四、局域网ARP病毒防范措施

1.不要把你的网络安全信任关系建立在IP基础上或MAC基础上,(RARP

同样存在欺骗的问题),理想的关系应该建立在IP+MAC基础上。

2.设置静态的MAC-->IP对应表,不要让主机刷新你设定好的转换表。

3.除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。

4.使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。

5.使用""proxy""代理IP的传输。

6.使用硬件屏蔽主机。设置好你的路由,确保IP地址能到达合法的路径。(静态配置路由ARP条目),注意,使用交换集线器和网桥无法阻止ARP欺骗。

7.管理员定期用响应的IP包中获得一个RARP请求,然后检查ARP响应的真实性。

8.管理员定期轮询,检查主机上的ARP缓存。

9.使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。

建议用户采用双向绑定的方法解决并且防止ARP欺骗。

在PC上绑定路由器的IP和MAC地址:

(1)获得路由器的内网的MAC地址(例如HIPER网关地址192.168.16.254的MAC地址为0022aa0022aa局域网端口MAC地址>)。

(2)编写一个批处理文件rarp.bat内容如下:

@echo off

arp -d

arp -s 192.168.16.254 00-22-aa-00-22-aa

将文件中的网关IP地址和MAC地址更改为您自己的网关IP地址和MAC地址即可。

将这个批处理软件拖到“windows--开始--程序--启动”中。

五、局域网ARP欺骗攻击防范原则

1.建立DHCP服务器(建议建在网关上,因为DHCP不占用多少CPU,而且ARP欺骗攻击一般总是先攻击网关,我们就是要让他先攻击网关,因为网关这里有监控程序的,网关地址建议选择192.168.10.2 ,把192.168.10.1

留空,如果犯罪程序愚蠢的话让他去攻击空地址吧),另外所有客户机的IP地址及其相关主机信息,只能由网关这里取得,网关这里开通DHCP服务,但是要给每个网卡,绑定固定唯一IP地址。一定要保持网内的机器IP/MAC一一对应的关系。这样客户机虽然是DHCP取地址,但每次开机的IP地址都是一样的。

2.建立MAC数据库,把局域内所有网卡的MAC地址记录下来,每个MAC和IP、地理位置统统装入数据库,以便及时查询备案。

3.网关机器关闭ARP动态刷新的过程,使用静态路邮,这样的话,即使犯罪嫌疑人使用ARP欺骗攻击网关的话,这样对网关也是没有用的,确保主机安全。

网关建立静态IP/MAC捆绑的方法是:建立/etc/ethers文件,其中包含正确的IP/MAC对应关系,格式如下:

192.168.2.32 08:00:4E:B0:24:47

然后再/etc/rc.d/rc.local最后添加:

arp -f生效即可

4.网关监听网络安全。网关上面使用TCPDUMP程序截取每个ARP程序包,弄一个脚本分析软件分析这些ARP协议。ARP欺骗攻击的包一般有以下两个特点,满足之一可视为攻击包报警:第一以太网数据包头的源地址、目标地址和ARP数据包的协议地址不匹配。或者,ARP数据包的发送和目标地址不在自己网络网卡MAC数据库内,或者与自己网络MAC数据库MAC/IP 不匹配。这些统统第一时间报警,查这些数据包(以太网数据包)的源地址(也有可能伪造),就大致知道那台机器在发起攻击了。

5.安装局域网杀毒件.在发生ARP攻击时,及时找到病毒攻击源头,并收集病毒信息,可以使用趋势科技的SIC2.0,同时收集可疑的病毒样本文件,一起提交到趋势科技的TrendLabs进行分析,TrendLabs将以最快的速度提供病毒码文件,从而可以进行ARP病毒的防御。

6.使用可防御ARP攻击的三层交换机,绑定端口-MAC-IP,限制ARP流量,及时发现并自动阻断ARP攻击端口,合理划分VLAN,彻底阻止盗用IP、MAC地址,杜绝ARP的攻击。

7.对于经常爆发病毒的网络,进行Internet访问控制,限制用户对网络的访问。此类ARP攻击程序一般都是从Internet下载到用户终端,如果能够加强用户上网的访问控制,就能极大的减少该问题的发生。

猜你喜欢

安全防范局域网
计算机局域网组建及管理探讨
用无线路由器共享单位局域网
浅析钢结构厂房的建筑防火设计
老年病人输液的护理安全防范与管理
社会反恐形势与大学生安全防护能力分析
浅谈医院网络安全
本期导读
局域网存在的安全隐患及其防治策略