NetCut基本工作原理是向网关发送伪装成目标主机(这里就是被断开的计算机)的ARP应答,把目标主机的MAC地址替换成一个不存在的MAC地址,以至于目标主机无法和网关通讯。相反,NetCut则没有修改目标主机的ARP表。
我分别用Router和2000 Server做为网关测试,结果如下:
一、用Router做为网关
没有使用Netcut之前的网关ARP表

用Netcut断开172.16.75.9这台机器后,网关的ARP表,此时,该目标主机已经无法ping通网关

二、用2000做网关
正常的网关ARP表

中断后网关的ARP表,目标主机无法ping通网关

可以看到,Netcut做了一个Arp欺骗,向网关应答了一个不存在的MAC地址,而且该应答是很频繁的,我在网关上把172.16.75.9的ARP删掉后,很快又有了该ARP表项,而且还是伪造的。
下面我们在Router上做一个静态ARP,将172.16.75.9这个IP和其真实的MAC地址绑定
这个图是绑定后,Netcut中断目标主机前后,网关的ARP表,可以看到,Netcut已经无法欺骗网关,而且该条ARP表项为静态,实事上,目标主机始终都可以ping通网关

我们再在做为网关的Server上绑定该ARP表项,下图是绑定后,网关的ARP表项,可以看到,虽然172.16.75.9这一条为静态,但是仍然会被Netcut欺骗,ARP再次被修改,而此时目标主机也无法ping通网关

因此在WIN主机上做静态ARP是没有意义的
NetCut原理
NetCut原理实际上就是在攻击网关。
假设
服务器
网关为:192.168.7.7
MAC地址:000000000707
要剪掉的机器
主机IP为:192.168.7.17
主机MAC:000000000717
首先,NetCut会向服务器发出一个“明知故问”的单播ARP请求,来询问MAC地址,之所以说它“明知故问” ,是因为该请求在DLC层目的MAC是123412341234,这是一个单播给网关的请求,但是ARP包中包含的的信息却是:“我是192.168.7.17,我的MAC是000000000818,请告诉我192.168.7.7(网关)的MAC 地址”
这个请求表面上是询问网关的MAC地址,实际上是在告诉网关服务器,192.168.7.17的MAC地址是000000000818
然后,当网络关要发送数据到 192.168.7.17 的时候就会将二层的目的地址填写为00000000818,而不是000000000717从而达到了将192.168.7.17断网的目的。
NetCut避免断线的方法
在以太网络上仅仅知道某台主机的IP address,并不能立即将封包传送过去,必须先查明该主机的物理地址(Physical address / MAC address)才能真正发送出去,而ARP协议的功用就是在于将IP address转换成物理地址。
网络上每一台主机都有一个ARP table,此table中记录了最近一段时间里其它IP address及其MAC address的对应关系。如果本机想跟某一台主机通信,则会先在ARP table中查寻对应目的主机IP address的MAC address,如果该对应记录存在,则直接将目的主机的MAC address填入Data Link层的封包表头中,然后将封包发送出去;如果该对应记录不存在,则会向本网段广播一个ARP请求封包,当目的主机听见该请求封包后,会将本身的MAC address填入封包并用广播方式回送出去,本机收到此响应封包后,就会将相关讯息记录在ARP table中,然后将目的主机的MAC address填入Data Link层的封包表头里。
由于ARP请求封包发送端只管接收响应讯息,却无法分辨讯息的真伪,因此第三方主机只要建构一个ARP欺骗封包,就可以造成请求端的ARP table信息错误。由于MAC address不正确,所以封包就再也无法传送到目的主机上,这就是Netcut造成联机中断的原因。
知道Netcut的运作原理了,可是要怎样才能预防或解决被Netcut断线的问题呢?其实只要下达一个小小的指令就可以对Netcut完全免疫了~~
方法很简单,由于Netcut的工作原理是透过假造ARP封包,造成你主机上的ARP table记录到错误的网关器MAC address,藉此让你的主机跟目地主机间的往来封包发生中断,所以你只要将正确的对应地址设定成static记录就可以避免状况发生。
设定指令如下:
arp -s 网关的IP address 网关的MAC address
举例来说,假设网关的IP address是192.168.7.7,打开命令提示字符,执行ping 192.168.7.7,只要ping得通就可以得到正确的网关器MAC address。这时执行 arp -a 就可以查出192.168.7.7的对应MAC address(就是Physical Address)。例如192.168.7.7的MAC address是00-00-00-00-007-17那么只要执行 arp -s 192.168.7.7 00-00-00-00-007-17搞定了。
假如你的主机已经被断线,这时该怎么办呢?很简单,你只要借用同网段的其它主机查询网关器的MAC address,然后用上述方法将正确的对应信息加入到你的主机上就行了。
注意,如果主机的网关IP address改变,MAC address通常也会跟着变动,这时只要下达 arp -d 就可以将原先设定的ARP table对应信息清除掉。
1

魔鬼的声音:Vitas专辑
一个让我瞠目结舌的电脑高手!


