dns劫持分析


  最近在做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,返回的響應結果有三個,對於linuxdig命令來說,它只處理最先到達的響應包,也就是第一個,看看第一個包中都有什么內容:

  

  請求類型nsanswers中確只有type A,並告訴我們A記錄是243.185.187.39。這就是我們所說的dns劫持的一種,但是,查看第三個響應包:

  

  

可以看到,ns記錄和我們用whois查詢的結果是一樣的。這就是說,查詢過程是沒有被打斷的,被問詢的server有響應我們的解析請求,只不過在這個過程中,劫持者截獲了請求,並偽造了多個響應包發回來。

  對於這種情況,我所使用的方法是檢測每一個返回的響應包,判斷是否有我期望的結果,如果沒有,則丟棄這個包,否則就解析這個響應包,同時設置read超時時間,超過設定時間則認為沒有后續的響

應包了。有興趣的可以移步github查看代碼:https://github.com/taoge2520/test_for_dig

  

  

 

 

  

 


免責聲明!

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



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