ARP原理及防止方法

上一篇 / 下一篇  2008-03-21 11:43:29 / 个人分类:黑客技术知识点

1.arp病毒原理描述以及防治方法

    arp是一个网络协议,一般用于局域网中,它将IP地址解析为网卡的物理地址,又称为MAC地址。局域网中的所有ip通信最终都必须转换到基于mac地址的通信。一般局域网中每台机器都会缓存一个IP到MAC的转换地址表,使得不用每次要向其他机器发送信息时都要重新解析一遍。 

    由于该协议存在某些缺陷,使得局域网中恶意的机器可以发送虚假的ARP包来欺骗其他机器,使得其它机器获得虚假的ip与mac对应关系。

    局域网一般通过统一的网关来访问外部网络,比如上网浏览网页(http协议),某机器上的恶意代码通过欺骗,让其他机器将网关ip的mac地址都指向自己,又欺骗网关使得其他机器IP的mac地址也指向自己,只有它自己保存着一份真实的ip-mac转换表。这样,基于网中所有机器的上网包都通过该恶意代码的机器进行转发,从而该代码就能截获局域网其他用户的很多上网信息。这种采用arp欺骗的恶意代码就是ARP病毒。

  

防治方法:

开始>运行>cmd,输入命令arp -a,可查看本机路由的MAC地址

做批处理文件farp.bat,内容为

@echo off
arp -d    --清除arp缓存
arp -s   172.16.80.254   00-05-5d-89-37-3d  --将ip和mac地址邦定

保存为farp.bat,运行此批处理文件

可将此文件保存到"C:\Documents and Settings\Administrator\「开始」菜单\程序\启动",启动栏项目中,有效解决ARP欺骗

2.

深入解读APR病毒
 一、ARP病毒

ARP地址欺骗类病毒(以下简称ARP病毒)是一类特殊的病毒,该病毒一般属于木马(Trojan)病毒,不具备主动传播的特性,不会自我复制。但是由于其发作的时候会向全网发送伪造的ARP数据包,干扰全网的运行,因此它的危害比一些蠕虫还要严重得多。

二、ARP病毒发作时的现象

网络掉线,但网络连接正常,内网的部分PC机不能上网,或者所有电脑不能上网,无法打开网页或打开网页慢,局域网时断时续并且网速较慢等。

三、ARP病毒原理

3.1 网络模型简介

众所周知,按照OSI (Open Systems Interconnection Reference Model 开放系统互联参考模型) 的观点,可将网络系统划分为7层结构,每一个层次上运行着不同的协议和服务,并且上下层之间互相配合,完成网络数据交换的功能,如图1:

                                                         

                                                                     图1 OSI网络体系模型


    然而,OSI的模型仅仅是一个参考模型,并不是实际网络中应用的模型。实际上应用最广泛的商用网络模型即TCP/IP体系模型,将网络划分为四层,每一个层次上也运行着不同的协议和服务,如图2。

                                                          


                                                      图2 TCP/IP四层体系模型及其配套协议


    上图中,蓝色字体表示该层的名称,绿色字表示运行在该层上的协议。由图2可见,我们即将要讨论的ARP协议,就是工作在网际层上的协议。

3.2 ARP协议简介

我们大家都知道,在局域网中,一台主机要和另一台主机进行通信,必须要知道目标主机的IP地址,但是最终负责在局域网中传送数据的网卡等物理设备是不识别IP地址的,只能识别其硬件地址即MAC地址。MAC地址是48位的,通常表示为12个16进制数,每2个16进制数之间用“-”或者冒号隔开,如:00-0B-2F-13-1A-11就是一个MAC地址。每一块网卡都有其全球唯一的MAC地址,网卡之间发送数据,只能根据对方网卡的MAC地址进行发送,这时就需要一个将高层数据包中的IP地址转换成低层MAC地址的协议,而这个重要的任务将由ARP协议完成。

