Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1488996
  • 博文数量: 408
  • 博客积分: 10036
  • 博客等级: 上将
  • 技术积分: 4440
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-06 13:57
文章分类

全部博文(408)

文章存档

2011年(1)

2010年(2)

2009年(1)

2008年(3)

2007年(7)

2006年(394)

我的朋友

分类: LINUX

2006-04-12 16:51:35

本文介绍如何使用ARP攻击来阻断同网段内任意一台机器上网的方法

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地址上网非常有效,基本没有防御办法,而且安全性很高,很难发现

阅读(929) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~