渗透测试中侦察的定义和分类

渗透测试中的侦察是在开始主动漏洞测试前收集关于目标信息的过程。这个阶段至关重要,因为收集的信息质量决定了后续测试阶段的有效性。侦察有助于发现活跃服务、操作系统、网络应用程序和其他基础设施组件,这些都将成为更深入分析的目标。

安全专业人员根据用于数据收集的方法和工具区分了几种侦察类型。分类取决于活动级别:被动侦察不会产生指向目标系统的网络流量,主动侦察明确与目标资源交互,混合方法结合两种方法以获得最完整的信息。

被动侦察

被动侦察包括在不直接与目标系统交互的情况下收集信息。专家分析公开可用的来源:WHOIS域名记录、DNS记录、公开来源的公司信息、搜索引擎记录、社交媒体数据和网页存档。此方法在目标系统日志中不留下痕迹,IDS系统无法检测到。

被动侦察的实际应用包括检查域名注册数据、通过互联网资料搜索员工信息、通过存档分析网站结构、通过历史DNS记录发现子域名,以及在搜索引擎索引中搜索技术提及。这些数据有助于识别潜在的入口点并了解基础设施架构。

主动侦察

主动侦察涉及与目标系统的直接交互以收集信息。方法包括端口扫描以识别开放服务、通过横幅抓取确定应用程序版本、列举网络资源、使用DNS查询发现主机名,以及主动探测网络应用程序。此活动产生明显的网络流量,可以被安全监控工具检测到。

典型的主动侦察工具包括用于端口扫描的nmap、用于分析HTTP头和服务器信息的curl,以及用于DNS枚举和服务可用性检查的专用工具。主动侦察允许精确确定操作系统版本、网络服务器和应用程序版本,这对于识别已知漏洞至关重要。

混合侦察方法

混合方法结合被动和主动侦察的元素,以实现信息完整性和最小化检测可能性之间的最优平衡。专家可以从被动信息收集开始以识别潜在目标,然后使用谨慎的主动侦察来确认假设和完善细节。此方法在测试具有主动监控的高度受保护网络时特别有效。

混合方法的实际示例是使用公开来源确定网络应用程序的大约版本,然后进行最小扫描以确认和完善这些信息。另一个示例涉及分析域名记录以识别潜在IP地址,然后有选择性地检查只有最可能的目标。

网络应用程序侦察

网络应用程序侦察旨在识别入口点、功能和技术栈。这包括分析HTTP响应以确定网络服务器和应用程序、通过爬虫映射应用程序结构、识别参数和表单、分析页面代码以揭示技术、以及发现隐藏的文件和目录。OWASP Web Security Testing Guide提供了对此过程的系统性方法,为网络应用程序测试定义了标准方法。

网络侦察工具分析HTTP头以识别服务器,检查页面源代码以揭示所用的框架和库,并检查配置文件和备份的存在。在此阶段收集的信息经常揭示与配置不当或技术泄露相关的漏洞,这些问题属于OWASP Top 10所描述的类别。

记录侦察结果

记录侦察结果是确保测试过程透明度和发现可重复性的关键步骤。对于每个发现的服务、应用程序或技术,应记录信息来源、获取方法和置信度。这使客户能够理解识别潜在漏洞的基础,并帮助开发人员规划补救工作。

结构化文档包括创建包含版本信息的资产清单、使用技术的记录、端口扫描和网络应用程序结果。准备最终报告时,侦察期间收集的信息与发现的漏洞相关联,使客户能够理解风险并优先处理修复。文档应足够详细以在不重新测试的情况下再现工作,但不应透露可用于未授权访问的信息。

参考资料

PENTEST.RED / RED JOURNAL