ARP全称为Address Resolution Protocol,地址解析协议。所谓“地址解析”就是主机在发送数据包前将目标主机IP地址转换成目标主机MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。 这时就涉及到一个问题,一个局域网中的电脑少则几台,多则上百台,这么多的电脑之间,如何能准确的记住对方电脑网卡的MAC地址,以便数据的发送呢?这就涉及到了另外一个概念,ARP缓存表。在局域网的任何一台主机中,都有一个ARP缓存表,该表中保存这网络中各个电脑的IP地址和MAC地址的对照关系。当这台主机向同局域网中另外的主机发送数据的时候,会根据ARP缓存表里的对应关系进行发送。

下面,我们用一个模拟的局域网环境,来说明ARP欺骗的过程。

3.3 ARP欺骗过程

假设一个只有三台电脑组成的局域网,该局域网由交换机(Switch)连接。其中一个电脑名叫A,代表攻击方;一台电脑叫S,代表源主机,即发送数据的电脑;令一台电脑名叫D,代表目的主机,即接收数据的电脑。这三台电脑的IP地址分别为192.168.0.2,192.168.0.3,192.168.0.4。MAC地址分别为MAC_A,MAC_S,MAC_D。其网络拓扑环境如图3。

                                   

                                                                                          图3 网络拓扑

现在,S电脑要给D电脑发送数据了,在S电脑内部,上层的TCP和UDP的数据包已经传送到了最底层的网络接口层,数据包即将要发送出去,但这时还不知道目的主机D电脑的MAC地址MAC_D。这时候,S电脑要先查询自身的ARP缓存表,查看里面是否有192.168.0.4这台电脑的MAC地址,如果有,那很好办,就将 封装在数据包的外面。直接发送出去即可。如果没有,这时S电脑要向全网络发送一个ARP广播包,大声询问:“我的IP是192.168.0.3,硬件地址是MAC_S,我想知道IP地址为192.168.0.4的主机的硬件地址是多少?” 这时,全网络的电脑都收到该ARP广播包了,包括A电脑和D电脑。A电脑一看其要查询的IP地址不是自己的,就将该数据包丢弃不予理会。而D电脑一看IP地址是自己的,则回答S电脑:“我的IP地址是192.168.0.4,我的硬件地址是MAC_D”需要注意的是,这条信息是单独回答的,即D电脑单独向S电脑发送的,并非刚才的广播。现在S电脑已经知道目的电脑D的MAC地址了,它可以将要发送的数据包上贴上目的地址MAC_D,发送出去了。同时它还会动态更新自身的ARP缓存表,将192.168.0.4-MAC_D这一条记录添加进去,这样,等S电脑下次再给D电脑发送数据的时候,就不用大声询问发送ARP广播包了。这就是正常情况下的数据包发送过程。

这样的机制看上去很完美,似乎整个局域网也天下太平,相安无事。但是,上述数据发送机制有一个致命的缺陷,即它是建立在对局域网中电脑全部信任的基础上的,也就是说它的假设前提是:无论局域网中那台电脑,其发送的ARP数据包都是正确的。那么这样就很危险了!因为局域网中并非所有的电脑都安分守己,往往有非法者的存在。比如在上述数据发送中,当S电脑向全网询问“我想知道IP地址为192.168.0.4的主机的硬件地址是多少?”后,D电脑也回应了自己的正确MAC地址。但是当此时,一向沉默寡言的A电脑也回话了:“我的IP地址是192.168.0.4,我的硬件地址是MAC_A” ,注意,此时它竟然冒充自己是D电脑的IP地址,而MAC地址竟然写成自己的!由于A电脑不停地发送这样的应答数据包,本来S电脑的ARP缓存表中已经保存了正确的记录:192.168.0.4-MAC_D,但是由于A电脑的不停应答,这时S电脑并不知道A电脑发送的数据包是伪造的,导致S电脑又重新动态更新自身的ARP缓存表,这回记录成:192.168.0.4-MAC_A,很显然,这是一个错误的记录(这步也叫ARP缓存表中毒),这样就导致以后凡是S电脑要发送给D电脑,也就是IP地址为192.168.0.4这台主机的数据,都将会发送给MAC地址为MAC_A的主机,这样,在光天化日之下,A电脑竟然劫持了由S电脑发送给D电脑的数据!这就是ARP欺骗的过程。

