全部博文(408)
分类: LINUX
2006-04-12 16:51:35
ARP攻击原理
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝、转载,转载时请保持文档的完整性,严禁用于任何商业用途。
msn:
来源:http://yfydz.cublog.cn
0.ARP
ARP(地址解析协议)是用来处理从IP地址到网卡硬件MAC地址转换的一个协议,本文主要以以太网为例
,说明ARP攻击的原理。
1.ARP原理
以太网上的机器通过IP协议通信时,IP包从上层一直下传到数据链路层,数据链路层就要构造以太帧了
,以太头中包括目的MAC地址,源MAC地址和协议,源地址是自己网卡的MAC地址,可以得到,协议对于
IP包来说是0x0800(网络序),而目的MAC地址呢?所知道的目前只是目的IP地址,ARP协议就是把IP地
址转换为IP地址的一个底层协议,一般人很少注意。
为得到一个IP地址对应的MAC地址,主机就会发出ARP请求,属于以太广播包,目的MAC是FF:FF:FF:FF
:FF:FF,协议0x0806,表示是ARP协议,在RFC826中定义,RFC中是这样定义的:
Ethernet transmission layer (not necessarily accessible to
the user):
48.bit: Ethernet address of destination
48.bit: Ethernet address of sender
16.bit: Protocol type = ether_type$ADDRESS_RESOLUTION
Ethernet packet data:
16.bit: (ar$hrd) Hardware address space (e.g., Ethernet,
Packet Radio Net.)
16.bit: (ar$pro) Protocol address space. For Ethernet
hardware, this is from the set of type
fields ether_typ$
8.bit: (ar$hln) byte length of each hardware address
8.bit: (ar$pln) byte length of each protocol address
16.bit: (ar$op) opcode (ares_op$REQUEST | ares_op$REPLY)
nbytes: (ar$sha) Hardware address of sender of this
packet, n from the ar$hln field.
mbytes: (ar$spa) Protocol address of sender of this
packet, m from the ar$pln field.
nbytes: (ar$tha) Hardware address of target of this
packet (if known).
mbytes: (ar$tpa) Protocol address of target.
hardware address space字段表示硬件地址的类型。它的值为1 即表示以太网地址。
protocol address space协议类型字段表示要映射的协议地址类型。它的值与包含I P 数据报的以太
网数据帧中的类型字段的值相同,这是有意设计的,为0x0800即表示IP 包。
接下来的两个1 字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字
节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6 和4 。
操作字段指出四种操作类型,它们是ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为3)和
RARP应答(值为4)。
接下来的四个字段是发送端的硬件地址(在本例中是以太网地址)、发送端的协议地址
(IP地址)、目的端的硬件地址和目的端的协议地址。注意,这里有一些重复信息:在以太网ഊ的数据
帧报头中和ARP请求数据帧中都有发送端的硬件地址。
对于一个ARP请求来说,除目的端硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端为
本机的ARP请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,并
把操作字段置为2 ,最后把它发送回去。
2. ARP攻击
了解了ARP包信息后,可以构造这样的ARP应答包(类型2),目的MAC是FF:FF:FF:FF:FF:FF,用于通
告网段内所有机器,源MAC自己随便写一个,ARP头中的IP地址填要攻击的那台机器的IP地址,MAC地址
可以随便写一个,然后发送出去,这样网内所有机器都会把该乱填的MAC地址作为受害机的MAC地址,
发往该IP的包都使用该假MAC地址,这样受害机根本收不到响应数据而形成断网,而且也查不出伪造的
ARP包是从何而来,受害机上会显示IP地址冲突。
3. 结论
ARP攻击对于拒绝某个同网段内IP地址上网非常有效,基本没有防御办法,而且安全性很高,很难发现