天天看點

利用WireShark進行DNS協定分析

一.準備工作

系統是windows 8.1pro

分析工具是wireshark1.10.8 stable version

使用系統ping指令發送icmp封包.

二.開始工作

打開cmd.exe鍵入:

ping www.oschina.net

将自動進行域名解析,預設發送4個icmp封包.

啟動wireshark,選擇一個有效網卡,啟動抓包.

在控制台回車執行完畢後停止監控.

三.分析階段

截獲的所有封包如下:

利用WireShark進行DNS協定分析

總得來看有兩個dns包(一次域名解析),和8個icmp包(四次ping)

下面開始分析dns的工作過程:

打開第一個包:

利用WireShark進行DNS協定分析

可以發現dns為應用層協定,下層傳輸層采用udp,再下層網絡層是ip協定,然後是資料鍊路層的以太網幀.

需要關注的是應用層的實作也即dns協定本身.

在此之前,可以從下層獲得一些必要資訊:

udp(user datagram protocol)封包中:dns的目的端口(dst port)是53

ipv4(internet protocol version 4)封包中目的ip是192.168.1.1(區域網路路由器)

由于ip封包在網絡層進行路由選擇,他會依次送給路由器而不是直接送給dns伺服器,這一點也十分容易了解,

第一個包是請求包,不可能直接包含dns伺服器位址.

展開dns資料:

利用WireShark進行DNS協定分析

第一個是transaction id為辨別字段,2位元組,用于辨識dns應答封包是哪個請求封包的響應.

第二個是flags标志字段,2位元組,每一位的含義不同,具體可以參考上面那個圖,也可以看下面這個圖:

利用WireShark進行DNS協定分析

qr: 查詢/響應,1為響應,0為查詢

opcode: 查詢或響應類型,這裡0表示标準,1表示反向,2表示伺服器狀态請求

aa: 授權回答,在響應封包中有效,待會兒再看

tc: 截斷,1表示超過512位元組并已被截斷,0表示沒有發生截斷

rd: 是否希望得到遞歸回答

ra: 響應封包中為1表示得到遞歸響應

zero: 全0保留字段

rcode: 傳回碼,在響應封包中,各取值的含義:

緊接着标志位的是

quetions(問題數),2位元組,通常為1

answer rrs(資源記錄數),authority rrs(授權資源記錄數),additional rrs(額外資源記錄數)通常為0

字段queries為查詢或者響應的正文部分,分為name type class

name(查詢名稱):這裡是ping後的參數,不定長度以0結束

type(查詢類型):2位元組,這裡是主機a記錄.其各個取值的含義如下:

class(類):2位元組,in表示internet資料,通常為1

下面是截獲的第二個dns包:

利用WireShark進行DNS協定分析

可以看到和第一個請求包相比,響應包多出了一個answers字段,同時flags字段每一位都有定義.

關注一下flags中answer rrs 為4 說明對應的answers字段中将會出現4項解析結果.

answers字段可以看成一個list,集合中每項為一個資源記錄,除了上面提到過的name,type,class之外,還有time to

live,data length,addr.

time to live(生存時間ttl):表示該資源記錄的生命周期,從取出記錄到抹掉記錄緩存的時間,以秒為機關.這裡是0x00 00 00 fd 合計253s.

data length(資源資料長度):以位元組為機關,這裡的4表示ip位址的長度為4位元組.也就是下面addr字段的長度.

addr(資源資料): 傳回的ip位址,就是我們想要的結果.

可以發現有4條資源記錄,4個不同的ip位址,說明域名 www.oschina.net 對應有4個ip位址,分别是:

112.124.5.74

219.136.249.194

61.145.122.155

121.9.213.124

cmd中顯示的是第一條ip位址.我試了下直接通路上面各個位址的80端口(http),

第一個和第二個顯示403 forbidden

第三個和第四個顯示404 not found

還有每個位址哦server都不一樣oscali,oscdb,liubc,ep2,第一個像阿裡雲伺服器,第二個看起來像資料庫的伺服器,其他就不知道了...

web伺服器貌似是tengine,

不知道為什麼通過ip位址無法直接通路web站點,以後感興趣再研究下哈哈

關于icmp協定的封包分析将在之後的文章中給出.今天先到這吧.

最後,歡迎大家評論交流~特别是osc在搞什麼鬼.