明辉手游网中心:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

ARP欺骗过程

[摘要]假设一个只有 3台电脑组成的局域网, 该局域 网由交换机连接。 其中一个电脑名叫 A, 代表攻击 方; 一台电脑叫S , 代表源主机, 即发送数据的电脑; 另一台电脑名叫 D...

假设一个只有 3台电脑组成的局域网, 该局域

网由交换机连接。 其中一个电脑名叫 A, 代表攻击

方; 一台电脑叫S , 代表源主机, 即发送数据的电脑; 

另一台电脑名叫 D, 代表目的主机, 即接收数据的电

脑。 这3台电脑 的 I P地址分别为 1 9 2 . 1 6 8 . 0 . 2 ,  

1 9 2 . 1 6 8 . 0 . 3 , 1 9 2 . 1 6 8 . 0 . 4 。 MA C地址分别为

MAC A, MAC—

S, MAC—

D。  

现在, S电脑要给D电脑发送数据了, 在S电脑内

部, 上层的T C P和U D P的数据包已经传送到了最底层的

网络接口层, 数据包即将要发送出去, 但这时还不知道目 

的主机D电脑的M A C地址 MA C _ D 。 这时候, S电脑要

先查询自身的A R P缓存表, 查看里面是否有1 9 2 . 1 6 8 . 0 . 4 

这台电脑的MA C地址, 如果有, 那很好办, 就将 M A C _ D 

封装在数据包的外面。 直接发送出去即可。 如果没有,  

这时S电脑要向全网络发送一个 A R P广播包, 大声询

问: “ 我的I P是 1 9 2 . 1 6 8 . 0 . 3 , 硬件地址是 M A E _ S , 我想

知道 I P地址为 1 9 2 . 1 6 8 . 0 . 4的主机的硬件地址是多

少? ”这时, 全网络的电脑都收到该 A R P广播包了, 包

括A电脑和 D电脑。 A电脑一看其要查询的 I P地址

不是自己的, 就将该数据包丢弃不予理会。 而 D电脑

看I P地址是自己的, 则回答S电脑: “ 我的I P地址是

1 9 2 . 1 6 8 . 0 . 4 , 我的硬件地址是 M A E   D” 。 需要注意的

是, 这条信息是单独回答的, 即D电脑单独向S电脑发

送的, 并非刚才的广播。 现在 S电脑已经知道目的电

脑 D的M A C地址了, 它可以将要发送的数据包上贴上

目的地址 M A C _ D, 发送出去了。 同时它还会动态更新 自身的A R P缓存表, 将 1 9 2 . 1 6 8 . 0 . 4一 MA C — D这一条

记录添加进去, 这样, 等s电脑下次再给 D电脑发送数

据的时候, 就不用大声询问发送 A R P广播包了。 这就

是正常情况下的数据包发送过程。  

这样的机制看上去很完美, 似乎整个局域网也天

下太平, 相安无事。 但是, 上述数据发送机制有一个致

命的缺陷, 即它是建立在对局域网中电脑全部信任的

基础上的, 也就是说它的假设前提是: 无论局域网中那

台电脑, 其发送的A R P数据包都是正确的。 那么这样

就很危险了!因为局域网中并非所有的电脑都安3 + - z g 

己, 往往有非法者的存在。 比如在上述数据发送中, 当

S电脑向全网询问“ 我想知道I P地址为1 9 2. 1 6 8. 0 . 4的

主机的硬件地址是多少? ” 后, D电脑也回应了自己的

正确 M A C地址。 但是当此时, 一向沉默寡言的A电脑

也回话了: “ 我的I P地址是 1 9 2. 1 6 8. 0 . 4 , 我的硬件地址

是M A C — A ” , 注意, 此时它竟然冒充自己是 D电脑的I P 

地址, 而M A C地址竟然写成自己的!由于 A电脑不停

地发送这样的应答数据包, 本来 s电脑的A R P缓存表

中已经 保存了正确的记录: 1 9 2. 1 6 8. 0 . 4一M A C _ D, 但

是由于A电脑的不停应答, 这时 s电脑并不知道 A电

脑发送的数据包是伪造的, 导致 s电脑又重新动态更

新自身的A R P缓存表, 这 回记录成: 1 9 2. 1 6 8. 0 . 4一 

M A C _ A, 很显然, 这是一个错误的记录( 这步也叫A R P 

缓存表中毒) , 这样就导致以后凡是 s电脑要发送给 D 

电脑, 也就是 I P地址为 1 9 2. 1 6 8. 0 . 4这台主机的数据,  

都将会发送给 M A C地址为M A C _ A的主机, 这样, 在光

天化日之下, A电脑竟然劫持了由 s电脑发送给 D电

脑的数据!这就是 A R P欺骗的过程。  

如果 A这台电脑再做得“ 过分” 一些, 它不冒充

D电脑, 而是冒充网关, 那后果会怎么样呢?我们大

家都知道, 如果一个局域网中的电脑要连接外网, 都

要经过局域网中的网关转发一下, 所有收发的数据

都要先经过网关, 再由网关发向外网。 在局域网

中, 网关的 I P地址一般为 1 9 2 . 1 6 8 . 0 . 1 。 如果 A这

台电脑向全网不停的发送 A R P欺骗广播, 大声说: 

“ 我的 I P地址 是 1 9 2 . 1 6 8 . 0 . 1 , 我的硬件地址是

MAC— A” 这时局域网中的其它电脑并没有察觉到什

么, 因为局域网通信的前提条件是信任任何电脑发

送的A R P广 播包。 这样局域网中的其它电脑都会

更新自身的 A R P缓存表, 记录下 1 9 2 . 1 6 8 . 0 . 1一 

MAC— A这样的记录, 这样, 当它们发送给网关, 也就

是 I P地址为 1 9 2 . 1 6 8 . 0 . 1 这台电脑的数据, 结果都

会发送到 M A C — A这台电脑中。


上面是电脑上网安全的一些基础常识,学习了安全知识,几乎可以让你免费电脑中毒的烦扰。




标签:ARP欺骗过程