信息收集
Enumeration Principles 枚举原则
“枚举”在网络安全中是一个很常用的术语,指的是使用主动(扫描)和被动(使用第三方提供商)的方法收集信息。 这里要注意的是,OSINT(Open-Source Intelligence) 是一种独立的程序,应该与枚举分开进行,因为 OSINT 只基于被动信息收集,不涉及对目标的 主动枚举。枚举是一个循环,我们会根据已有或已发现的数据反复收集信息。信息可以从域名、IP 地址、可访问的服务和许多其他来源收集。
一旦我们在客户的基础设施中确定了目标,我们就需要检查单个服务和协议。 在大多数情况下,这些服务是用来实现客户、基础设施、管理人员和员工之间的通信服务。
想象一下,如果我们被雇来调查一家公司的 IT 安全性,我们会开始对公司功能有个大致的了解。 例如,我们需要了解公司是如何构架的,使用哪些服务和第三方供应商,可能有哪些安全措施等等。这一步可能会被误解,因为大多数人会聚焦在明显的地方,试图强行进入公司系统,而不是理解基础设施的设置方式,以及提供特定服务需要哪些技术方面和服务。
一个错误做法的例子是,在找到像 SSH、RDP、WinRM 这样的认证服务后,我们试图用常见或弱密码和用户名进行暴力破解。 不幸的是,暴力破解是一种很容易暴露的方法,很容易导致被列入黑名单,使进一步的测试变得不可能。这种情况主要发生在我们不了解公司防御安全措施和基础设施的情况下。有些人可能会嘲笑这种做法,但经验表明,太多的测试人员采取这种方法。
我们的目标不是进入系统,而是找到所有进入系统的方法。 这就像一个寻宝猎人准备探险,他不会随便拿起铲子在某个地方乱挖,而是会计划、收集装备、研究地图、了解要覆盖的地形和宝藏可能在哪里,这样他才能带上合适的工具。如果他到处挖洞,会造成破坏,浪费时间和精力,很可能永远无法实现他的目标。了解一家公司的内部和外部基础设施,绘制出地图,并仔细制定攻击计划也是如此。
枚举原则是基于一些问题,这些问题将促进我们在任何可以想象到的情况下进行调查。 在大多数情况下,许多渗透测试人员的主要关注点是他们能看到的东西,而不是他们看不到的东西。然而,即使是我们看不到的东西也与我们有关,而且可能非常重要。不同之处在于,我们开始凭借经验看到那些第一眼看不到的组件和方面。
我们可以看到什么?
我们看到它的原因是什么?
我们看到的东西给我们创造了什么形象?
我们从中得到了什么?
我们如何使用它?
我们看不到什么?
我们看不到的原因是什么?
我们看不到的东西会给我们带来什么结果?
这里有一个重要的方面,就是规则总有例外。 然而,原则不会改变。这些原则的另一个好处是,我们可以从实际任务中看到,当我们突然不知道如何进行时,我们缺乏的不是渗透测试能力,而是技术理解,因为我们的核心任务不是利用机器,而是找到如何利用它们。
1.
事物并非一目了然。应考虑所有角度。
2.
区分可见与不可见
3.
总有方法获取更多信息。要了解目标
Enumeration Methodology 枚举方法
复杂的流程必须有一个标准化的方法,帮助我们保持方向并避免错误地遗漏任何方面。尤其是目标系统可以为我们提供多种情况,我们的方法应该如何设计几乎是不可预测的。因此,大多数渗透测试人员都会遵循他们的习惯以及他们感觉最舒服和熟悉的步骤。然而,这不是标准化的方法,而是基于经验的方法。
我们知道渗透测试以及枚举是一个动态过程。因此,我们开发了一种用于外部和内部渗透测试的静态枚举方法,其中包括自由动态,并允许对给定环境进行广泛的更改和适应。该方法嵌套在 6 层中,从隐喻上讲,它代表了我们试图通过枚举过程跨越的边界。整个枚举过程分为三个不同的层次:
Infrastructure-based enumeration
基于基础设施的枚举
Host-based enumeration
基于主机的枚举
OS-based enumeration
基于操作系统的枚举

Note:所展示的每个层级的组件仅代表主要类别,并非要搜索的所有组件的完整列表。此外,需要指出的是,第一层和第二层[Internet Presence(互联网存在)、Gatewa(网关)]并不完全适用于内联网,例如 Active Directory 基础设施。
将这些防线视为某种障碍,例如围墙。我们的任务就是四处观察,寻找入口、可钻的缝隙,或可攀爬之处,以便接近目标。理论上,也可以直接强行破墙而入,但这往往会耗费大量精力和时间,最终却发现闯出的缺口并无用处,无法通往下一层壁垒。
这些层的设计如下:
层
描述
信息类别
1. Internet Presence
识别互联网存在和外部可访问的基础设施。
域、子域、vHost、ASN、Netblock、IP 地址、云实例、安全措施
2. Gateway
确定可能的安全措施来保护公司的外部和内部基础设施。
防火墙、DMZ、IPS/IDS、EDR、代理、NAC、网络分段、VPN、Cloudflare
3. Accessible Services
识别外部或内部托管的可访问接口和服务。
服务类型、功能、配置、端口、版本、接口
4. Processes
识别与服务相关的内部流程、来源和目的地。
PID、已处理数据、任务、源、目的地
5. Privileges
识别可访问服务的内部权限和特权。
组、用户、权限、限制、环境
6. OS Setup
内部组件和系统设置的识别。
操作系统类型、补丁级别、网络配置、操作系统环境、配置文件、敏感私人文件
重要提示:为简单起见,已从“Internet Presence互联网存在”层中删除了人为方面以及员工可以使用 OSINT 获取的信息。
我们终于可以将整个渗透测试想象成一个迷宫,我们必须找出其中的间隙,并找到尽可能快速有效地进入其中的方法。这种类型的迷宫可能看起来像这样:

方块代表差距/漏洞。
最后更新于
这有帮助吗?
