ARP 欺骗原理与模拟
(本文只是协议学习中的心得,所示范的试验方法仅用作学习的目的,请大家不要恶意使用)
一 什么是 ARP 协议?
ARP 协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的
是“帧”,帧里面是有目标主机的 MAC 地址的。在以太网中,一个主机要和另一个主机进行直接通信,必
须要知道目标主机的 MAC 地址。但这个目标 MAC 地址是如何获得的呢?它就是通过地址解析协议获得
的。所谓“地址解析”就是主机在发送帧前将目标 IP 地址转换成目标 MAC 地址的过程。ARP 协议的基本功
能就是通过目标设备的 IP 地址,查询目标设备的 MAC 地址,以保证通信的顺利进行。所以说从某种意义
上讲 ARP 协议是工作在更低于 IP 协议的协议层。这也是为什么 ARP 欺骗更能够让人在神不知鬼不觉的情
况下出现网络故障,他的危害更加隐蔽。
二 ARP 欺骗的原理:
首先我们可以肯定一点的就是发送 ARP 欺骗包是通过一个恶毒的程序自动发送的,正常的 TCP/IP 网络是
不会有这样的错误包发送的,而人工发送又比较麻烦。也就是说当黑客没有运行这个恶毒程序的话,网络
上通信应该是一切正常的,保留在各个连接网络计算机上的 ARP 缓存表也应该是正确的,只有程序启动
开始发送错误 ARP 信息以及 ARP 欺骗包时才会让某些计算机访问网络出现问题。接下来我们来阐述下
ARP 欺骗的原理。
第一步:假设这样一个网络,一个 Hub 或交换机连接了 3 台机器,依次是计算机 A,B,C。
A 的地址为:IP:192.168.1.1 MAC: AA-AA-AA-AA-AA-AA
B 的地址为:IP:192.168.1.2 MAC: BB-BB-BB-BB-BB-BB
C 的地址为:IP:192.168.1.3 MAC: CC-CC-CC-CC-CC-CC
第二步:正常情况下在 A 计算机上运行 ARP -A 查询 ARP 缓存表应该出现如下信息。
Interface: 192.168.1.1 on Interface 0x1000003
Internet Address Physical Address Type
192.168.1.3 CC-CC-CC-CC-CC-CC dynamic
第三步:在计算机 B 上运行 ARP 欺骗程序,来发送 ARP 欺骗包。
B 向 A 发送一个自己伪造的 ARP 应答,而这个应答中的数据为发送方 IP 地址是 192.168.10.3(C 的 IP
地址),MAC 地址是 DD-DD-DD-DD-DD-DD(C 的 MAC 地址本来应该是 CC-CC-CC-CC-CC-CC,这
里被伪造了)。当 A 接收到 B 伪造的 ARP 应答,就会更新本地的 ARP 缓存(A 可不知道被伪造了)。而
且 A 不知道其实是从 B 发送过来的,A 这里只有 192.168.10.3(C 的 IP 地址)和无效的 DD-DD-DD-
DD-DD-DD mac 地址。