围堵局域网中“耳朵”:网络嗅探与监听
2008-11-20 13:32:25 来源:WEB开发网假设局域网内有两台计算机A和B在通讯,而计算机C要作为一个窃听者的身份得到这两台计算机的通讯数据,那么它就必须想办法让自己能插入两台计算机之间的数据线路里,而在这种一对一的交换式网络里,计算机C必须成为一个中间设备才能让数据得以经过它,要实现这个目标,计算机C就要开始伪造虚假的ARP报文。
ARP寻址报文分两种,一种是用于发送寻址信息的ARP查询包,源机器使用它来广播寻址信息,另一种则是目标机器的ARP应答包,用于回应源机器它的MAC地址,在窃听存在的情况下,如果计算机C要窃听计算机A的通讯,它就伪造一个IP地址为计算机B而MAC地址为计算机C的虚假ARP应答包发送给计算机A,造成计算机A的MAC地址表错误更新为计算机B的IP对应着计算机C的MAC地址的情况,这样一来,系统通过IP地址获得的MAC地址都是计算机C的,数据就会发给以监听身份出现的计算机C了。但这样会造成一种情况就是作为原目标方的计算机B会接收不到数据,因此充当假冒数据接收角色的计算机C必须担当一个转发者的角色,把从计算机A发送的数据返回给计算机B,让两机的通讯正常进行,这样,计算机C就和计算机AB形成了一个通讯链路,而对于计算机A和B而言,计算机C始终是透明存在的,它们并不知道计算机C在偷听数据的传播。只要计算机C在计算机A重新发送ARP查询包前及时伪造虚假ARP应答包就能维持着这个通讯链路,从而获得持续的数据记录,同时也不会造成被监听者的通讯异常。
计算机C为了监听计算机A和B数据通讯而发起的这种行为,就是“ARP欺骗”(ARP Spoofing)或称“ARP攻击”(ARP Attacking),实际上,真实环境里的ARP欺骗除了嗅探计算机A的数据,通常也会顺便把计算机B的数据给嗅探了去,只要计算机C在对计算机A发送伪装成计算机B的ARP应答包的同时也向计算机B发送伪装成计算机A的ARP应答包即可,这样它就可作为一个双向代理的身份插入两者之间的通讯链路。
更多精彩
赞助商链接