想說怎麼會有這麼強的軟體......查了一下,原來它是利用 fake ARP reply 假造 gateway 的 hardware address 來欺騙特定電腦,讓該電腦的資料沒辦法正確送給 gateway,以達到封鎖網路流量的目的....
以下是在資安論壇的說明:(以下節錄自資安論壇的討論串「請問一下有關於netcut這套軟體的原理」)
如何避免或破解Netcut造成的斷線情形
要破解使用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.88.254,打開命令提示字元,執行ping 192.168.88.254,只要ping得通就可以得到正確的閘道器MAC address。這時執行 arp -a 就可以查出192.168.88.254的對應MAC address(就是Physical Address)。例如192.168.88.254的MAC address是00-90-cc-4f-db-18,那麼只要執行 arp -s 192.168.88.254 00-90-cc-4f-db-18 就搞定了。
假如你的主機已經被斷線,這時該怎麼辦呢?很簡單,你只要借用同網段的其他主機查詢閘道器的MAC address,然後用上述方法將正確的對應資訊加入到你的主機上就行了。
注意,如果主機的閘道器IP address改變,MAC address通常也會跟著變動,這時只要下達 arp -d 就可以將原先設定的ARP table對應資訊清除掉。
=== 節錄 - 微風廣場 rien (萊因哈特‧馮‧羅嚴克拉姆) ===
恩....看完覺得,真的有人就是這麼閒要去惡搞別人......是那個人為人太機車還是.....?? 算了,不得而知.......
沒有留言:
張貼留言