IP rDNS(PTR)資訊從理解到情報挖掘

2023-03-11 12:00:57

什麼是IP的rdns資訊?

  過去很多人,將IP的rDNS資訊理解為解析到IP的反查域名資訊。IP的rDNS資訊和IP反查域名資訊完全是兩個不同的資訊。IP的rdns資訊被稱之為反向DNS解析(rDNS),即通過DNS解析系統來將IP地址解析為域名。根據RFC1912標準「每一個網際網路可以存取的主機都應該有一個名字」,所以rDNS資訊更多是對應到一個IP地址的名字。IP的反查域名是指根據域名解析到IP的記錄來反查出哪些域名解析到這個IP地址上。下面以8.8.8.8來說明IP的反查資訊和rDNS資訊的區別。

  通過命令nslookup可以直接獲取到8.8.8.8的rDNS資訊」dns.google.」,注意此處被標識為名稱(name),即表示為IP的名稱。

  通過virustotal平臺查詢8.8.8.8的IP反查資訊,可以得到下圖紅框中10個域名是解析到8.8.8.8上的。IP反查的結果是域名A記錄指向該IP的域名資訊集合。

IP的rDNS是如何工作的?

PTR記錄

  IP的rDNS資訊本質上是IP地址的一個name資訊。那這個資訊是由誰在哪裡設定的呢?在通過nslookup獲取一個IP的rDNS資訊請求時,本質上是發起了一個DNS請求,來獲取一個IP的PTR解析記錄。我們都知道DNS協定是域名解析協定,是用來解析協定的,那麼如何能用來解析IP呢?這裡要提到一個很牛的設計,為了能夠通過DNS協定來解析到IP的rDNS資訊,ICANN組織新增了一個tld(通用頂級域)「.arpa.」用來負責將IP對映為域名,支援rDNS協定和其他網路基礎構架的管理工作。

  IP地址」4.3.2.1」對映轉換之後的域名為1.2.3.4.in-addr.arpa.,IP地址114.114.115.115對映轉換之後的域名為115.115.114.114.in-addr.arpa。然後通過DNS協定查詢該域名的PTR記錄就能夠獲得該IP的rDNS值,這個查詢出來的值和nslookup命令查詢出來的值是一樣的。

IP rDNS的權威DNS

  我們都知道DNS協定中,每個域名都有對應的權威DNS伺服器,用來維護這個域名的A記錄、CNAME記錄值等。在IP rDNS記錄也是一樣存在著權威DNS伺服器。IP地址經過轉換之後就是一個特殊的域名。下面我們來分別看一下各級域名對應的權威DNS伺服器。

  下面各圖就IP rDNS轉換域名之後的各級權威DNS伺服器進行了解析嘗試發現,114.114這樣的B段就設定了中國的DNS伺服器,前面114這樣的A段地址展示了全球五大RIR的權威DNS伺服器,再往前的特殊域arpa.和in-addr.arpa.都在icann手上進行維護。這裡可以做一個有趣的推論,全球的IP地址分配單位可能是按照B段來進行分配的。另外114.114.115這樣的C段是沒有查詢到權威NS伺服器的,由此也可以做一個有趣的推論,實際註冊了IP網段的單位設定的權威DNS伺服器可能不是嚴格按照C段來設定的。從方便的管理角度來看,按照C段更方便做    IP轉化為域名的對映的管理,但實際上並沒有這麼分配,也就是國內註冊IP的單位也不是嚴格按照C段來進行註冊的。

arpa.的權威DNS伺服器:

in-addr.arpa.的權威DNS伺服器:

114.in-addr.arpa.的權威DNS伺服器:

114.114.in-addr.arpa.的權威DNS伺服器:


114.114.115.in-addr.arpa.的權威DNS伺服器:

如何快速獲得所有IPv4的rDNS資料:

向公共DNS發起全網IP的PTR DNS解析

  將所有的IP轉化為域名之後,對公共DNS發起PTR的解析記錄請求查詢,這樣的方法理論上是可行的。但是全球IPv4的地址大概有42億,去除掉保留地址和一些特殊的IP地址之後,應該還有35億左右,這個量可能會因為網路解析請求量過大,導致請求被拒絕,以致無法全面和準確的獲得IP的rDNS資訊。

向權威DNS發起PTR解析

  由於公共DNS的數量和承載效能有限制,首先獲得一個IP地址的rDNS域名對應的權威DNS,然後在向這個權威DNS伺服器發起查詢請求,這樣能夠將請求分散到不同的權威DNS伺服器,降低並行太高的問題。但是仍然還會面臨實際的請求資料量過於龐大的問題。下圖展示了獲取114.114.114.114的權威DNS伺服器的過程:

  上級域名「114.114.114.in-addr.arpa.」沒有設定權威DNS伺服器:

  上上級域名「114.114.in-addr.arpa」設定了權威DNS伺服器:

  向上上級域名的權威DNS伺服器發起PTR解析請求,注意看此處返回了授權區域(「AUTHORITY SECTION」)沒有返回具體的ANSWER。這規定了該域名的rDNS記錄應該去對應的權威DNS伺服器(ns100.114dns.net)上去查詢。

  再次向該域名的權威DNS伺服器發起PTR記錄查詢請求,成功獲取到rDNS記錄:

  根據上面這幾個步驟來看,向權威DNS發起請求,獲取rDNS記錄的過程比直接向公共dns發起解析請求慢很多,因為中間可能會多了一步或者多步。整體上來看也不能很好的解決快速獲取rDNS資料的問題。

按需積累IP的rDNS解析資料

  無論哪種方式,要瞬間獲得42億IP的rdns資訊都會比較困難。所以按照實際的業務需求對出現的部分業務優先順序高的IP通過網路發包獲得rdns資訊,然後不斷的積累,預期能夠獲得更多的rdns資料。

使用開源的rDNS資料。

  網路安全公司Rapid7下屬的一個sonar實驗室,會定期對全網進行IPv4 的rdns資訊探測收集。收集完成之後,會對外提供下載地址。這也是一個重要的資料來源通道。

情報生產應用

生產白名單

  所有IP對映為域名之後的各級權威DNS伺服器,都是可以用來轉化為DNS伺服器、用來做白名單資料的;

識別IP用途

  很多機構為了讓外部知道自己IP是做什麼用途的,會在IP的rDNS資訊上宣告相關的資訊。比如百度的爬蟲就是根據rDNS資訊來判斷是否為百度的爬蟲。

根據rDNS資訊判斷IP是否為家庭寬頻IP

判斷IP是否屬於動態IP

該IP屬於河南電信的動態IP:

該IP屬於上海電信IP:

參考連結:

https://opendata.rapid7.com/sonar.rdns_v2/

https://help.baidu.com/question?prod_id=99&class=476&id=2996