DNS攻擊

DNS攻擊

實驗是基於Linux系統,配置了bind9服務的機器緩存

大綱

  1. 本地修改Host文件重定向路徑到指定地址
  2. 對User的DNS查詢進行欺騙攻擊
  3. 在同一局域網下,對DNS服務器的DNS查詢進行欺騙攻擊
  4. 不在同一局域網下,對DNS服務器的DNS查詢進行欺騙攻擊

環境配置

首先三臺虛擬機分別給它們分配ip,如圖,User爲192.168.0.100,DNS Server爲192.168.0.10,Attacker爲192.168.0.200,對三臺機器的代稱爲圖中所示,下同。服務器

DNS Server的配置:網絡

  • 修改/etc/bind/named.conf.options文件,增長dump.db做爲DNS緩存的文件,使用chmod提升dump.db的文件權限(777)
  • 設置DNS Server的本地zone爲example.com和192.168.0.x兩個域
  • 重啓bind9服務

User的配置:.net

  • 設置User的默認DNS服務器爲192.168.0.10
    Attacker的配置:
  • 設置Attacker的默認DNS服務器爲192.168.0.10

三臺機器的外部網關設置爲VMware的NAT模式的虛擬網卡默認分配的網關,我這裏是192.168.139.23d

DNS Server設置後的網絡配置:(其它相似)blog

內容

修改本地host文件

這裏主要就是修改User本地的Host文件,增長www.example.com一項,定向爲127.0.0.1dns

如圖,成功ping www.example.com獲得本身設置的1.2.3.4的DNS解析ip地址ip

欺騙回復User的DNS查詢

當User向DNS Server發送DNS查詢的時候,Attacker監聽了這個DNS查詢請求,而後在DNS Server回覆正確的DNS Response以前,先回復一個僞造欺騙的DNS Response給User,從而達到了DNS欺騙的效果。rem

實驗中咱們借用了Netwox/Netwag tool 105來進行DNS欺騙,具體的設置以下虛擬機

獲得的實驗效果爲

Local DNS Attack

當DNS Server對Root DNS Server詢問的時候,Attacker監聽了DNS Server對外發出的DNS Query,僞造了一個DNS Response給DNS Server,從而讓DNS Server中有了DNS Cache,且設置的ttl很長,所以就可以達到高效的DNS Attack。

實驗中咱們借用了Netwox/Netwag tool 105來進行DNS欺騙,具體的設置以下

獲得的實驗結果爲

DNS Server中的DNS Cache:

User中使用Dig命令獲得的結果:

Remote DNS Attack

正常狀況下的DNS查詢是這樣子的

可是咱們能夠將它簡化成下面這樣

因爲不在同一局域網內,Attacker不能監聽DNS Server的DNS Query包,因此採用的方法是對transaction ID進行全枚舉,並且必須在真正的DNS Response到來以前枚舉成功這個transaction ID,爲了簡化實驗,咱們將UDP port設置爲33333,因此就不用枚舉UDP port這個變量。

可是ns.dnslabattacker.net不是一個合法的域名,所以DNS Server須要對它進行驗證,不然不會將它保存在DNS Cache中,因此須要在Attacker機器中配置DNS服務,將ns.dnslabattacker.net做爲該DNS的本地zone就好。

查看一下實驗結果:

首先是Attacker對DNS發DNS Query和DNS Respose包:

而後在DNS Server中用Wireshark查看收到的包:


查看一下DNS Server中的Cache:

在User中Dig一下aaaaa.example.edu

相關文章
相關標籤/搜索