假设我们在利用(Exploitation)阶段成功利用了目标系统。与利用阶段一样,在后渗透阶段,我们必须再次考虑是否使用规避性测试(Evasive Testing)。在后渗透阶段,我们已经身处系统内部,这使得避免触发警报变得困难得多。后渗透阶段的目标是从本地视角获取敏感和安全相关信息,以及业务相关信息,在大多数情况下,这需要比标准用户更高的权限。此阶段包括以下组成部分:
| 规避性测试 (Evasive Testing) | 信息收集 (Information Gathering) |
|---|---|
| 信息掠夺 (Pillaging) | 脆弱性评估 (Vulnerability Assessment) |
| 权限提升 (Privilege Escalation) | 持久化 (Persistence) |
| 数据渗出 (Data Exfiltration) |
渗透测试流程包括:前期交互(Pre-Engagement)、信息收集(Information Gathering)、脆弱性评估(Vulnerability Assessment)、利用(Exploitation)、后渗透(Post-Exploitation)、横向移动(Lateral Movement)、概念验证(Proof-of-Concept)和后期交互(Post-Engagement)。
规避性测试 (Evasive Testing)
如果有一位技术熟练的管理员在监控系统,那么任何更改甚至一个简单的命令都可能触发警报,从而导致我们暴露。在许多情况下,我们可能会被踢出网络,随后针对我们的威胁搜寻便会开始。我们也可能失去对某个主机(被隔离)或用户帐户(被临时禁用或密码被更改)的访问权限。这次渗透测试从某种角度看是失败的,但从另一角度看又是成功的,因为客户能够检测到我们的某些行动。在这种情况下,我们仍然可以通过撰写完整的攻击链报告,帮助客户识别其监控和流程中未注意到我们行动的盲点,从而为客户提供价值。对我们而言,可以研究客户是如何以及为何检测到我们,并努力提升我们的规避技能。也许是我们没有彻底测试载荷,或是我们疏忽大意,运行了诸如 net user或 whoami这类常被EDR系统监控并标记为异常活动的命令。
运行被客户防御系统阻止或检测到的命令或工具,通常也能帮助客户。这向他们表明其防御措施对某些攻击是有效的。请记住,我们是在模拟攻击者,因此部分攻击行为被发现并不总是坏事。不过,在进行规避性测试时,我们的目标应该是尽可能不被发现,以便识别客户网络环境中可能存在的任何”盲点”。
规避性测试分为三个不同类别:
| 规避性 (Evasive) | 混合规避性 (Hybrid Evasive) | 非规避性 (Non-Evasive) |
|---|
这并不意味着我们不能同时使用三种方法。如果我们的客户希望执行一次侵入式渗透测试,以获取尽可能多的信息和最深入的测试结果,那么我们将执行非规避性测试,因为周边的安全措施可能会限制甚至阻止我们。然而,这也可以与规避性测试结合,使用与非规避性测试相同的命令和方法。然后我们可以观察安全措施是否能识别并响应所执行的操作。在混合规避性测试中,我们可以测试预先定义的特定组件和安全措施。这在客户仅希望测试特定部门或服务器以检验其能否抵御攻击时很常见。
信息收集 (Information Gathering)
由于在利用阶段我们已经从目标系统及其网络获得了一个新的内部视角,我们基本上处于一个新环境中。这意味着我们首先必须重新熟悉我们正在与之交互的对象以及可用的选项。因此,在后渗透阶段,我们需要再次进行信息收集和脆弱性评估阶段,这两个阶段可视为当前后渗透阶段的组成部分。这是因为我们在此之前所拥有的信息是从外部视角收集的,而非内部视角。
从内部(本地)视角来看,我们有更多的可能性和替代方案来访问某些对我们相关的信息。因此,信息收集阶段从本地视角重新开始。我们搜索并收集尽可能多的信息。此处的区别在于,我们还需要枚举本地网络和本地服务,例如打印机、数据库服务器、虚拟化服务等。我们通常会发现供员工用于交换和共享数据文件的共享。对这些服务和网络组件的调查称为信息掠夺(Pillaging)。
信息掠夺 (Pillaging)
信息掠夺阶段是我们检查主机在企业网络中角色的阶段。我们分析网络配置,包括但不限于:
- 网络接口(Interfaces)
- 路由(Routing)
- DNS
- ARP
- 服务(Services)
- VPN
- IP子网(IP Subnets)
- 共享(Shares)
- 网络流量(Network Traffic)
了解我们所处系统的角色,也能让我们很好地理解它如何与其他网络设备通信及其用途。由此,我们可以发现,例如,存在哪些替代子域、是否具有多个网络接口、此系统还与哪些其他主机通信、管理员是否从其连接到其他主机,以及我们是否可以潜在重用凭据或窃取SSH密钥以进一步扩大访问或建立持久化等。这首先有助于概览网络结构。
例如,我们可以利用该系统上安装的策略来确定网络上其他主机使用了什么。因为管理员通常使用特定的方案来保护其网络并防止用户更改其上的任何内容。例如,如果我们发现密码策略仅要求8个字符但不要求特殊字符,那么我们可以推断出,我们在此系统及其他系统上猜解其他用户密码的概率相对较高。
在信息掠夺阶段,我们还将搜寻敏感数据,例如共享资源、本地计算机、脚本、配置文件、密码库、文档(Excel、Word、.txt文件等),甚至电子邮件中的密码。
我们信息掠夺的主要目标是展示成功利用的影响,并且,如果我们尚未达到评估的最终目标,则寻找额外数据(例如密码),这些数据可以作为后续阶段(如横向移动)的输入。
持久化 (Persistence)
一旦我们对系统有了概览,紧接着的下一步就是维持对被利用主机的访问权限。这样,如果连接中断,我们仍然可以访问它。这一步至关重要,并且通常在信息收集和信息掠夺阶段之前作为第一步进行。
我们不应遵循标准化的顺序,因为每个系统都是由具有不同偏好和知识的独特管理员单独配置的。建议在此阶段灵活工作,适应具体情况。例如,假设我们对某个服务使用了可能导致其崩溃的缓冲区溢出攻击。那么,我们应尽快在系统上建立持久化,以避免多次攻击同一服务并可能造成中断。通常,如果我们失去连接,将无法以相同方式访问系统。
漏洞评估 (Vulnerability Assessment)
如果我们能维持访问权限并对系统有良好的概览,就可以利用关于系统及其服务的信息以及其上存储的任何其他数据,来重复漏洞评估阶段,但这次是从系统内部进行。我们分析信息并相应地确定优先级。我们接下来追求的目标是权限提升(如果尚未获得足够权限)。
再次强调,必须区分可能损害系统的利用(exploits)与不会对服务造成任何中断的攻击。在此过程中,我们需要权衡在第一次漏洞评估阶段已经审查过的组件。
权限提升 (Privilege Escalation)
权限提升非常重要,在大多数情况下,它代表了一个关键时刻,可以为我们打开许多新的大门。在系统或域上获得尽可能高的权限通常至关重要。因此,我们希望获得root(基于Linux的系统)或域管理员/本地管理员/SYSTEM(基于Windows的系统)权限,因为这将常常允许我们毫无限制地在整个网络中移动。
然而,必须记住,权限提升并不总是必须在系统本地发生。我们也可以在信息收集阶段从属于更高特权组成员的其他用户那里获取存储的凭据。利用这些权限以其他用户身份登录也是权限提升的一部分,因为我们使用新的凭据集(快速)提升了我们的权限。
数据渗出 (Data Exfiltration)
在信息收集和信息掠夺阶段,我们通常能够发现大量的个人信息和客户数据。一些客户会希望检查渗出此类数据是否可行。这意味着我们尝试将这些信息从目标系统传输到我们自己的系统。数据丢失防护(DLP)和端点检测与响应(EDR)等安全系统有助于检测和防止数据渗出。除了网络监控,许多公司还对硬盘驱动器进行加密,以防止外部方查看此类信息。在渗出任何实际数据之前,我们应与客户和我们的经理核实。通常,创建一些伪造数据(例如假信用卡号或社会安全号码)并将其渗漏到我们的系统可能就足够了。这样,可以测试寻找离开网络的数据模式的保护机制,但我们无需对自己测试机器上的任何真实敏感数据负责。
公司必须根据所涉及数据的类型遵守数据安全法规。这些法规包括但不限于:
| 信息类型 | 安全法规 |
|---|---|
| 信用卡账户信息 | 支付卡行业数据安全标准 |
| 电子患者健康信息 | 健康保险流通与责任法案 |
| 消费者私人银行信息 | 格雷姆-里奇-比利雷法 |
| 政府信息 | 2002年联邦信息安全管理法案 |
公司可能遵循的一些框架包括:
(NIST) – National Institute of Standards and Technology 美国国家标准与技术研究院 | (CIS Controls) – Center for Internet Security Controls 互联网安全中心 |
|---|---|
(ISO) – International Organization for Standardization 国际标准化组织 | (PCI-DSS) – The Payment Card Industry Data Security Standard 付款卡行业数据安全标准 |
(GDPR) – General Data Protection Regulation ( 一般数据保护条例 | (COBIT) – Control Objectives for Information and Related Technologies 信息及相关技术控制目标 |
(FedRAMP) – The Federal Risk and Authorization Management Program 联邦风险与授权管理计划 | (ITAR) – International Traffic in Arms Regulations 国际武器贸易条例 |
(AICPA) – American Institute of Certified Public Accountants ( 美国注册会计师协会 | (NERC CIP Standards) – NERC Critical Infrastructure Protection Standards 北美电力可靠性公司关键基础设施保护标准 |
值得我们熟悉每一个框架,但对我们而言,关键的是我们如何处理这些信息。对我们来说,数据的类型没有太大意义,但围绕数据所需的控制措施却有意义,并且如前所述,我们可以模拟从网络渗出数据,以此作为概念验证,证明其可行性。我们应与客户核实,确保他们的系统旨在捕获我们试图渗出的伪造数据类型(如果我们成功的话),以免在我们的报告中出现任何误述。
对于此类关键步骤,养成屏幕录制(以及截图)的习惯作为额外证据是很好的做法。如果我们只有终端访问权限,可以显示主机名、IP地址、用户名以及客户文件对应的路径,并进行截图或屏幕录制。这有助于我们证明数据的来源以及我们成功将其从环境中移除。
如果发现此类敏感数据,当然应立即通知我们的客户。基于我们能够提升权限和渗出个人数据的事实,他们可能希望暂停、结束或转移渗透测试的重点,特别是当数据渗出是主要目标时。然而,这由我们的客户决定,许多人会更倾向于我们继续测试,以识别其环境中所有可能的弱点。
接下来,我们将讨论横向移动,这是渗透测试过程中的一个关键阶段,可能会使用我们从后渗透中获得的数据作为输入。
问题
- 本节中提到了多少种规避测试类型?
- 公司必须遵守的信用卡支付安全标准的名称是什么?(答案格式:缩写)




