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