ARP欺骗的原理
ARP的功能分为两部分:一部分在发送数据包时请求获得目的主机的物理地址;另一部分是向请求物理地址的主机发送解析结果.
为了减少广播ARP请求带来的开销,每台主机都维护一个名为ARP高速缓存的本地列表,ARP高速缓存中含有最近使用过的IP地址与物理地址的映射列表.ARP请求方和应答方都把对方的地址映射存储在ARP高速缓存中.
A.当发送IP数据报需要获取目的主机的物理地址时,首先检查它的ARP高速缓存.如果ARP高速缓存中已存在对应的映射表项,那么就直接从ARP高速缓存中获得目的主机的物理地址.
B.当主机收到一个ARP请求帧或响应帧时,都会检查它的ARP高速缓存,如果其中不存在对应的映射表项,那么主机就会更新ARP高速缓存.
C.由于IP地址与物理地址的映射关系可能因网络接口或IP地址的变化而发生变化,因此ARP高速缓存中的每一个表项都设置了一个超时值,使得每个地址映射表项都有一个生命期.
ARP欺骗就是基于A,B两点,通过发送伪造的ARP响应帧,达到更新主机ARP高速缓存中相应表项.例如:
主机A: ARP高速缓存表项1. 192.168.1.1(网关)-00-01-02-03-04-05
主机B伪造网关ARP响应包(192.168.1.1(网关IP地址) – 00-02-03-05-06(主机B的物理地址)发给主机A.
主机A收到伪造的ARP响应包时,当作正常ARP响应包处理,因此,把ARP高速缓存表项1更新成192.168.1.1-00-02-03-05-06
主机A发送往网关的IP数据报,都将发送给主机B.
因此主机B就能对主机A访问网络行为进行控制了. |