您好,登錄后才能下訂單哦!
最近在做dns解析,關注的重點在查詢域名ns記錄上,異常日志中捕獲到一個域名,dig查詢:
查詢請求類型為ns,dig結果卻只有一條A記錄。出于好奇,查詢類型改為a類型:
這個域名dig 查詢A記錄,返回一條結果,但是每次dig下去結果都不大一樣。回到最開始的問題,請求類型為NS,
dig下去發現沒有ns結果,那么是否是域名沒有設置ns呢?我們用whois查看下:
可以看到ns是有的,可是dig的結果為何顯示沒有ns記錄呢?我們修改下上上節的程序代碼(完整代碼在github見文末),構造一個dns解析請求,請求類型為ns,程序分析響應的內容,
發現其結果和我們用dig命令查詢是一樣的,返回結果分析后只有一條A記錄:
查一下這個地址,結果如下:
很明顯,這個結果是不正確的。
我們模擬了dig工具的dns解析過程,發現只能獲取到域名的A記錄,為了搞清楚到底發生了什么,我們用抓包工具來幫助我們了解原由。首先打開抓包工具,
然后運行程序,發一個dns查詢包,在wireshark中過濾類型,查看結果:
第一個是我們發起的查詢,可以看到類型是NS,請求的域名是3331.com,返回的響應結果有三個,對于linux的dig命令來說,它只處理最先到達的響應包,也就是第一個,看看第一個包中都有什么內容:
請求類型ns,answers中確只有type A,并告訴我們A記錄是243.185.187.39。這就是我們所說的dns劫持的一種,但是,查看第三個響應包:
可以看到,ns記錄和我們用whois查詢的結果是一樣的。這就是說,查詢過程是沒有被打斷的,被問詢的server有響應我們的解析請求,只不過在這個過程中,劫持者截獲了請求,并偽造了多個響應包發回來。
對于這種情況,我所使用的方法是檢測每一個返回的響應包,判斷是否有我期望的結果,如果沒有,則丟棄這個包,否則就解析這個響應包,同時設置read超時時間,超過設定時間則認為沒有后續的響
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。