CN120165946A - 基于本地域名关联的IPv6地址快速扫描方法及装置 - Google Patents
基于本地域名关联的IPv6地址快速扫描方法及装置 Download PDFInfo
- Publication number
- CN120165946A CN120165946A CN202510383369.3A CN202510383369A CN120165946A CN 120165946 A CN120165946 A CN 120165946A CN 202510383369 A CN202510383369 A CN 202510383369A CN 120165946 A CN120165946 A CN 120165946A
- Authority
- CN
- China
- Prior art keywords
- domain name
- host
- local
- local domain
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
- H04L61/5014—Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/659—Internet protocol version 6 [IPv6] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于IPv6地址扫描技术领域,公开一种基于本地域名关联的IPv6地址快速扫描方法及装置,该方法包括:通过向局域网内的Windows操作系统主机发送探测数据包,从活跃主机返回的数据包中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;通过监听并捕获网络中流通的数据包,以从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;发现新加入的本地链路主机的本地域名列表;基于所述本地域名列表发现对应主机配置的IPv6地址信息。本发明能够检测到多种版本Windows操作系统的所有IPv6地址。
Description
技术领域
本发明涉及IPv6地址扫描技术领域,尤其涉及一种基于本地域名关联的IPv6地址快速扫描方法及装置。
背景技术
IPv6部署规模的扩大以及IPv6网络设备对IPv6报文的错误处理,使得IPv6网络面临的安全风险大大增加。例如,最近公布的CVE-2024-38063漏洞,便利用了Windows传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)协议栈对特定异常IPv6数据包的错误处理,以达到远程执行恶意代码的目的。因此,对IPv6网络进行漏洞扫描及修复是提高IPv6网络安全性的重要手段。在此背景下,IPv6地址扫描作为一项基础性工作,是上述工作的关键支撑。
IPv6地址扫描技术可为IPv6网络的漏洞扫描及修复工作提供的存活主机列表,网络管理员针对列表中的IPv6地址进行漏洞扫描,以发现列表中的主机中存在的潜在漏洞,并对其进行修复,以保障IPv6网络的安全性和可靠性。然而,为解决IPv4地址耗尽的问题,IPv6地址长度从原有的32位扩充到了128位,其地址空间中包含的IPv6地址数量高达3.4×1038个。而截至2022年,全球联网设备的数量仅有143亿台,即使为每台设备分配3个IPv6地址,也仅占IPv6地址总量的1.26×10-28。故而IPv6庞大的地址空间和稀疏的地址分布,使得若要以遍历的方式扫描IPv6本地链路常用64位前缀下的所有IPv6地址,即使利用当前最先进的遍历式地址扫描工具Masscan,以其最大发包速度10,000,000个数据包/秒(PacketsPer Second,pps),仍需至少上万年时间才能完成,这显然是不可接受的。
为此,研究人员利用IPv6网络协议,通过发送探测数据包,诱导主机将自身IPv6地址配置发送给扫描主机。但是随着各大操作系统厂商对地址隐私的越发重视,现代操作系统通常会配置3个IPv6地址,包括2个全球单播地址(Global Unicast Address,GUA)和1个链路本地地址(Link-Local Address,LLA),上述简单有效的本地链路IPv6地址扫描方法面临着无法获取最完整目标主机IPv6地址配置和受到防火墙拦截而失效的风险。
为应对防火墙的拦截,LLMNR6、LinkScan6等工具利用IPv4网络环境中获取到的主机名等IPv4/IPv6双栈关联信息,并利用主机名解析协议完成本地链路IPv6地址的获取。
此外,虽然已有一些研究致力于获取本地链路IPv6地址,如基于DNS-SD(DNS-Based Service Discovery,域名系统服务发现)的本地链路IPv6地址扫描技术,但这些方法使均面临着在高密度主机部署的本地链路环境中易导致网络性能的下降。
现有的本地链路IPv6地址扫描技术可分为基于IPv6单栈信息的IPv6地址扫描技术和基于双栈关联信息的IPv6地址扫描技术。
(一)基于IPv6单栈信息的IPv6地址扫描技术
该类技术通过发送各种类型的IPv6探测报文,诱导IPv6主机将自身的IPv6地址配置反馈给扫描主机,从而完成IPv6地址的探测。
现有基于IPv6单栈信息的本地链路IPv6地址扫描技术主要有组播Ping6(Multicast Ping6,MP6)扫描、无效扩展报头(Invalid Extension Header,IEH)扫描、无状态地址自动配置(Stateless Address Autoconfiguration,SLAAC)扫描和组播侦听者发现(Multicast Listener Discovery,MLD)扫描。
其通过向链路本地范围所有节点组播地址ff02::1发送不同类型的互联网控制消息协议第六版(Internet Control Message Protocol version 6,ICMPv6)探测数据包,如ICMPv6回送请求、路由器公告(Router Advertisement,RA)报文、携带无效扩展报头的ICMPv6报文或MLD报文等,捕获IPv6本地链路内活跃主机的响应或差错报文并从中解析出IPv6地址。
然而,随着地址安全意识的提升,上述简单有效的本地链路IPv6地址扫描技术存在被防火墙或二层交换机屏蔽的风险(如SLAAC扫描)。
(二)基于双栈关联信息的IPv6地址扫描技术
该类技术创新性地利用IPv4/IPv6协议栈的公用信息,即双栈关联信息,完成IPv6地址扫描。首先在IPv4网络中发现活跃主机并获取其双栈关联信息,如主机名、MAC(MediaAccess Control,媒体访问控制)地址等,接着使用相关协议解析双栈关联信息获取其对应主机的IPv6地址。
现有基于双栈关联信息的IPv6地址扫描技术主要有基于主机名查询的本地链路Windows节点IPv6地址扫描技术LLMNR6和LinkScan6、基于DNS-SD协议的本地链路IPv6地址扫描技术。
基于主机名查询的本地链路Windows节点IPv6地址扫描技术通过NetBIOS名称服务(NetBIOS Name Service,NBNS)在IPv4网络环境中发现活跃主机的主机名,接着使用链路本地组播名称解析(Link-Local Multicast Name Resolution,LLMNR)协议或组播DNS(Multicast DNS,mDNS)协议由主机名获取IPv6地址。
基于DNS-SD的本地链路IPv6地址扫描技术在纯IPv4环境下获取本地链路活跃主机所有使用DNS-SD协议的服务记录,并进一步获取其在本地链路的主机名,最后根据主机名通过查询其AAAA记录以获取双栈主机的IPv6地址。
通过分析,现有本地链路IPv6地址扫描技术主要存在以下问题:
(1)IPv6地址扫描结果完整度不高。IPv6节点存在单点多址典型特性,即1个IPv6节点一般存在1个LLA和2个GUA,现有本地链路IPv6地址扫描技术只能扫描到少量IPv6地址,也就是说大多数本地链路IPv6地址扫描技术在扫描主流操作系统节点时,最多只能扫描到其LLA和1个临时IPv6 GUA,存在地址扫描结果完整度不高的问题。
(2)缺乏对网络性能影响小的扫描手段。现有本地链路IPv6地址扫描技术大多利用主动扫描的方法,这种方法虽然能够快速准确地获取对应节点的IPv6地址,但主动扫描方法在本地链路存在大量主机的情况下,会发送大量数据包,从而造成网络延迟,进而影响网络性能。因此存在对网络性能影响大的问题。
(3)现有本地链路IPv6地址扫描技术缺乏持续扫描手段。现有本地链路IPv6地址扫描技术常常仅是扫描某一时刻下本地链路内活跃主机的IPv6地址,而缺乏对该链路后续加入主机的及时且长期的扫描。导致不能及时发现地址扫描结束后加入的活跃主机的IPv6地址配置。故存在缺乏持续扫描手段的问题。
发明内容
本发明针对现有本地链路IPv6地址扫描技术IPv6地址扫描结果完整度低、对网络性能影响大以及操作系统覆盖率低的问题,提出一种基于本地域名关联的IPv6地址快速扫描方法及装置。
为了实现上述目的,本发明采用以下技术方案:
本发明一方面提出一种基于本地域名关联的IPv6地址快速扫描方法,包括:
通过向局域网内的Windows操作系统主机发送探测数据包,从活跃主机返回的数据包中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;
通过监听并捕获网络中流通的数据包,以从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;
发现新加入的本地链路主机的本地域名列表;
基于所述本地域名列表发现对应主机配置的IPv6地址信息。
进一步地,所述通过向局域网内的Windows操作系统主机发送探测数据包,从活跃主机返回的数据包中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表包括:
构造并发送目的MAC地址为广播MAC地址FF:FF:FF:FF:FF:FF,目的IPv4地址为IPv4局域网广播地址的请求通告报文至局域网内的Windows操作系统主机,从局域网内各活跃主机返回的主机通告报文中解析出本地链路活跃主机的IPv4地址及NetBIOS名称,进而得到活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表。
进一步地,所述通过监听并捕获网络中流通的数据包,以从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表包括:
监听发送到138端口的目的IPv4地址为IPv4局域网广播地址,目的MAC地址为广播MAC地址FF:FF:FF:FF:FF:FF数据包,从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表。
进一步地,所述发现新加入的本地链路主机的本地域名列表包括:
监听547端口捕获目的地址为ff02::1:2的动态主机配置协议第六版(DynamicHost Configuration Protocol version 6,DHCPv6)请求(Solicit)数据包,从中解析出后续加入主机的本地域名列表。
进一步地,基于所述本地域名列表发现对应主机配置的IPv6地址信息包括:
以所述本地域名列表为输入,构造并发送目的MAC地址为标准组播MAC地址01:00:5E:00:00:FB、目的IPv6地址为mDNS特殊组播地址ff02::fb、询问内容为本地域名的mDNSIPv6地址探测包,并从本地链路活跃主机返回的IP配置信息中解析出对应主机配置的IPv6地址信息。
本发明另一方面提出一种基于本地域名关联的IPv6地址快速扫描装置,包括:本地链路活跃主机本地域名主动发现模块、本地链路活跃主机本地域名被动发现模块、后续加入主机持续探测模块及IPv6地址快速探测模块;
所述本地链路活跃主机本地域名主动发现模块用于通过向局域网内的Windows操作系统主机发送探测数据包,从活跃主机返回的数据包中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;
所述本地链路活跃主机本地域名被动发现模块用于通过监听并捕获网络中流通的数据包,以从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;
所述后续加入主机持续探测模块用于发现新加入的本地链路主机的本地域名列表;
所述IPv6地址快速探测模块用于基于所述本地域名列表发现对应主机配置的IPv6地址信息。
进一步地,所述本地链路活跃主机本地域名主动发现模块具体用于:
构造并发送目的MAC地址为广播MAC地址FF:FF:FF:FF:FF:FF,目的IPv4地址为IPv4局域网广播地址的请求通告报文至局域网内的Windows操作系统主机,从局域网内各活跃主机返回的主机通告报文中解析出本地链路活跃主机的IPv4地址及NetBIOS名称,进而得到活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表。
进一步地,所述本地链路活跃主机本地域名被动发现模块具体用于:
监听发送到138端口的目的IPv4地址为IPv4局域网广播地址,目的MAC地址为广播MAC地址FF:FF:FF:FF:FF:FF数据包,从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表。
进一步地,所述后续加入主机持续探测模块具体用于:
监听547端口捕获目的地址为ff02::1:2的DHCPv6请求数据包,从中解析出后续加入主机的本地域名。
进一步地,所述IPv6地址快速探测模块具体用于:
以所述本地域名列表为输入,构造并发送目的MAC地址为标准组播MAC地址01:00:5E:00:00:FB、目的IPv6地址为mDNS特殊组播地址ff02::fb、询问内容为本地域名的mDNSIPv6地址探测包,并从本地链路活跃主机返回的IP配置信息中解析出对应主机配置的IPv6地址信息。
与现有技术相比,本发明具有的有益效果:
本发明首次结合主动扫描及被动监听方法获取本地链路IPv6地址,相较于之前技术被动监听方法对网络的影响更小,并且能够扫描到完整度最高的IPv6存活地址。针对DHCPv6请求报文入网即发且包含主机信息的特点,设计了持续发现本地链路新加入主机的功能,能够有效扫描到Windows系统后续加入主机的所有IPv6地址。基于所提技术,设计并实现了IPv6地址快速扫描装置,并通过对比试验验证其有效性和先进性。实验结果证明本发明能够检测到多种版本Windows操作系统的所有IPv6地址。
附图说明
图1为本发明实施例提供的本地域名结构示意图;
图2为本发明实施例提供的基于本地域名关联的IPv6地址快速扫描装置结构示意图;
图3为本发明实施例提供的基于本地域名关联的IPv6地址被动扫描单元技术流程图;
图4为本发明实施例提供的主机通告报文结构示意图;
图5为本发明实施例提供的DHCPv6请求报文结构示意图;
图6为本发明实施例提供的FScan6工具的工作流程示意图;
图7为本发明实施例提供的实验环境拓扑图;
图8为本发明实施例提供的Windows操作系统节点IPv6地址扫描结果比较;
图9为本发明实施例提供的CPU和内存使用率对比;
图10为本发明实施例提供的FScan6工具对RTT的影响。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
(一)本地域名
在零配置网络(Zero Configuration Networking,Zeroconf)技术中,本地链路主机无需依赖DNS服务器即可发现其他本地链路主机提供的服务。在实际应用中,Zeroconf技术通过服务实例名称记录本地链路服务,其格式为<instance>.<service>.<transport>.local。例如,Host._rdlink._tcp.local是一个典型的服务实例名称,其中“Host”表示提供服务的主机名称,“_rdlink”表示具体服务,“_tcp”表示该服务所采用的传输协议。
要访问目标服务,仍需获取提供该服务主机的IP地址。为此,Zeroconf技术模拟了DNS协议,为每个活动主机分配一个本地链路唯一的域名。该域名由主机实例名称和顶级域名(Top-level Domain,TLD)“.local”组成,用于唯一标识本地链路主机,同时便于将域名与相应的地址配置关联起来。
本发明将上述域名称为“本地域名”,其结构如图1所示。从图1可以看出,不同主机之间仅二级域名SLD(Second-Level Domain)不同,这意味着只需获取SLD即可构造完整的本地域名。
(二)主流操作系统本地域名关联特征分析
本节进一步分析当前主流操作系统节点。通过分析可发现当前所有主流操作系统节点均已默认开启IPv6协议栈,且为了简化网络配置的过程,大多配置了本地域名以实现本地链路中的服务自动发现。
(1)主流操作系统大多配置本地域名以实现服务自动发现。本地域名是在本地链路中识别不同主机提供服务的重要依据,故其在本地链路中具有唯一性。且为了能够访问到该主机所提供的服务,本地域名通常能够解析到该主机的地址配置,这使得通过本地域名关联到主机的地址配置变得可行。
(2)利用本地域名关联可有效缩减本地链路IPv6地址扫描空间。本地域名关联首先使用相关协议发现本地链路活跃主机提供的服务,并从中解析出本地域名,接着通过本地域名获取其对应的IPv6地址,巧妙的将IPv6本地链路环境下的大地址扫描任务转化为仅针对本地链路活跃主机的小地址空间扫描任务。有效缩减了待扫描的地址空间,大大提升了本地链路IPv6地址扫描效率。
基于以上分析,同时为解决现有本地链路IPv6地址扫描技术难以获取扫描结果完整度低、对网络性能影响大以及缺乏持续扫描手段的问题,研究分析主流Windows操作系统节点存在的关联与共用信息,针对Windows操作系统的协议支持特点使用Windows网络浏览(Microsoft Windows Browser,Browser)协议获取其对应的本地域名,利用本地域名可关联到主机地址配置的特点,提出可提高IPv6地址扫描结果完整度、支持被动与主动地址扫描的新方法,基于本地域名关联的IPv6地址快速扫描方法,包括:
通过向局域网内的Windows操作系统主机发送探测数据包,从活跃主机返回的数据包中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;
通过监听并捕获网络中流通的数据包,以从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;
发现新加入的本地链路主机的本地域名列表;
基于所述本地域名列表发现对应主机配置的IPv6地址信息。
进一步地,所述通过向局域网内的Windows操作系统主机发送探测数据包,从活跃主机返回的数据包中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表包括:
构造并发送目的MAC地址为广播MAC地址FF:FF:FF:FF:FF:FF,目的IPv4地址为IPv4局域网广播地址的请求通告报文至局域网内的Windows操作系统主机,从局域网内各活跃主机返回的主机通告报文中解析出本地链路活跃主机的IPv4地址及NetBIOS名称,进而得到活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表。
进一步地,所述通过监听并捕获网络中流通的数据包,以从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表包括:
监听发送到138端口的目的IPv4地址为IPv4局域网广播地址,目的MAC地址为广播MAC地址FF:FF:FF:FF:FF:FF数据包,从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表。
进一步地,所述发现新加入的本地链路主机的本地域名列表包括:
监听547端口捕获目的地址为ff02::1:2的DHCPv6请求数据包,从中解析出后续加入主机的本地域名列表。
进一步地,基于所述本地域名列表发现对应主机配置的IPv6地址信息包括:
以所述本地域名列表为输入,构造并发送目的MAC地址为标准组播MAC地址01:00:5E:00:00:FB、目的IPv6地址为mDNS特殊组播地址ff02::fb、询问内容为本地域名的mDNSIPv6地址探测包,并从本地链路活跃主机返回的IP配置信息中解析出对应主机配置的IPv6地址信息。
在上述实施例的基础上,如图2所示,本发明还提出一种基于本地域名关联的IPv6地址快速扫描装置,包括:本地链路活跃主机本地域名主动发现模块、本地链路活跃主机本地域名被动发现模块、后续加入主机持续探测模块及IPv6地址快速探测模块;
所述本地链路活跃主机本地域名主动发现模块用于通过向局域网内的Windows操作系统主机发送探测数据包,从活跃主机返回的数据包中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;
所述本地链路活跃主机本地域名被动发现模块用于通过监听并捕获网络中流通的数据包,以从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;
所述后续加入主机持续探测模块用于发现新加入的本地链路主机的本地域名列表;
所述IPv6地址快速探测模块用于基于所述本地域名列表发现对应主机配置的IPv6地址信息。
具体地,基于本地域名关联的IPv6地址快速扫描装置主要分为基于本地域名关联的IPv6地址主动扫描单元和基于本地域名关联的IPv6地址被动扫描单元。
基于本地域名关联的IPv6地址主动扫描单元首先通过本地链路活跃主机本地域名主动发现模块完成本地链路活跃主机本地域名的发现任务,接着使用IPv6地址快速探测模块完成IPv6地址配置信息的获取任务。
基于本地域名关联的IPv6地址被动扫描单元首先利用本地链路活跃主机本地域名被动发现模块监听本地链路中流通的数据包,从中解析出本地链路活跃主机的本地域名,进而即可利用IPv6地址快速发现模块完成IPv6地址的获取。此外,为发现扫描结束后加入的本地链路主机利用后续加入主机本地域名发现模块,获取后续加入主机的本地域名,并通过IPv6地址快速发现模块获取对应主机的IPv6地址。
(二)基于本地域名关联的IPv6地址主动扫描单元主要功能
IPv6地址主动扫描单元的基本原理是通过向目标设备发送探测数据包,从而使目标主机返回数据包,从中即可解析出与本地域名有关的信息。故而针对Windows操作系统,基于本地域名关联的IPv6地址主动扫描技术可使用基于服务浏览的Windows操作系统节点本地域名发现方法获取本地链路活跃主机的标识信息,也即本地域名的SLD,接着再将SLD扩充为本地域名并通过具有解析本地域名功能的协议发现IPv6地址。
(1)本地链路活跃主机本地域名主动发现模块
现有可用来获取本地域名SLD的协议有获取的协议主要有简单网络管理协议(Simple Network Management Protocol,SNMP)和DNS协议。
SNMP协议是一种用于在IP网络管理网络节点的标准协议,让网络管理员能够监视、配置和管理网络中的设备。但由于SNMP存在一些安全隐患,当前主流操作系统中均不默认开启该协议。
DNS协议的PTR记录可用于将IP地址解析到全局唯一域名,但在本地链路中该记录必须由网络管理员进行配置。当本地链路中不存在DNS服务器或管理员未配置本地主机的PTR记录则无法通过该记录发现本地链路主机的本地域名。
经实验与分析发现,上述本地域名发现协议均存在若没有正确配置则无法有效发现本地域名的问题。故均无法用来进行针对本地链路主机的本地域名的SLD发现。
而Browser协议在Windows操作系统中均有实现,且在Windows操作系统中均默认开启。除此之外,上述Browser协议在在当前主流的Windows系统中均有实现,能够支持多个版本Windows操作系统的本地域名SLD发现。
基于服务浏览的Windows操作系统主机本地域名发现方法
在服务信息块(Server Message Block,SMB)协议中,计算机为了访问网络资源,就必须了解网络上存在的资源列表,该机制称为浏览(Browsing)。但若每次都利用广播方式重新了解当前网络资源,则会消耗大量的带宽和时间。
为解决以上问题,Browser协议作为一个辅助协议被引入到SMB协议中,其允许本地链路主机自行选举出一个主Browser,其维护了一个当前网络中的资源列表。本地链路中的主机也可主动发送请求通告(Request Announcement)报文来请求网络中其他主机通过发送主机通告(Host Announcement)报文来宣布自己的存在。其中,主机通告报文中包含网络中唯一标识一个节点的NetBIOS名称,而在Windows系统中NetBIOS名称即为本地域名的SLD部分。
根据以上原理,本地链路活跃主机本地域名主动发现模块构造并发送目的MAC地址为广播MAC地址FF:FF:FF:FF:FF:FF,目的IPv4地址为IPv4局域网广播地址的请求通告报文,当局域网内主机收到该报文后会在30秒内发送主机通告报文给扫描主机,从中即可解析出本地链路活跃主机的IPv4地址及NetBIOS名称,从而获取对应主机的本地域名,其具体实现如算法1所示。
(2)IPv6地址快速探测模块
mDNS是一种允许本地链路内设备通过组播DNS消息来发现彼此的技术,其使得本地链路设备在没有中央DNS服务器的基础上,直接通过组播来交换本地域名与IP地址间的映射关系。
mDNS协议以活跃主机本地域名主动发现模块获取到的本地域名为查询名,向目标主机发送DNS查询,即可使目标主机返回自身地址配置。
根据上述原理,IPv6地址快速探测模块构造并发送目的MAC地址为标准组播MAC地址01:00:5E:00:00:FB、目的IPv6地址为mDNS特殊组播地址ff02::fb、询问内容为本地域名的mDNS IPv6地址探测包,本地链路活跃主机收到该探测包之后会将自身的IP配置信息反馈给查询主机,从中即可从中解析出其配置的IPv6地址信息。其具体实现如算法2所示。
(三)基于本地域名关联的IPv6地址被动扫描单元主要功能
IPv6地址被动扫描单元并不主动发送探测包,而是通过监听网络中流通的数据包,并捕获流经网络接口的所有数据包,然后分析这些数据包的内容以获取有用的信息。因此,基于本地域名关联的IPv6地址被动扫描单元首先监听网络中流通的数据包,来发现本地链路活跃主机的主机标识信息,也即本地域名的SLD,接着将其扩充为本地域名并通过具有解析本地域名功能的协议发现IPv6地址。其具体流程如图3所示。
(1)本地链路活跃主机本地域名被动发现模块
Browser协议规定本地链路活跃主机需要每隔一定时间发送一次主机通告报文(其结构如图4所示),以更新主Browser储存的服务列表中自身所支持服务的状态。该报文以IPv4局域网广播地址为目的地址,以138为目的端口,以广播MAC地址FF:FF:FF:FF:FF:FF为目的MAC地址。其中,数据包中的NetBIOS名称选项部分即包含发包主机的NetBIOS名称,也即本地域名的SLD。
根据以上原理,本地链路活跃主机本地域名被动发现模块监听发送到138端口的目的IPv4地址为IPv4局域网广播地址,目的MAC地址为广播MAC地址FF:FF:FF:FF:FF:FF数据包,从而解析出其中包含的本地域名的SLD,并接着将其扩充为该主机对应的本地域名。最后将本地链路活跃主机的本地域名列表输入到IPv6地址快速探测模块中以发现其对应的IPv6地址。
(2)后续加入主机持续探测模块
DHCPv6协议是IPv6网络中的基础性协议之一,在大多数不同类型的操作系统中均有实现,其用于为IPv6网络中的主机自动分配IPv6地址及其网络配置参数。这使得网络管理员无需手动配置每台主机的IPv6地址和其他相关信息,从而简化了网络管理。
当主机首次加入IPv6网络时,其会向本地链路组播地址ff02::1:2发送DHCPv6请求报文用于初始化地址请求并发现本地链路中的DHCPv6服务器,DHCPv6请求报文中会包含一系列信息,以帮助客户端表达其需求。该报文以端口547为目的端口,其中,包含客户端完全限定域名(Client Fully Qualified Domain Name,Client FQDN),该域名在本地链路中即为主机的本地域名,其报文结构如图5所示。
据此,后续加入主机持续探测模块监听547端口捕获目的地址为ff02::1:2的DHCPv6请求数据包,从中解析出后续加入主机对应的本地域名。接着,将上述信息作为输入传递到IPv6地址快速探测模块中以发现后续加入主机对应的IPv6地址。
综上,针对Browser协议支持主动查询与被动监听协同机制的特点,首次结合主动扫描及被动监听方法获取本地链路IPv6地址,相较于之前技术被动监听方法对网络的影响更小。并且能够扫描到完整度最高的IPv6存活地址。针对DHCPv6请求报文入网即发且包含主机信息的特点,设计了持续发现本地链路新加入主机的功能。作为一种可实施方式,本实施例使用数据包处理工具Scapy并基于Python语言实现如图6所示的IPv6地址快速扫描装置(工具)FSacn6,通过对比试验验证其有效性和先进性。
图6为FScan6的工作流程,FScan6首先通过本地链路活跃主机本地域名主动发现模块发现Windows操作系统主机的本地域名SLD列表,并将其扩展为对应主机的本地域名列表,接着以本地域名列表为输入利用IPv6地址快速探测模块发现本地链路主机的IPv6地址。此外,为发现扫描结束后加入的本地链路主机利用后续加入主机持续探测模块,获取后续加入主机的本地域名,并通过IPv6地址快速探测模块获取对应主机的IPv6地址。
在本节中,首先介绍测试环境的详细信息,然后围绕本发明试图回答的三个关键研究问题(Research Question,RQ)组织我们的研究结果。这些研究问题如下:
(RQ1):FScan6在扫描单个Windows主机时,能否扫描到最完整的IPv6地址?(即扫描结果完整度)
(RQ2):FScan6能否扫描到后续加入的主机?(即扫描持续性)
(RQ3):FScan6进行扫描时所需系统资源是多少,及其对网络性能的影响大小?(即资源消耗和对网络的影响)
(一)实验环境及方法
环境设置:在如图7所示的包含5个桌面版Windows操作系统节点(WindowsXP、Windows 7、Windows 8、Windows 10和Windows 11)和5个服务器版本的Windows操作系统节点(Windows Server 2012、Windows Server 2016、Windows Server 2019、Windows Server2022和Windows Server 2025)的典型IPv6网络环境中进行对比试验。扫描主机则配备了Intel(R)Core(TM)i9-14900HX CPU,主频为2.20GHz,内存为32GB。
研究方法:针对RQ1,本发明构建了如图7所示的典型的本地链路IPv6网络环境,以单个主机扫描到的IPv6地址数量为指标,以评估FScan6针对不同类型操作系统节点的扫描完整度。针对RQ2,首先使扫描主机开始运行后续加入主机扫描模块,接着在现有IPv6本地链路环境中加入新的主机,观察扫描主机能否扫描到新加入的主机的IPv6地址。针对RQ3,本发明监测FScan6方法和其他对比方法运行时的CPU使用率和内存消耗,以评估FScan6产生的资源消耗。并且本发明还在不同网络负载的情况下运行FScan6,通过ping请求测量正常网络流量的往返时间(Round-Trip Time,RTT)延迟和丢包率,以量化FScan6对网络性能的影响。
(二)实验结果
为验证所提技术的有效性,将FScan6与主流IPv6地址扫描工具进行比较,包括Nmap NSE(Nmap Scripting Engine,Nmap脚本引擎)中的4个IPv6地址扫描脚本,即mMLD(targets-ipv6-multicast-mld)、MP6(targets-ipv6-multicast-echo)、IEH(targets-ipv6-multicast-invalid-dst)和mSLAAC(targets-ipv6-multicast-slaac)扫描脚本、IPv6Toolkit中的scan6工具以及IPv6网络渗透测试工具包THC-IPv6中的alive6工具。
(1)扫描结果完整度(针对RQ1)
为评估FScan6的扫描完整度,扫描主机在图7所示的典型IPv6本地链路网络环境下,分别运行上述扫描工具,并记录每个扫描工具针对单个操作系统所扫描到的地址数量。其实验结果如表1和图8所示。
表1IPv6地址扫描完整度结果对比
如表1所示,在针对Windows操作系统节点的IPv6地址扫描中,FScan6展现了较为全面的覆盖能力:比mMLD脚本多检测15个IPv6地址,而相比于MP6、IEH和mSLAAC地址扫描脚本、alive6扫描工具以及scan6扫描工具,FScan6多识别出25个IPv6地址。
如图8所示,从扫描结果完整度方面来看,FScan6能够扫描到桌面版本和服务器版本Windows操作系统节点最完整的IPv6地址(包括所有GUA和LLA)。平均每个节点扫描到的IPv6地址是mMLD脚本的2.5倍。同时,由图9可发现,MP6、IEH、alive6和scan6难以有效获取到Windows操作系统节点的IPv6地址,其主要原因是:为保障地址隐私Windows操作系统防火墙已经默认阻止MP6和IEH发出的探测数据包入站,因此无法获取目标主机响应。而alive6和scan6扫描工具结合了MP6和IEH两种方法,故也无法穿透Windows防火墙。
同时,mSLAAC地址扫描脚本无法扫描到任何有效的IPv6地址的主要原因是实验设备置于一个二层交换机之后,该交换机中基于ICMPv6的访问控制列表只会接收来自直接相连的路由器发出的ICMPv6 RA报文,过滤掉来自非信任端口的RA报文。
(2)扫描持续性(针对RQ2)
为评估所提方法的后续加入主机持续探测模块的有效性,首先运行后续加入主机持续探测模块,接着向现有网络环境中添加新的主机,其操作系统类型分别是:WindowsXP、Windows 7、Windows 8、Windows 10以及CentOS 8。其扫描结果如表2所示,其中GUA1:永久IPv6 GUA;GUA2:临时IPv6 GUA;LLA:链路本地地址。
表2扫描持续性实验结果
根据实验结果,FSan6能够有效扫描到Windows及部分Linux系统后续加入主机的所有IPv6地址。而对于苹果生态操作系统,由于该类操作系统对于DHCPv6协议的实现细节与上述两类操作系统有所差异,导致首次加入网络时发送的DHCPv6请求报文并不包含该主机的Client FQDN,因此无法获取苹果生态操作系统主机的本地域名,进而无法获取其IPv6地址。
(3)资源消耗和对网络的影响(针对RQ3)
(a)资源消耗
为了评估FScan6在主动扫描与被动扫描时需要的系统资源,本发明利用htop工具监控FScan6工具及其对比方法在扫描时的CPU利用率和内存使用率。实验结果如图9所示。
图9展示了参与测试的工具的CPU占用率和内存使用率。由于地址扫描是网络密集型任务,因此本地链路地址扫描工具普遍对内存的需求不高,内存使用率通常在1%以下。在CPU利用率方面,Nmap的4个地址扫描脚本所需的CPU资源要小于FScan6(主动)、alive6和scan6工具。其主要原因是:Nmap的4个地址扫描脚本仅需单次数据包解析过程,FScan6等工具则需要进行多轮数据包发送与解析,从而加大了CPU的消耗。除此之外,FScan6(被动)则需要很少的CPU资源即可完成地址扫描,这主要得益于FScan6(被动)使用被动监听方式完成地址扫描,被动监听方式使得FScan6(被动)仅需主动生成和发送极少量数据包,有效降低了资源消耗。
(b)对网络的影响
为了评估FScan6在扫描时对网络性能的影响,本发明在不同网络负载的情况下运行FScan6,同时向本地链路另一台主机发送ICMPv6回送请求消息,测量请求和响应消息之间的RTT和丢包率。RTT反映网络延迟,较高的RTT表示网络性能的下降。另一方面,丢包率则反映了网络通信的可靠程度,丢包率的增加直接影响通信的质量,从而影响扫描到的地址数量。
图10展示了FSacn6工具对RTT的影响,表3则表示在不同吞吐量下运行和不运行FScan6工具的丢包率,其中场景1:未运行FScan6工具,场景2:运行FScan6工具。随着网络负载的增加,运行和没有运行FScan6工具的两种情况的RTT的总体趋势均在上升。当吞吐量在20-400Mbps时,FScan6对RTT影响最小,运行FScan6仅导致RTT最大增加0.153ms,丢包率为0%。而吞吐量在500-600Mbps时,运行FScan6则会导致RTT最大增加0.313ms,丢包率仍为0。
表3FScan6工具对丢包率的影响
总体而言,FScan6无论在较高网络负载或较低网络负载的情况下,对网络性能的影响均在可接受范围内,且都没有观察到因运行FScan6工具产生的数据包丢失。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于本地域名关联的IPv6地址快速扫描方法,其特征在于,包括:
通过向局域网内的Windows操作系统主机发送探测数据包,从活跃主机返回的数据包中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;
通过监听并捕获网络中流通的数据包,以从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;
发现新加入的本地链路主机的本地域名列表;
基于所述本地域名列表发现对应主机配置的IPv6地址信息。
2.根据权利要求1所述的基于本地域名关联的IPv6地址快速扫描方法,其特征在于,所述通过向局域网内的Windows操作系统主机发送探测数据包,从活跃主机返回的数据包中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表包括:
构造并发送目的媒体访问控制MAC地址为广播MAC地址FF:FF:FF:FF:FF:FF,目的IPv4地址为IPv4局域网广播地址的请求通告报文至局域网内的Windows操作系统主机,从局域网内各活跃主机返回的主机通告报文中解析出本地链路活跃主机的IPv4地址及NetBIOS名称,进而得到活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表。
3.根据权利要求1所述的基于本地域名关联的IPv6地址快速扫描方法,其特征在于,所述通过监听并捕获网络中流通的数据包,以从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表包括:
监听发送到138端口的目的IPv4地址为IPv4局域网广播地址,目的MAC地址为广播MAC地址FF:FF:FF:FF:FF:FF数据包,从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表。
4.根据权利要求1所述的基于本地域名关联的IPv6地址快速扫描方法,其特征在于,所述发现新加入的本地链路主机的本地域名列表包括:
监听547端口捕获目的地址为ff02::1:2的动态主机配置协议第六版DHCPv6请求数据包,从中解析出后续加入主机的本地域名列表。
5.根据权利要求1所述的基于本地域名关联的IPv6地址快速扫描方法,其特征在于,基于所述本地域名列表发现对应主机配置的IPv6地址信息包括:
以所述本地域名列表为输入,构造并发送目的MAC地址为标准组播MAC地址01:00:5E:00:00:FB、目的IPv6地址为组播DNS特殊组播地址ff02::fb、询问内容为本地域名的组播DNS IPv6地址探测包,并从本地链路活跃主机返回的IP配置信息中解析出对应主机配置的IPv6地址信息。
6.一种基于本地域名关联的IPv6地址快速扫描装置,其特征在于,包括:本地链路活跃主机本地域名主动发现模块、本地链路活跃主机本地域名被动发现模块、后续加入主机持续探测模块及IPv6地址快速探测模块;
所述本地链路活跃主机本地域名主动发现模块用于通过向局域网内的Windows操作系统主机发送探测数据包,从活跃主机返回的数据包中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;
所述本地链路活跃主机本地域名被动发现模块用于通过监听并捕获网络中流通的数据包,以从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表;
所述后续加入主机持续探测模块用于发现新加入的本地链路主机的本地域名列表;
所述IPv6地址快速探测模块用于基于所述本地域名列表发现对应主机配置的IPv6地址信息。
7.根据权利要求6所述的基于本地域名关联的IPv6地址快速扫描装置,其特征在于,所述本地链路活跃主机本地域名主动发现模块具体用于:
构造并发送目的媒体访问控制MAC地址为广播MAC地址FF:FF:FF:FF:FF:FF,目的IPv4地址为IPv4局域网广播地址的请求通告报文至局域网内的Windows操作系统主机,从局域网内各活跃主机返回的主机通告报文中解析出本地链路活跃主机的IPv4地址及NetBIOS名称,进而得到活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表。
8.根据权利要求6所述的基于本地域名关联的IPv6地址快速扫描装置,其特征在于,所述本地链路活跃主机本地域名被动发现模块具体用于:
监听发送到138端口的目的IPv4地址为IPv4局域网广播地址,目的MAC地址为广播MAC地址FF:FF:FF:FF:FF:FF数据包,从中解析出活跃主机的本地域名二级域名列表,并将其扩展为对应主机的本地域名列表。
9.根据权利要求6所述的基于本地域名关联的IPv6地址快速扫描装置,其特征在于,所述后续加入主机持续探测模块具体用于:
监听547端口捕获目的地址为ff02::1:2的动态主机配置协议第六版DHCPv6请求数据包,从中解析出后续加入主机的本地域名列表。
10.根据权利要求6所述的基于本地域名关联的IPv6地址快速扫描装置,其特征在于,所述IPv6地址快速探测模块具体用于:
以所述本地域名列表为输入,构造并发送目的MAC地址为标准组播MAC地址01:00:5E:00:00:FB、目的IPv6地址为组播DNS特殊组播地址ff02::fb、询问内容为本地域名的组播DNS IPv6地址探测包,并从本地链路活跃主机返回的IP配置信息中解析出对应主机配置的IPv6地址信息。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510383369.3A CN120165946A (zh) | 2025-03-28 | 2025-03-28 | 基于本地域名关联的IPv6地址快速扫描方法及装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510383369.3A CN120165946A (zh) | 2025-03-28 | 2025-03-28 | 基于本地域名关联的IPv6地址快速扫描方法及装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN120165946A true CN120165946A (zh) | 2025-06-17 |
Family
ID=96009000
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510383369.3A Pending CN120165946A (zh) | 2025-03-28 | 2025-03-28 | 基于本地域名关联的IPv6地址快速扫描方法及装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN120165946A (zh) |
-
2025
- 2025-03-28 CN CN202510383369.3A patent/CN120165946A/zh active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8189580B2 (en) | Method for blocking host in IPv6 network | |
| Cheshire et al. | Multicast dns | |
| Gont et al. | Network reconnaissance in ipv6 networks | |
| CN102271050B (zh) | 一种IPv6网络中网络设备自动配置的方法、网络设备和系统 | |
| US20070297349A1 (en) | Method and System for Collecting Information Relating to a Communication Network | |
| CN113315814B (zh) | 一种IPv6网络边界设备快速发现方法及系统 | |
| Cheshire et al. | Rfc 6762: Multicast dns | |
| CN101582925A (zh) | 一种网络地址转换的方法及系统 | |
| EP2690832B1 (en) | Communication device, communication system, and communication method | |
| CN101888338B (zh) | 信息转发方法及网关 | |
| de Vries et al. | Global-scale anycast network management with verfploeter | |
| CN116319684A (zh) | 基于LLMNR查询的双栈Windows节点IPv6地址快速探测方法及系统 | |
| CN118660031A (zh) | 基于主机标识符关联的双栈节点IPv6地址快速扫描方法及系统 | |
| Xie et al. | A secure dhcpv6 system based on mac address whitelist authentication and dhcp fingerprint recognition | |
| Fang et al. | An IPv6 address fast scanning method based on local domain name association | |
| CN120165946A (zh) | 基于本地域名关联的IPv6地址快速扫描方法及装置 | |
| Hu et al. | Hostname correlation based IPv6 address fast scanning technology of Windows nodes | |
| CN112995353A (zh) | 基于流量分析的IPv6地址存活性扫描系统及扫描方法 | |
| CN109842692A (zh) | 用于获得物理网络中主机信息的VxLAN交换机、系统和方法 | |
| Hu et al. | LLMNR6: A hostname query based IPv6 address fast scanning technology for dual-stack Windows nodes | |
| CN121509387A (zh) | 基于主机名关联的IPv6单栈网络地址高效扫描方法及系统 | |
| US9912557B2 (en) | Node information detection apparatus, node information detection method, and program | |
| Fang et al. | AScan6: IPv6 address fast scanning technology based on service instance name association | |
| Nicolls et al. | IPv6 security and forensics | |
| CN118984333A (zh) | 基于服务实例名称关联的单栈主机IPv6地址快速扫描方法及系统 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |