iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0
Software Development

那些年還給老師的TCP/IP五層結構 - 用Python進行網路封包分析系列 第 18

Day18 題外話 - 如何發起DNS spoofing

在Day11中我們介紹完ARP有說如何發起中間人攻擊,DNS spoofing就是成為中間人後的一種網路攻擊方法,DNS並沒有想ARP有個table會在本地電腦紀錄domain name和IP address的映射關係,而是每次在瀏覽器打網址按enter之後,瀏覽器才會藉由DNS協議去Server詢問domain name對應的IP地址。

那如果你成為中間節點呢?你就可以攔截DNS的query,並改成一個自訂的IP原路返回去,那這樣能做什麼呢?那個IP可以是自己的IP,然後搭建一個釣魚網站,這樣使用者在輸入私密信息例如帳號密碼等都會傳到你的server。

假設一個場景,假設成為了中間節點
網路的拓撲結構如下
https://ithelp.ithome.com.tw/upload/images/20200928/20130271M0b7PxWw7W.png

HostA想要向Internet上的DNS server詢問www.facebook.com對應的IP是什麼,但是卻被HostB攔截了,並返回HostB的IP
https://ithelp.ithome.com.tw/upload/images/20200928/20130271iQtdwfBebA.png

那麼在HostA上就會看到HostB上port為80的網頁,如果HostB把網頁做的和Facebook一模一樣,HostA就會掉入陷阱

那要怎麼預防呢?

  1. 避免被中間人攻擊,在自己的主機上講router的MAC Address和IP Address的映射關係寫死
  2. 用著名的瀏覽器例如Chrome,Chrome有把常見的domain name和IP address的對應關係寫死在瀏覽器裡

系列的成果將會放在這:https://github.com/kaichiachen/pytcpdump
文章配合著程式碼有助於學習 :)


上一篇
Day17 解析第五層-DNS的封包結構
下一篇
Day19 如何利用python發送封包?
系列文
那些年還給老師的TCP/IP五層結構 - 用Python進行網路封包分析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言