要破解使用Netcut造成的斷線問題,必須先了解Netcut的運作原理。由於Netcut使用的是假造ARP封包造成目標主機ARP table記錄錯誤來達成斷線目的,因此必須先由ARP協議開始說明。


在乙太網路上僅僅知道某台主機的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的A主機向受害B主機發送假的ARP訊息,使得B主機上ARP table中對應到閘道器IP address的MAC address,更新成錯誤的MAC address。由於B主機上網必須透過閘道器傳送,閘道器的MAC address資訊錯誤,當然會造成B主機的封包再也無法傳送到閘道器上,原本建立好的連線也會因為timeout而導致斷線的情形發生。


知道Netcut的運作原理了,可是要怎樣才能預防或解決被Netcut斷線的問題呢?其實只要下達一個小小的指令就可以對Netcut完全免疫了~~


方法很簡單,由於Netcut的工作原理是透過假造ARP封包,造成你主機上的ARP table記錄到錯誤的閘道器MAC address,藉此讓你的主機跟目地主機間的往來封包發生中斷,所以你只要將正確的對應位址設定成static記錄就可以避免狀況發生。


設定指令如下:

arp -s 閘道器IP address 閘道器MAC address


舉例來說,假設閘道器的IP address是192.168.1.254,打開命令提示字元,執行ping 192.168.1.254,只要ping得通就可以得到正確的閘道器MAC address。這時執行 arp -a 就可以查出192.168.1.254的對應MAC address(就是Physical Address)。例如192.168.1.254的MAC address是0A-90-0C-4F-DB-18,那麼只要執行 arp -s 192.168.1.254 0A-90-0C-4F-DB-18 就搞定了。


假如你的主機已經被斷線,這時該怎麼辦呢?很簡單,你只要借用同網段的其他主機查詢閘道器的MAC address,然後用上述方法將正確的對應資訊加入到你的主機上就行了。


注意,如果主機的閘道器IP address改變,MAC address通常也會跟著變動,這時只要下達 arp -d 就可以將原先設定的ARP table對應資訊清除掉。






arrow
arrow
    全站熱搜

    jck11 發表在 痞客邦 留言(0) 人氣()