监听原理
在详细说用JPCAP实现网络监听实现前,先简单介绍下监听的原理。
局域网监听利用的是所谓的 “ARP欺骗”技术。在以前曾经一段阶段,局域网的布局是使用总线式(或集线式)结构,要到达监听只需要将网卡设定为混杂模式即可,但现在的局域网络普遍 采用的是交换式网络,所以单纯靠混杂模式来达到监听的方法已经不可行了。所以为了达到监听的目的,我们需要“欺骗”路由器、“欺骗”交换机,即“ARP欺 骗”技术。
假设本机为A,监听目标为B。
首先,伪造一个ARP REPLY包,数据链路层头及ARP内容部分的源MAC地址填入A的MAC地址,而源IP部分填入网关IP,目的地址填入B的MAC、IP,然后将这个包 发送给B,而B接收到这个伪造的ARP REPLY包后,由于源IP为网关IP,于是在它的ARP缓存表里刷新了一项,将(网关IP,网关MAC)刷新成(网关IP,A的MAC)。而B要访问外 部的网都需要经过网关,这时候这些要经过网关的包就通通流到A的机器上来了。
接着,再伪造一个ARP REPLY包,数据链路层头及ARP内容部分的源MAC地址填入A的MAC地址,而源IP部分填入B的IP,目的地址填入网关MAC、IP,然后将这个包 发给网关,网关接收到这个伪造的ARP REPLY包后,由于源IP为B的IP,于是在它的ARP缓存表里刷新了一项,将(B的IP,B的MAC)刷新成(B的IP,A的MAC)。这时候外部传 给B的数据包经过网关时,就通通转发给A。
这样还只是拦截了B的数据包而已,B并不能上网——解决方法是将接收到的包,除了目的地址部分稍做修改,其它原封不动的再转发出去,这样就达到了监听的目的——在B不知不觉中浏览了B所有的对外数据包。