网络安全 频道

黑客经典教程之理解地址解析协议攻击

内容列表

1 关于此文

2 ARP介绍

2.1 ARP意味着什么?

2.2 ARP高速缓冲存储器的目的

2.3 ARP如何工作

2.4 协议缺陷

3 ARP攻击方法

3.1 术语 和 定义

3.2 连接劫持 和 监听

3.2 连接重置

3.4 中间人

3.5 包嗅探

3.6 Denial of service

3.6 拒绝服务

4 参考 和 链接

5 致谢

1 关于此文

在这篇特殊的文章里,我将相应地论述对理解地址解析协议的一个基本的介绍和几个攻击方法。这些方法,没有特别的顺序,包括劫持和重置一个用户的连接和/或者会话,中间人攻击,交换机环境下的包嗅探,和拒绝服务攻击(DoS)。

在介绍和其它部分的结尾,我将给出几个文章和软件的链接,和帮助进一步涉及ARP的这种内容。

2 ARP的介绍

2.1 ARP意味着什么?

地址解析协议(ARP).一个没国界的协议.被设计来映射IP地址到它们关联的媒体存取控制(MAC)地址。这可以说成通过附加一个以太网设备地址映射32位IP地址到一个相应的48位MAC地址,来建立本地节点间的连接。

在多数操作系统中,象Linux,FreeBSD和其它基于UNIX的操作系统,甚至包括Windows,”arp”程序都是现在的。这个程序能被用来显示和/或者修改ARP高速缓存的入口。通过简单地在你的终端运行”arp -na”,本地ARP高速缓存中的当前入口的列表将显示出来。这包括IP地址,硬件类型,MAC(主机硬件地址)地址,相应的NIC接口标志掩码,和连接类型(取决于系统输出可能不同)。

一个”arp”利用输出的例子将看起来如下:

Windows:

     > arp -a

     Interface: 192.168.1.100 .- 0x10003

     Internet Address      Physical Address      Type

     192.168.1.1           00-13-10-23-9a-53     dynamic

 

    Linux:

     $ arp -na

     ? (192.168.1.1) at 00:90:B1:DC:F8:C0 [ether] on eth0

 

    FreeBSD:

     $ arp -na 

     ? (192.168.1.1) at 00:00:0c:3e:4d:49 on bge0

你也将注意到在Windows例子中,这个对于特殊入口的类型被标记成”dynamic”。ARP高速缓存中的动态入口可以从高速缓存中清除出去。如果入口被标记成通过它的名字自解释的如static或者permanent,这个可以避免。接近这篇文章的结尾,我将论述静态ARP入口。

2.2 ARP高速缓存的目的

如在2.1部分定义的,地址解析协议被设计成来映射IP地址到MAC地址。ARP使用一个高速缓存在一个被称为ARP高速缓存的表中记录这些地址。ARP高速缓存.象任何其它的高速缓存一样.仅是临时保存数据。数据保留在这个高速缓存中的平均时间通常在1到10分钟之间。然而生存时间能比这个长得多,例如Cisco路由器有一个4小时的估计生存时间。每一个系统有一个不同的生存时间周期直到所有的非参数数据被清除为止-旧的和不再使用的先前高速缓存入口浪费空间而且没有存在的目的了。因此,入口被从高速缓存中完全更新或者清除。

如定义,ARP高速缓存的一个任务是保存ARP答复和数据。为了减少ARP高速缓存入口的数量,ARP高速缓存用新接受到的IP地址和相应的MAC地址更新。这么做是为一个减少网络传输的方法。如果我映射我的局域网中其它节点的硬件地址,ARP高速缓存在高速缓存中保留它的入口,这样我不需要在我的通信中不断把它映射出来。

2.3 ARP如何工作

特别地对于第四版因特网协议 (IPv4),ARP在网络层和开放式系统互连(OSI)模型数据链接层之间映射。

数据链接层被分割成两个子层,媒体存取控制层和逻辑链接控制层。MAC层有权控制数据流的存取而且不论传送是否被允许。然而,逻辑链接控制层的任务是控制框架同步,包流(象MAC),和数据包中的错误检查。这两个子层同时工作来产生数据链接层。

对于成功的包传送下一步是最重要的。传送自身。网络层通过在网络上节点间传送数据提供交换和路由。不仅仅是这个层的一部分包传送,而且也有选址,网络工作和错误处理。这个层保证了每一个包没有错误的和可能冲突的根据它们最终地址被发送。

为了更加完整和彻底地解释地址解析是如何工作的,以及协议的详情,请参考RFC 826 (David C. Plummer, 1982)。RFC 826是在1982年由C. Plummer写的,而被新手认为是过时的和复杂的材料。参考5.1部分文章最后的关于ARP,MAC,和基于ARP的攻击的进一步讨论的文档链接。

2.4 协议漏洞

ARP的主要漏洞在于它的高速缓存。知道它对于ARP更新现存的入口以及增加入口到高速缓存是必要的后,这使人相信能够伪造应答,它导致了ARP高速缓存致命的攻击。我将在3部分中论述每一类型的攻击,而在3.1部分中是术语和定义的回顾。

3 ARP 攻击方法

3.1 术语 和 定义

A. ARP 高速缓存毒药

在一个局域网中广播伪造的ARP应答。某种意义上,”愚弄”网络上的节点。能这么做是因为ARP缺少鉴定特性,因此盲目的接受接受或者发送的任何请求和答复。

B. MAC 地址洪水

一个ARP高速缓存毒药攻击主要应用在交换机环境下。通过用伪造的MAC地址洪水攻击一个交换机,交换机会过载。因为这样,它广播所有的网络传输到每一个连接的节点。这个结果提及到”广播模式”因为,所有通过交换机的传输被广播出来象一个Hub那样。这个接着能导致嗅探所有的网络传输。

3.2 连接劫持 和 监听

包或者连接劫持和监听是使任何连接客户在一个可能完全控制的方式下得到他们的连接操作成为牺牲的行为。

那些易受这种类型攻击的人们经常通过象Telnet或者Rlogin这样的没有加密的协议连接服务器和计算机。这个能导致嗅探,以及连接劫持和监听。

3.3 连接重置

名字很好的解释了它本身。当我们重置一个客户端连接的时候,我们切断了他们对系统的连接。使用特殊技术的代码很容易就能做到这点。幸运的是,我们有很好的软件帮助我们来做这个。

特别容易做到这点的一个代码是在DSniff工具集中。为了做到这个,我们将使用’tcpkill’。TCPKILL的使用和TCPDump类似,都使用BPF(伯克利包过滤器)。

起因:

1. tcpkill -9 port ftp &>/dev/null

     2. tcpkill -9 host 192.168.10.30 &>/dev/null

     3. tcpkill -9 port 53 and port 8000 &>/dev/null

     4. tcpkill -9 net 192.168.10 &>/dev/null

     5. tcpkill -9 net 192.168.10 and port 22 &>/dev/null

结果:

1. Kill connections attempting to access port 21 (ftp)

     2. Kill connections matching the IP ''192.168.10.30''

     3. Kill connections attempting to access port 53 and 8000

     4. Kill connections 192.168.10.* (192.168.10.0/24)

     5. Kill connections 192.168.10.* accessing port 22

TCPKill主要用来连续的保持客户端连接的削剪。使用后通过简单的杀掉’tcpkill’进程,将允许连接重新可用。如果不是这样,接着远程客户端将不能连接。

0
相关文章