如果A这台电脑再做的“过分”一些,它不冒充D电脑,而是冒充网关,那后果会怎么样呢?我们大家都知道,如果一个局域网中的电脑要连接外网,也就是登陆互联网的时候,都要经过局域网中的网关转发一下,所有收发的数据都要先经过网关,再由网关发向互联网。在局域网中,网关的IP地址一般为192.168.0.1。如果A这台电脑向全网不停的发送ARP欺骗广播,大声说:“我的IP地址是192.168.0.1,我的硬件地址是MAC_A”这时局域网中的其它电脑并没有察觉到什么,因为局域网通信的前提条件是信任任何电脑发送的ARP广播包。这样局域网中的其它电脑都会更新自身的ARP缓存表,记录下192.168.0.1-MAC_A这样的记录,这样,当它们发送给网关,也就是IP地址为192.168.0.1这台电脑的数据,结果都会发送到MAC_A这台电脑中!这样,A电脑就将会监听整个局域网发送给互联网的数据包!

实际上,这种病毒早就出现过,这就是ARP地址欺骗类病毒。一些传奇木马(Trojan/PSW.LMir)具有这样的特性,该木马一般通过传奇外挂、网页木马等方式使局域网中的某台电脑中毒,这样中毒电脑便可嗅探到整个局域网发送的所有数据包,该木马破解了《传奇》游戏的数据包加密算法,通过截获局域网中的数据包,分析数据包中的用户隐私信息,盗取用户的游戏帐号和密码。在解析这些封包之后,再将它们发送到真正的网关。这样的病毒有一个令网吧游戏玩家闻之色变的名字:“传奇网吧杀手”

3.网络钓鱼(Phishing)一词,是“Fishing”和“Phone”的综合体,由于黑客始祖起初是以电话作案,所以用“Ph”来取代“F”,创造了”Phishing”。

“钓鱼攻击”是指利用欺骗性的电子邮件和伪造的Web站点来进行诈骗活动,受骗者往往会泄露自己的财务数据,如信用卡号、账户用户名、口令和社保编号等内容。诈骗者通常会将自己伪装成知名银行、在线零售商和信用卡公司等可信的品牌,在所有接触诈骗信息的用户中,有高达5%的人都会对这些骗局做出响应。

钓鱼攻击的一般步骤:
1. 钓鱼者入侵初级服务器,窃取用户的名字和邮件地址
2. 钓鱼者发送有针对性质的邮件
3. 受害用户访问假冒网址,受害用户被钓鱼邮件引导访问假冒网址。
4. 受害用户提供秘密和用户信息被钓鱼者取得
5. 钓鱼者使用受害用户的身份进入其他网络服务器

钓鱼攻击使用多种技术,使一封电子邮件信息或网页的显示同其运行表现出欺骗性差异。一些较为常见攻击技术:
· 发送电子邮件,以虚假信息引诱用户中圈套
· 建立假冒网上银行、网上证券网站,骗取用户帐号密码实施盗窃
· 利用虚假的电子商务进行诈骗
· 利用木马和黑客技术等手段窃取用户信息后实施盗窃活动
· 利用用户弱口令等漏洞破解、猜测用户帐号和密码
· 复制图片和网页设计、相似的域名
· URL地址隐藏黑客工具
· 通过弹出窗口和隐藏提示
· 利用社会工程学
· 利用IP地址的形式显示欺骗用户点击

要预防钓鱼攻击的威胁,一定要牢记以下四招:
·一定不要点击邮件的链接网址或回复邮件。若要核实电邮信息,可以通过拨打银行或支付网站的客服电话咨询。
·要访问所属银行的网站一定不要使用超级链接方式。同时,千万不要点击诈骗邮件中的网址链接。
·养成良好的电脑使用习惯,不要开启来路不明的电子邮件(特别是英文信,特别是往来无国际友人的)及文件,安装杀毒软件并及时升级病毒特征库和操作系统补丁,将敏感信息输入隐私保护,打开个人防火墙。
·使用网络银行时,选择使用网络凭证及约定账户方式进行转账交易,不要在网吧、公用计算机上和不明的地下网站做在线交易或转账。

 

 

TAG: 黑客技术知识点

 

评分:0

我来说两句

Open Toolbar