目前增加的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(转载)