【THM】Red Team Engagements(红队演练)-红队
本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/redteamengagements
本文相关内容:简单介绍红队演练的步骤和程序,包括计划、框架和文档。
简介
成功开展攻防演练的关键在于有关各方能否进行良好协调的规划和有效的沟通。
本文将主要关注红队演练的各个组成部分,并会介绍关于规划红队演练以及记录红队活动的基础知识。
红队演练有多种形式,包括:
- 桌面演习(沙盘推演)
- 模拟敌手
- 物理评估
本文学习目标:
- 理解红队演练的组成部分和相关职责。
- 学习如何根据需求和可用资源以及TTPs来正确地规划攻防演练。
- 了解如何根据客户目标编写攻防演练文档。
定义演练的范围及目标
开展攻防演练可能是非常复杂和繁琐的,一场演练得以成功的关键首先要明确定义客户的目标或目的。客户目标应由客户和红队双方进行讨论,以建立关于预期结果和将要开展的演练内容的相互理解。可以说,设定目标是后继撰写文档和进行其他相关规划的基础。
如果没有明确而具体的目标和预期,那么你就是在为一场毫无组织和计划的战役做准备,只有通过确定具体的目标,才能够为攻防演练的剩余部分定下基调。
在评估客户的目标和规划演练细节时,你通常还需要决定评估的重点。
攻防演练可以被归纳为进行一般的内部/网络渗透测试以及集中地模拟某个假想敌。在集中地模拟敌手时,通常需要在演练中定义某个特定的APT组织或者黑客团伙来针对性地进行模拟;这通常是基于那些针对特定行业公司进行攻击的群体来确定的,比如APT38之于金融机构。在进行一般的内部或网络渗透测试时,则通常不太集中,并会使用更多的标准TTPs(Tactics, Techniques and Procedures)。
客户目标会影响攻防演练的一般规则和范围,但是,客户目标也只是设定关于攻防演练中的任务目标的基本定义,在对攻防演练进行具体规划时,将会扩展客户目标,并确定演练的具体内容。
开展精确而透明的攻防演练的下一个关键是要有明确界定的范围,演练的范围将因相关组织及其基础设施和态势而异。
客户所要求的演练范围通常会定义你能做什么以及不能做什么还有你的目标是什么。虽然客户的目标可以与红队一起讨论和确定,但客户所要求的演练范围应该只由客户自己设置。当然,在某些情况下,红队也可以在客户约定的范围内讨论一些可能影响演练的不利因素。对于客户来说,他们应该清楚地了解他们的网络情况以及红队评估可能产生的影响。
下面是一个简单例子,用于说明客户所要求的演练范围可能是什么样子:
- 不允许发生数据外泄。
- 禁止访问生产环境中的服务器。
- IP地址段10.0.3.8/18不在要求的范围内。
- IP地址段10.0.0.8/20在允许的范围内。
- 在任何情况下都不允许使系统停机。
- 禁止泄露个人信息。
当从红队的角度分析客户的目标以及客户所要求的演练范围时,理解其中更深刻的意义和影响是至关重要的。作为红队成员,当你在分析演练的目标和范围时,你应该始终对你的团队将如何处理问题/目标有一个动态的理解;如果需要的话,你还应该撰写相关的演练计划,或者从对客户所设定的目标和范围的粗略解读开始。
答题
阅读关于客户目标的示例并回答下面的问题。
例 - 某企业在攻防演练中的要求:
目标:
- 识别指定系统的错误配置和指定网络上的漏洞。
- 主要关注外部系统。
- 确定端点检测和威胁响应系统的有效性。
- 评估整体的安全态势和应急响应情况。
- 评估SIEM(安全信息和事件管理)以及其他检测措施。
- 评估补救措施。
- 评估DMZ(隔离区)和内部服务器的分割情况。
- 根据停机时间和时间长短,允许使用白名单。
- 评估数据暴露和泄露所产生的影响。
范围:
- 在任何情况下都不允许使系统停机。
- 禁止任何形式的DDoS或DoS攻击。
- 禁止使用任何有害的恶意软件,包括勒索软件和其他变种软件。
- 禁止泄露个人信息,不允许使用任意的已泄露数据。
- 允许对IP地址在 10.0.4.0/22 范围内的系统进行攻击。
- 禁止攻击IP地址在 10.0.12.0/22 以内的系统。
- Bean Enterprises将密切监视与DMZ(隔离区)和关键/生产系统发生的交互。
- 所有与"
*.bethechange.xyz
"的交互都是被禁止的。 - 所有与 "
*.globalenterprises.thm
" 的交互都是被允许的。
- 所有与"
交战规则(RoE)
交战规则(RoE)是针对客户目标和演练范围的具有法律约束力的概要,其中包含了客户与红队双方之间关于攻防演练的预期设想以及进一步细节。这是演练规划过程中的第一个“正式”文档,需要客户和红队之间的适当授权,RoE文件通常会作为演练的利益相关方之间的一般合同,当然,有时候也可以使用外部合同或其他保密协议(保密合约)来约束攻防演练中的客户与红队。
RoE文档的格式和措辞至关重要,因为它是一个具有法律约束力的合同,并且它还设定了关于攻防演练的明确预期内容。
每个 RoE文档的具体结构将由客户和红队共同决定,并且在内容长度和总体部分上可能会有所不同,下面是一份RoE文档可能包含的标准部分的简要表格。
在分析RoE文件时,重要的是要记住它只是一个摘要,其主要目的是成为一个有法律约束的文件。未来和更深入的演练计划仍需要扩大 RoE中规定的范围以及客户所要求的目标。
在本小节的答题部分中,我们将使用的是一个改编自redteam. guide的简短RoE文档。
答题
tips:下载与本文相关的TryHackMe实验房间中所提供的任务文件,详细阅读文件内容并回答以下问题。
红队活动计划
之前,我们主要是从业务角度关注演练计划和相关文档,而本小节介绍的活动计划将使用从客户目标和 RoE文档中所获得的信息和规划情况,并将其应用到各种计划和文档中,以确定红队在攻防演练中具体将如何做以及做什么。
每个红队的内部都有其演练方法和关于演练的活动计划文件。我们在此将展示一套比较深入的活动计划,这能保证演习各方进行准确的沟通并将提供一系列和演练相关的文件。我们将介绍的红队活动计划摘要由四个不同的计划组成,这些计划是从军事行动文件中改编而来的,具有不同的深度和覆盖面,每个计划可以在下面的表中找到一个简短的解释:
红队活动计划的另一个例子是redteam.guide演练清单,这个清单可以作为一种更广泛的方法来规划一个活动和提供活动所需的信息。
接下来的小节中,我们将进一步深入研究以上这些计划、文档以及每个计划的细节,同时深入研究活动计划。
演练文档
演练文档是红队活动计划的延伸,在这一文档中红队活动计划的想法将被正式记录下来,“文档”一词可能具有欺骗性,因为一些计划可能不需要以真正的文档形式来记录。
在本小节中,我们将对红队活动计划的主要组成内容进行技术概述。
Engagement Plan-演练计划:
- 作战概念(CONOPS-Concept of Operations):非技术性地书面概述红队如何满足客户目标并锁定客户。
- 资源规划:包括让红队得以顺利完成任务所需的时间表和信息或者任何其他资源需求,如人员、硬件、云需求等。
Operations Plan-行动计划:
- 相关人员:关于所需人员的信息。
- 停止条件:红队应该如何停止演练以及为什么在演练期间停止。
- RoE文档(可选):设定演练的预期内容,具有法律约束力。
- 技术需求:红队需要掌握什么知识才能成功完成任务?
Mission Plan-任务计划:
- 命令编排(可选):要运行的精确命令和工具,包括何时、为什么以及如何运行,这通常见于大型团队中,同时还需要有许多不同技能水平的操作员。
- 执行时间:演练阶段的开始时间,此处指的是可以选择执行工具和命令的确切时间。
- 职责/角色:明确谁可以做什么,在什么时候去做。
Remediation Plan-整改计划(可选):
- 报告:演练的细节摘要和相关的调查结果报告
- 补救和咨询:客户将如何针对关于演练的调查结果进行补救?这部分可以包含在报告中,也可以由客户和红队之间召开会议讨论。
作战概念(Concept of Operations)
作战概念(CONOPS-Concept of Operations)是演练计划的一部分,它是详细说明演练过程的高级概述;我们可以将其与渗透测试报告的执行摘要相比较,该文档可以为业务/客户提供参考,并能作为红队构建和扩展进一步的活动计划的参考。
tips:CONOPS(作战概念)是一个来自于美国军方的概念。
CONOPS(作战概念)文档应该从半技术性总结的角度编写,可以假设目标受众/读者对技术知识一无所知。虽然应该在较高的层次上总结性地编写CONOPS(作战概念)文档,但仍需注意不应该省略关于通用工具、目标组等内容细节。如同大多数红队文档一样,CONOPS(作战概念)文档并没有一个固定的标准,以下是关于应该包含在CONOPS(作战概念)文档中的关键组成部分的概述:
- Client Name——客户名称
- Service Provider——服务提供者
- Timeframe——时间表
- General Objectives/Phases——一般目标/阶段
- Other Training Objectives (Exfiltration)——其他训练目标(如数据外泄)
- High-Level Tools/Techniques planned to be used——计划使用的高级工具/技术
- Threat group to emulate (if any)——要模拟的威胁组织(如果有的话)
编写和理解CONOPS(作战概念)文档的关键是——需要提供足够的信息来让读者大致理解所有正在进行的演练操作;CONOPS(作战概念)文档应该易于阅读,能够显示出清晰的定义和要点,以方便读者理解。
答题
下面是一个针对具有强大安全态势的成熟APT组织的CONOPS(作战概念)文档示例:
Holo Enterprises聘请TryHackMe作为外部承包商进行为期一个月的网络基础设施评估和安全态势评估。该活动将利用假定的入侵模型,从第3层基础设施开始。操作人员将逐步进行侦察,并试图达到所确定的目标。如果定义的目标没有达到,红队将横向移动并提升在目标网络中的特殊权限。红队操作员还将执行并保持权限持久化,一共需要维持三周时间。如果红队在整个演练过程中被蓝队检测识别或反制,则演练中的裁判方将进行主动干预。红队最后一天的工作是清理入侵痕迹以及提供安全修复建议,这需要与蓝队、白队进行协商。
客户要求的训练目标如下:评估蓝队识别和防御实时入侵/攻击的能力;识别对手在内部网络中可能带来的安全风险。红队将通过使用Cobalt Strike作为主要的红队C2工具来完成目标。红队也被允许使用其他标准工具,但只限于使用能够识别目标威胁的工具。
基于客户的安全态势和安全成熟度,整个演练过程将采用以下威胁组织的TTP(Tactics, Techniques and Procedures):FIN6组织。
资源规划(Resource Plan)
资源规划也是演练计划的一部分,它详细概述了日期、所需知识(可选)和所需资源等内容,该文档扩展了CONOPS(作战概念)并包括了一些关键内容的具体细节,例如演练日期、演练所需的知识等。
与CONOPS(作战概念)文档不同,资源规划文档不应该只是简单地以摘要形式编写;相反,资源规划应该以项目列表的形式列出相关文档的细分部分。和大多数红队文档一样,在编写资源规划内容时,并没有什么标准化的模板或文档,以下是一个关于资源规划文档的子部分示例大纲:
- Header——开头
- Personnel writing——编写人员
- Dates——日期
- Customer——客户
- Engagement Dates——演练日期
- Reconnaissance Dates——红队侦察日期
- Initial Compromise Dates——获取对目标的初步访问权限的日期
- Post-Exploitation and Persistence Dates——后渗透以及权限持久化日期
- Misc. Dates——其他日期
- Knowledge Required (optional)——所需的技术知识(可选)
- Reconnaissance——侦察
- Initial Compromise——获取针对目标的初步访问权限
- Post-Exploitation——后渗透
- Resource Requirements——所需的资源
- Personnel——人员
- Hardware——硬件
- Cloud——云
- Misc——其他
编写和理解资源规划文档的关键是尽量提供足够的信息来收集所需的内容,但也不应在文档中过于广泛地提供信息;资源规划文档应该直击主题,明确需要什么资源来开展红队演练即可。
答题
tips:查看模拟示例并回答以下问题。
行动计划(Operations Plan)
行动计划是一份灵活的文档,它主要提供关于正在进行的演练和行动的具体细节。行动计划扩展了当前的CONOPS(作战概念)文档,并将会包括大部分具体演练信息,ROE文档也可以放在此处,这取决于ROE文档的深度和结构。
行动计划文档应该遵循与资源规划文档类似的写作方案,使用项目列表和子章节形式。与其他红队文档一样,在编写行动计划内容时,并没有一套标准的行动计划模板或文档,以下是一个关于行动计划文档的子部分示例大纲:
- Header——开头
- Personnel writing——编写人员
- Dates——日期
- Customer——客户
- Halting/stopping conditions (can be placed in ROE depending on depth)——暂停/停止条件(可以放在ROE文档中,主要取决于ROE深度)
- Required/assigned personnel——需要指定分配的人员
- Specific TTPs and attacks planned——计划使用的具体TTPs和攻击方式
- Communications plan——通信(沟通)计划
- Rules of Engagement (optional)——交战规则,即RoE文档(可选)
该文档中值得注意的部分是通信计划,通信计划主要将总结红队如何与其他团队以及客户进行通信;每个红队团队都有自己喜欢的与客户进行沟通的方法,以下是一个红队团队在进行沟通时可能选择的方式:
- vectr.io
- Email(电子邮件)
- Slack(一款基于云端运算的即时通讯软件)
答题
tips:查看模拟示例并回答以下问题。
任务计划(Mission Plan)
任务计划是一份特定于红队团队的文档,它将详细说明红队操作人员要完成的确切任务,该文档会使用上文所提到的那些计划文档中的信息,并将针对性地进行任务分配。
如何编写详细的任务计划文档主要取决于不同的红队团队,由于这是一个内部使用的文档,所以文档结构和内容细节的影响较小。正如本文所概述的其他文档一样,任务计划文档的呈现方式会因为不同红队团队而有所不同;这个计划文档很简单,可能只需给所有操作人员发送一封关于任务的电子邮件就可以了,以下是一个红队应该包含在任务计划文档中的最小细节列表:
- Objectives——任务目标
- Operators——操作人员
- Exploits/Attacks——漏洞利用/攻击
- Targets (users/machines/objectives)——攻击指向(用户/机器/目标)
- Execution plan variations——执行计划的变体
tips:Execution plan variations是指在执行红队任务时,根据不同的情况和目标,采用不同的执行计划,例如,根据网络杀伤链(Kill Chain)的不同阶段,选择不同的攻击技术和工具1。
行动计划和任务计划看起来很相似,但是它们考虑问题的角度不同:行动计划应该从业务和客户的角度考虑,而任务计划应该从操作人员和红队团队的角度考虑。
答题
tips:查看模拟示例并回答以下问题。
小结
我们已经介绍了如何将红队活动计划量化为文档,这将为开展成功的红队演练做好准备。
本文始终一致的主题是,每个红队团队都有属于自己的内部文档和行为方式,在实际开展红队演练时,这是一个需要理解的关键概念。本文所涉及的内容只能作为一个简单的指南,它可以让你了解一些基本概念,并提供一个基础框架以供学习,而不能作为一个明确的步骤化的手册;当实际计划开展一场红队演练时,请记住你的首要任务是要满足客户的目标。
红队演练中的计划和文档往往被忽视,但它们对于开展成功的演练至关重要。