预览加载中,请您耐心等待几秒...
1/2
2/2

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

ARP欺骗 一.ARP缓存 在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,图18-1-1是WindowsServer2003的ARP缓存表片段。 图18-1-1ARP缓存表 在上图所示的ARP缓存表中,IP地址172.16.0.151映射的MAC地址为00-0c-29-1d-af-2a,下面我们以主机X(172.16.0.50)向主机Y(172.16.0.151)发送数据为例,说明ARP工作过程。 当主机X发送数据时,它会在自己的ARP缓存表中寻找是否有主机Y的IP地址。如果找到了,也就知道了主机Y的MAC地址,直接把目标MAC地址写入数据帧里面发送就可以了;如果在ARP缓存表中没有找到主机Y的IP地址,主机X就会在网络上发送一个广播,目标MAC地址是“FF-FF-FF-FF-FF-FF”,这表示向同一网段内的所有主机发出这样的询问:“172.16.0.151的MAC地址是什么?”。网络上其他主机并不响应ARP询问,只有主机Y接收到这个数据帧时,才会向主机X做出这样的回应:“172.16.0.151的MAC地址是00-0c-29-1d-af-2a”。这样,主机X就知道了主机Y的MAC地址,它就可以向主机Y发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机Y发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。 二.ARP欺骗动画演示 1.ARP欺骗定义 从前面的介绍可以看出,ARP的致命缺陷是:它不具备任何的认证机制。当有个人请求某个IP地址的MAC时,任何人都可以用MAC地址进行回复,并且这种响应也会被认为是合法的。 ARP并不只在发送了ARP请求后才接收ARP应答。当主机接收到ARP应答数据包的时候,就会对本机的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存表中。此外,由于局域网中数据包不是根据IP地址,而是按照MAC地址进行传输的。所以对主机实施ARP欺骗就成为可能。 2.ARP欺骗原理 假设这样一个网络,一个Hub连接有3台PC机:PC1、PC2和PC3。 PC1的IP地址为172.16.0.1,MAC地址为11-11-11-11-11-11 PC2的IP地址为172.16.0.2,MAC地址为22-22-22-22-22-22 PC3的IP地址为172.16.0.3,MAC地址为33-33-33-33-33-33 正常情况下,PC1的ARP缓存表内容如下: InternetAddress PhysicalAddress Type 172.16.0.3 33-33-33-33-33-33 dynamic 下面PC2要对PC1进行ARP欺骗攻击,目标是更改PC1的ARP缓存表,将与IP地址172.16.0.3映射的MAC更新为PC2的MAC地址,即22-22-22-22-22-22。 PC2向PC1发送一个自己伪造的ARP应答,而这个应答数据中发送方IP地址是172.16.0.3(PC3的IP地址),MAC地址是22-22-22-22-22-22(PC3的MAC地址本来应该是33-33-33-33-33-33,这里被伪造了)。当PC1收到PC2伪造的ARP应答,就会更新本地的ARP缓存(PC1不知道MAC被伪造了),而且PC1不知道这个ARP应答数据是从PC2发送过来的。这样PC1发送给PC3的数据包都变成发送给PC2了。PC1对所发生的变化一点儿都没有意识到,但是接下来的事情就让PC1产生了怀疑,因为它连接不到PC3了,PC2只是接收PC1发给PC3的数据,并没有转发给PC3。 PC2做“maninthemiddle”(中间人),进行ARP重定向。打开自己的IP转发功能,将PC1发送过来的数据包转发给PC3,就好比一个路由器一样,而PC3接收到的数据包完全认为是从PC1发送来的。不过,PC3发送的数据包又直接传递给PC1,倘若再次进行对PC3的ARP欺骗,那么PC2就完全成为PC1与PC3的中间桥梁,对于PC1与PC3的通讯就可以了如指掌了。 三.ARP命令解释 ARP是一个重要的TCP/IP协议,并且用于确定对应IP地址的网卡物理地址。使用arp命令,能够查看本地计算机或另一台计算机的ARP缓冲表中的当前内容。此外,使用arp命令,也可以用人工方式输入静态的IP/MAC地址对。 缺省状态下,ARP缓存表中的项目是动态的(图18-1-1中Type=dynamic),每当发送一个指定地点的数据帧且缓存表不存在当前项目时,ARP便会自动添加该项目。一旦缓存表的项目被添加,它们就已经开始走向失效状态。例如,在Win