目前增加的IPv6地址空間不僅提高了對啟發式算法的使用(執行IPv6地址掃描時),而且還推動了人們探索替代技術用于查找IPv6節點。本文中我們將探討如何使用一種極其強大的向量來發現IPv6節點:使用DNS反向映射。
IPv6地址掃描攻擊通常涉及向目標節點發送某種探測數據包并等待響應,例如發送互聯網控制消息協議版本6回應請求。由于IPv6網絡的默認大小是/64,節點可隱藏在網絡中任何264個地址中,這讓強制IPv6地址掃描攻擊發生的可能性微乎其微。
在IPv6掃描領域的研究發現,IPv6地址遵循特定模式,這可幫助減少搜索空間,從而讓啟發式IPv6地址掃描變得可行。
探索替代技術來發現IPv6節點非常有價值,這主要有幾個原因。
首先,有些操作系統(例如微軟Windows)采用一種算法來生成IPv6地址導致隨機化地址。其次,網絡依靠動態主機配置協議(DHCP)版本6進行地址配置,這可能使用租賃地址的DHCPv6服務器,而沒有任何明顯模式(不是增量地址,例如2001:db8::1、2001:db8::2等)。第三,互聯網工程人物小組正在發布對當前規范的更新,這樣的話,生成自動配置地址的傳統機制將會被RFC 7217取代,后者并不會產生任何地址模式。這意味著需要有技術補充和/或取代傳統地址掃描功能。
在這些技術中有一個常常被誤解或遺忘的DNS功能:反向映射。下面讓我們看看DNS反向映射的概念,以及如何用DNS功能進行IPv6地址掃描。
DNS反向地址映射
大多數網絡和安全專業人員都熟悉DNS及其最常用的功能:映射域名(例如www.example.com)到IP地址。
然而,在很多情況下,執行完全相反的操作也會很有效:獲得IP地址并將其映射到域名。這能起到很大的幫助作用,例如,通過跟蹤路徑工具了解到目的節點的路徑;構成該路徑的IP地址可轉換為更具描述性或更有意義的域名。這就是說,跟蹤路徑工具從IP地址獲取域名列表的能力主要依賴于DNS反向映射。
IPv4地址反向映射到域名是由特殊DNS區域執行:in-addr.arpa。在此區域中的域名將遵循 x.x.x.x.in-addr.arpa的模式,其中每個x是介于0到255之間的數字,而這四個x將對應寫回的IPv4地址。
in-addr.arpa區域內的域名通常有PTR記錄,其中包含域名對應于IPv4地址。因此,為了獲得與IPv4地址192.0.2.1對應的DNS域名,則應該獲得域名1.2.0.192.in-addr.arpa的PTR記錄。例如,其中可能包含域名server.example.com。
重要的是要注意,從IP地址到域名的映射完全獨立于從域名到IP地址的映射。在本實例中,前者涉及域名1.2.0.192.in-addr.arpa的PTR記錄的配置(以及對2.0.192.in-addr.arpa區域的權限),而后者涉及域名server.example.com的A記錄的配置(以及對example.com區域的權限)。
通常,當企業被分配到IP地址塊時,也分配了在in-addr.arpa對應區域的權限。例如,企業被分配了前綴192.0.2.0/24,則也分配2.0.192.in-addr.arpa區域的權限,以便企業可更具需求配置反向地址映射。
反向IPv6地址映射類似于IPV4地址映射,最重要的區別是這種映射采用的DNS區域是ip6.arpa。與IPv4類似,這個區域將包含寫回的IPv6地址。例如,為了獲取與IPv6地址2001:db8::1對應的域名,則應該獲取域名1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa的PTR記錄。IPv6地址的每個十六進制數字將對應生成的域名的標簽。
本文轉自d1net(轉載)