配置服务发现
一旦应用程序验证主机是活动的或正在运行的,它就开始扫描端口以收集有关计算机上运行的服务的信息。服务发现的目标范围包括TCP端口和UDP端口。
TCP端口(RFC 793)是逻辑连接的端点,网络计算机通过它进行“对话”。
众所周知的端口是在互联网上最常见的开放端口。
端口的范围可以扩展到已知端口范围之外。每次漏洞检查都可能添加一组要扫描的端口。各种后门、木马、病毒和其他蠕虫在它们自己安装到计算机上之后创建端口。流氓程序和黑客利用这些端口访问被入侵的计算机。这些端口不是预定义的,它们可能会随着时间的推移而改变。输出报告将显示在漏洞测试期间扫描了哪些端口,包括恶意创建的端口。
各种类型的端口扫描方法作为自定义选项提供。大多数内置扫描模板包含隐形扫描(SYN)方法,其中端口扫描程序进程发送带有SYN(同步)标志的TCP数据包。这是最可靠的方法。它也很快。事实上,SYN端口扫描的速度大约是使用完全连接方法的扫描速度的20倍,这是TCP端口扫描方法的其他选项之一。
详尽的模板和渗透测试是例外,因为它们允许应用程序确定最佳的扫描方法。在某些情况下,该选项可以扫描防火墙;然而,它在某种程度上不太可靠。
尽管大多数模板在扫描范围内包含UDP端口,但它们将UDP端口限制为已知的数字。在UDP端口上运行的服务包括DNS、TFTP和DHCP。如果您想彻底扫描,您可以包含更多UDP端口,但这样做会增加扫描时间。
端口扫描的性能考虑
扫描所有可能的端口需要很多时间。如果扫描是通过防火墙进行的,并且防火墙设置为丢弃发送到非授权设备的数据包,那么全端口扫描可能会持续数小时到数天。如果将应用程序配置为扫描所有端口,则可能需要更改其他参数。
服务发现是扫描中对资源最敏感的阶段。该应用程序发送数十万个数据包来扫描少量资产的端口。
扫描的端口越多,扫描所花的时间就越长。而且扫描最大端口数不一定更准确。根据发现数据选择目标端口是一种最佳实践。如果您只是不确定要扫描哪个端口,请使用已知的数字。但是要注意,攻击者可能会故意避免使用这些端口,或者探测其他端口以寻找服务攻击机会。
该应用程序依赖于网络设备返回“ICMP端口不可达”包为关闭的UDP端口。
如果您想要更全面一点,可以使用来自更积极的模板的TCP端口目标列表,例如详尽的或渗透测试模板。
如果您计划扫描UDP端口,请记住,除了前面讨论的可靠性问题外,扫描UDP端口可能会花费大量的时间。默认情况下,应用程序将每秒只发送两个UDP数据包,以避免触发ICMP速率限制机制,该机制内置在大多数网络设备的TCP/IP协议栈中。发送更多的数据包可能会导致丢包。根据带宽和目标资产的数量,一次完整的UDP端口扫描可能需要长达9个小时。
为了减少扫描时间,除非必要,不要运行完整的UDP端口扫描。UDP端口扫描通常比TCP端口扫描需要更长的时间,因为UDP是一种“无连接”协议。在UDP扫描中,应用程序将资产的无响应解释为端口是开放或过滤后的,这会减缓这个过程。当配置为UDP扫描时,应用程序将匹配目标资产的报文交换速度。作为速率限制特性,Oracle Solaris每秒只响应2个UDP数据包失败,因此这种扫描在这种环境中在某些情况下可能非常慢。
服务发现的配置步骤
- 去医院扫描模板配置-服务发现页面。
通过在禁用端口扫描的情况下运行漏洞测试,可以实现最“隐蔽”的扫描。但是,如果您这样做,应用程序将无法发现服务,这将妨碍指纹识别和漏洞发现。
- 在下拉列表中选择TCP端口扫描方式。
- 从下拉列表中选择要扫描的TCP端口。如果要扫描其他TCP端口,请在额外的港口文本框中。
如果希望使用PowerShell扫描,请将端口5985添加到端口列表(如果端口列表中还没有包含该端口)。如果您已经启用了PowerShell,但不想使用该功能进行扫描,请确保端口5985不在端口列表中。看到这个话题配置扫描凭证为更多的信息。
- 在下拉列表中选择需要扫描的UDP端口。
如果您想扫描其他UDP端口,请在额外的港口文本框中。
请咨询技术支持修改默认服务文件设置。
- 如果需要修改服务名称文件,请在文本框中输入修改后的文件名。这个属性文件列出了每个端口及其上通常运行的服务。如果扫描不能识别端口上的实际服务,服务名称将在扫描结果中从这个文件中派生出来。默认的文件,
default-services.properties,位于:
1
< installation_directory > / plugins / java / 1 / NetworkScanners / 1 / default-services.properties
您可以使用列出自己的端口/服务映射的自定义版本替换该文件。
- 根据需要配置任何其他模板设置。配置完扫描模板后,单击拯救.
更改发现性能设置
您可以更改默认扫描设置,以在资产和服务发现期间最大限度地提高速度和资源利用率。如果不更改这些发现性能设置中的任何设置,扫描将根据网络条件自动调整。
改变数据包相关的设置会影响三角形。看到当你调音的时候,记住“三角”.从理论上讲,缩短发送延迟间隔会提高扫描速度,但根据带宽的不同,它也会导致网络拥塞。延长发送延迟间隔可以提高准确性。此外,为了避免被防火墙或IDS设备列入黑名单,可能需要更长的延迟。
如何扫描端口
在下面的端口扫描说明中,显示的数字是默认设置,可以更改。应用程序向目标端口发送一个由10个包组成的块,等待10毫秒,再发送10个包,并在该范围内的每个端口继续这个过程。在扫描结束时,它发送另一轮数据包,并为每个没有收到响应的数据包块等待10毫秒。应用程序对每个端口重复这些尝试5次。
如果应用程序在定义的重试次数内收到响应,它将继续进行下一阶段的扫描:服务发现。如果在耗尽模板中定义的所有发现方法后,它没有收到响应,它将报告资产死扫描日志。
当目标资产位于本地系统段(不在防火墙后面)时,扫描会更快,因为资产将响应端口关闭。当设备在防火墙后面时,就会出现困难,因为防火墙会消耗数据包,所以它们不会返回到扫描引擎。在这种情况下,应用程序将等待端口扫描之间的最大时间间隔。TCP端口扫描可能超过5个小时,特别是如果它包含65K端口的全端口扫描。
尝试在防火墙内部扫描本地段的资产。除非必要,否则尽量不要在设备外部执行完整的TCP端口扫描,这将像防火墙一样丢弃数据包。
您可以更改以下性能设置:
对于最小重试次数、每秒数据包数和同时连接请求,默认值0将禁用手动设置,在这种情况下,应用程序将自动调整设置。要启用手动设置,请输入1或更大的值。
最大重试
这是联系目标资产的最大尝试次数。如果超过限制而没有响应,则不扫描给定资源。默认的UDP重试次数是5次,这对于通过防火墙的扫描来说是很高的。如果UDP扫描花费的时间比预期的长,尝试将重试值减少到2或3。
您可以通过减少默认的最大重试次数4来加快扫描过程。在网络流量大或防火墙规则严格的情况下,减少发送数据包的重试次数是一种很好的准确性调整。在这样的环境中,更容易丢失数据包。考虑将重试值设置为3。请注意,扫描将花费更长的时间。
超时时间间隔
设置重试之间等待的毫秒数。您可以设置初始超时间隔,这是扫描将使用的第一个设置。您还可以设置范围。对于最大超时间隔,任何低于5 ms的值都将禁用手动设置,在这种情况下,应用程序将自动调整设置。发现可以根据不同的网络条件自动调整间隔设置。
扫描延迟
这是在向每个目标主机发送数据包之间等待的毫秒数。
减少这些设置可能会导致扫描结果变得不准确。
增加TCP报文的发送延迟时间,可以防止扫描导致路由器过载、触发防火墙或被入侵检测系统(IDS)列入黑名单。增加发送数据包的延迟间隔是另一种以时间为代价提高准确性的措施。
您可以通过降低端口扫描的速度(延迟10- 25毫秒)来提高端口扫描的准确性。
Packet-per-second率
这是在尝试发现过程中每秒发送的数据包数量。提高这个速率可以提高扫描速度。然而,在拥塞严重的网络中,更多的数据包可能会被丢弃,这可能会影响扫描结果。
要启用失败率限制,必须选择隐形(SYN)扫描方法。看到扫描模板.
另一个控件,称为击败速率限制(也称为失败率限制),强制最小包/秒速率。当目标主机限制端口扫描的RST (reset)响应速率时,这可能会提高扫描速度。但是,在这种情况下强制设置数据包可能会导致扫描错过端口,从而降低扫描精度。禁用失败速率限制可能会导致目标主机限制端口扫描的RST (reset)响应速率时忽略最小包设置。这可以提高扫描精度。
并行性(同时连接请求)
这是同时发送到目标主机的发现连接请求的数量。更多的同时请求意味着更快的扫描,这取决于网络带宽。如果已设置扫描延迟的值,则此设置无效。
优化发现性能的配置步骤
- 去医院扫描模板配置-发现性能页面。
- 为最大重试,如果需要,可将滑块向左或向右拖动以调整数值。
- 为超时时间间隔,将滑块向左或向右拖动以调整最初的,最低和最大如果需要值。
- 为扫描延迟,如果需要,可将滑块向左或向右拖动以调整值。
- 为Packet-per-second率,将滑块向左或向右拖动以调整最低和最大如果需要值。
- 选择击败速率限制复选框,以便在需要时强制最小包/秒速率。
- 为相似,将滑块向左或向右拖动以调整最低和最大如果需要值。
- 根据需要配置任何其他模板设置。配置完扫描模板后,单击拯救.