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的配置:

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

三台機器的外部網關設置為VMware的NAT模式的虛擬網卡默認分配的網關,我這里是192.168.139.2

DNS Server設置后的網絡配置:(其它類似)

內容

修改本地host文件

這里主要就是修改User本地的Host文件,增加www.example.com一項,定向為127.0.0.1

如圖,成功ping www.example.com得到自己設置的1.2.3.4的DNS解析ip地址

欺騙回復User的DNS查詢

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

實驗中我們借用了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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM