不曉得大家是否有看過這個工具?
Netcut,當你隔壁或室友瘋狂載東西,好好勸說又不聽,就只能用這招制裁他。
是不是有好奇過他背後的原理?
換一個場景。
甲和乙是好朋友,甲有什麼事情都會和乙說。今天來了丙,丙和甲說他是乙,結果甲就把所有秘密都跟乙說了。
「挑戰一句話解釋 ARP Spoofing」成功。
要講解 ARP 協定之前,必須要講解 OSI 模型。簡單來說,OSI 模型將網路體系的架構以抽象化的方式拆分成七層。
每一層都是對上一層提供服務,各層是環環相扣的。
這裡有一張從 Cisco 借來的圖:
從上到下是這樣的:
在 OSI 架構底下,傳輸資料的方式大概是這樣的:
簡單來說:
ff:ff:ff:ff:ff:ff
正常狀況下,一開始只會知道 IP 位置,而不是對方的 MAC 位置。當一台機器要和另一台機器互相溝通時,一樣從 OSI 第七層到第三層,第三層因為知道 IP 位置了,所以可以寫完。但是第二層時必須寫上 MAC 位置,所以機器會先去查 ARP 表。如果 ARP 表裡面沒有,機器就會向區域網內上所有的電腦發出 ARP 請求,問「有沒有人知道這 IP 的 MAC 號多少」。別台機器收到之後,就會檢查自己的 ARP 表裡面有沒有這個 ip-mac 的對應組合。若有的話,即會將這個結果返回給一開始詢問 ARP 資訊的機器。
但如果這個 IP 位置是外網的,基本上沒有人知道(故沒人會回應,幫QQ),也不會有人回。但因為 ARP 請求是用廣播的方式發出,所有區網內的裝置都會收到這個請求。路由器發現這個 IP 不屬於內網時,便會發出 ARP 回復,寫上自己的 MAC 位置。
路由器在收到這個包之後,會先解開。但是拆到第三層時,路由器會發現接收方的 IP 不是自己的,所以路由器會知道這個封包要傳去外網。
路由器會先去查一下本地的路由表,查看看從哪條路可以過去目標 IP 的位置。如果查到的話,一樣用 ARP 協定去查出對方的 MAC 地址,然後這樣層層傳過去。
下一篇將會講到正題:ARP Spoofing,又名 ARP 欺騙攻擊。