在Day11中我們介紹完ARP有說如何發起中間人攻擊,DNS spoofing就是成為中間人後的一種網路攻擊方法,DNS並沒有想ARP有個table會在本地電腦紀錄domain name和IP address的映射關係,而是每次在瀏覽器打網址按enter之後,瀏覽器才會藉由DNS協議去Server詢問domain name對應的IP地址。
那如果你成為中間節點呢?你就可以攔截DNS的query,並改成一個自訂的IP原路返回去,那這樣能做什麼呢?那個IP可以是自己的IP,然後搭建一個釣魚網站,這樣使用者在輸入私密信息例如帳號密碼等都會傳到你的server。
假設一個場景,假設成為了中間節點
網路的拓撲結構如下
HostA想要向Internet上的DNS server詢問www.facebook.com
對應的IP是什麼,但是卻被HostB攔截了,並返回HostB的IP
那麼在HostA上就會看到HostB上port為80的網頁,如果HostB把網頁做的和Facebook一模一樣,HostA就會掉入陷阱
那要怎麼預防呢?
系列的成果將會放在這:https://github.com/kaichiachen/pytcpdump
文章配合著程式碼有助於學習 :)