| name | executing-red-team-exercise |
| description | 执行全面的红队演练(Red Teaming),模拟真实世界对手针对组织的人员、流程和技术的攻击行动。红队以隐蔽性为主要目标,采用从初始侦察到目标完成的完整攻击生命周期,同时测试组织的检测和响应能力。与渗透测试不同,此技能聚焦于对手模拟而非漏洞识别。适用于红队演练、对手模拟、对手仿真或全范围攻击性安全评估等请求场景。
|
| domain | cybersecurity |
| subdomain | penetration-testing |
| tags | ["red-team","adversary-emulation","MITRE-ATT&CK","Cobalt-Strike","detection-assessment"] |
| version | 1.0.0 |
| author | mahipal |
| license | Apache-2.0 |
执行红队演练
适用场景
- 评估组织对真实对手行动的检测、响应和遏制能力
- 测试安全运营中心(SOC)、事件响应团队和威胁狩猎能力的有效性
- 通过模拟串联多个漏洞和技术的攻击,验证安全投资的价值
- 针对特定威胁行为者(民族国家、勒索软件团伙、内部威胁)评估组织安全态势
- 满足对手模拟的监管要求(TIBER-EU、CBEST、AASE、iCAST)
不适用于:未获得高管级授权和详细交战规则(Rules of Engagement)文件的情况、可能影响安全或关键运营的系统,或代替基础漏洞管理(应先修复已知漏洞)。
前置条件
- 高管级书面授权,清晰定义目标、范围和禁止测试的系统
- 红队命令与控制(C2)基础设施:具备域名前置或重定向器的主备 C2 信道
- 安装了 OPSEC 加固工具集的操作员工作站(Cobalt Strike、Sliver、Brute Ratel 或 Mythic)
- 针对目标组织相关对手群体的威胁情报,用于对手仿真规划
- 目标组织内的可信代理人(白方,White Cell),管理演练边界而不向防御者透露信息
- MITRE ATT&CK 矩阵,用于映射计划和已执行的技术
工作流程
步骤 1:对手仿真规划
基于现实威胁模型制定行动计划:
- 威胁行为者选择:选择与组织所在行业相关的对手群体。金融服务业可仿真 FIN7 或 Lazarus Group;医疗健康业可仿真 APT41 或 FIN12。从 MITRE ATT&CK 中映射所选对手的已知 TTP
- 目标定义:定义可量化的目标,例如"从核心银行系统访问客户财务数据"或"演示在域内部署勒索软件的能力"
- 攻击计划制定:创建逐步行动计划,将每个阶段映射到 ATT&CK 战术:
- 初始访问(TA0001):钓鱼、利用面向公众的应用程序或供应链攻击
- 执行(TA0002):PowerShell、脚本、利用客户端执行
- 持久化(TA0003):计划任务、注册表修改、植入物部署
- 权限提升(TA0004):令牌冒充、利用权限提升漏洞
- 防御规避(TA0005):进程注入、时间戳篡改、指标清除
- 凭据访问(TA0006):LSASS 转储、Kerberoasting、凭据填充
- 横向移动(TA0008):远程服务、哈希传递、远程桌面
- 收集/数据外泄(TA0009/TA0010):数据暂存、通过 C2 外泄数据
- 去冲突计划:建立让白方区分红队活动与真实威胁的流程
步骤 2:基础设施准备
构建 OPSEC 加固的攻击基础设施:
- C2 基础设施:在过滤蓝队调查流量的重定向器后部署主 C2 服务器。使用域名前置或合法云服务(Azure CDN、CloudFront)将 C2 流量融入正常 Web 流量
- 钓鱼基础设施:注册时间较长的域名(30 天以上),配置 SPF/DKIM/DMARC,构建凭据收集或载荷投递页面
- 载荷开发:创建自定义植入物或配置 C2 框架载荷,包含:
- AMSI 绕过,用于 PowerShell 执行
- ETW 补丁,用于规避安全产品遥测
- 睡眠掩码和内存加密,用于击败内存扫描
- 签名二进制代理执行(rundll32、msbuild、regsvr32),用于防御规避
- 暂存基础设施:搭建第二阶段载荷的文件托管、数据外泄接收服务器和备用通信信道
- OPSEC 验证:在上线前针对目标环境中部署的相同 EDR/AV 产品测试整个基础设施
步骤 3:初始访问
在目标环境中获取初始立足点:
- 钓鱼活动:向选定员工发送定向鱼叉式钓鱼邮件,附带武器化文档或凭据收集链接。使用基于侦察阶段收集的 OSINT 制定借口
- 外部利用:利用侦察阶段发现的面向互联网应用(VPN 门户、Web 应用、邮件服务器)中的漏洞
- 物理访问:若在范围内,尝试物理访问以部署网络植入物(LAN Turtle、Bash Bunny)或 USB 投放
- 供应链:若在范围内,攻击供应商或供货商关系以获取间接访问
- 成功获得初始访问后,建立第一个 C2 信标并确认与 C2 服务器的通信。立即实施持久化(多种机制),以在系统重启和凭据变更后继续保持访问
步骤 4:后渗透与目标完成
在保持隐蔽性的同时在目标环境中行动:
- 内部侦察:使用 BloodHound 和内部扫描枚举域、识别高价值目标并绘制网络图,流量设计为融入正常管理活动
- 权限提升:使用最不易被检测的技术(Kerberoasting 优于哈希传递,离地攻击优于自定义工具)从初始用户提升至本地管理员,再到域管理员
- 横向移动:使用合法协议(RDP、WinRM、SMB)和窃取的凭据移动到目标系统。变换技术以测试多个检测签名
- 防御规避:持续适应以避免被检测。若某技术触发告警,记录该检测并切换到替代方法
- 目标执行:完成已定义的目标(访问目标数据、演示勒索软件暂存、外泄数据)并记录完成证据
- 检测时间线:记录每个已执行技术的时间戳,以便事后与蓝队检测时间线对比
步骤 5:紫队整合与报告
将红队发现转化为防御改进:
- 检测差距分析:将红队技术时间线与蓝队检测日志对比。识别哪些技术被检测到、哪些被遗漏,以及每个技术的平均检测时间(MTTD)
- ATT&CK 覆盖映射:创建 ATT&CK Navigator 热图,显示已测试的技术以及是否被检测、遗漏或部分检测
- 紫队协作(Purple Team)会话:开展协作会议,红队逐步揭示每个技术,蓝队识别检测本应发生的位置并编写新检测规则
- 报告:提交全面报告,包含行动叙述、逐技术分析(含检测状态)以及改进检测和响应的优先级建议
核心概念
| 术语 | 定义 |
|---|
| 对手仿真(Adversary Emulation) | 模拟已知威胁行为者的特定 TTP,测试组织针对相关现实威胁的防御能力 |
| C2(命令与控制) | 红队用于远程控制部署在被控系统上植入物的基础设施和通信信道 |
| OPSEC(操作安全) | 红队在演练期间采用的避免被防御团队检测到的实践 |
| 域名前置(Domain Fronting) | 将 C2 流量隐藏在合法 CDN 域名后面,规避基于网络的检测和域名封锁的技术 |
| 紫队演练(Purple Teaming) | 红蓝团队协作改进检测能力的演练,双方共同分享攻击技术和防御差距 |
| 白方(White Cell) | 管理演练、处理去冲突并在红蓝团队之间调解的可信代理人或演练控制组 |
| 植入物(Implant) | 红队部署在被控系统上以保持访问、执行命令和促进横向移动的软件 |
| MTTD/MTTR | 平均检测时间/平均响应时间;衡量防御团队识别和遏制威胁所需时间的指标 |
工具与系统
- Cobalt Strike:商业对手模拟平台,提供信标、可配置 C2 配置文件和后渗透能力
- Sliver:开源 C2 框架,支持多种协议(mTLS、WireGuard、HTTP/S、DNS),具有跨平台植入物
- MITRE ATT&CK Navigator:可视化 ATT&CK 技术覆盖的工具,支持计划执行与实际执行与检测技术的对比
- Mythic:开源 C2 框架,具有模块化 agent 架构和基于 Web 的操作员界面
常见场景
场景:针对零售公司仿真 FIN7 对手
场景背景:一家全国性零售连锁店希望测试其针对 FIN7 的防御能力,FIN7 是一个以零售和酒店业为目标的具有经济动机的威胁组织,擅长使用销售点(POS)恶意软件、钓鱼和数据外泄。
方法:
- 仿真 FIN7 TTP:使用含 VBA 宏执行 PowerShell 的恶意文档进行鱼叉式钓鱼
- 通过鱼叉式钓鱼一名市场员工获得初始访问;宏使用 rundll32 代理执行投放 Cobalt Strike 信标
- 使用 BloodHound 进行内部侦察,发现从被控用户到具有 POS 管理服务器访问权限的服务账户的路径
- Kerberoast 该服务账户,破解密码,横向移动到 POS 管理系统
- 演示对持卡人数据环境的数据访问,暂存模拟卡数据准备外泄
- 通过 DNS C2 信道外泄暂存数据,模拟数据窃取
- SOC 在第 47 小时检测到横向移动,但未检测到初始钓鱼、宏执行或 Kerberoasting
常见陷阱:
- 操作过于激进,立即被检测到,无法为测试蓝队高级检测能力提供价值
- 完全使用自定义工具而非真实对手更倾向的离地攻击(Living-off-the-Land)技术
- 未记录每个动作的详细时间戳,使演练后分析和检测差距映射无法完成
- 未建立备用 C2 信道,因单次检测暴露而失去访问权限且未完成目标
输出格式
## 红队演练报告 - FIN7 对手仿真
### 演练摘要
**持续时间**: 2025 年 11 月 4-22 日(15 个工作日)
**目标**: 访问持卡人数据环境并演示数据外泄能力
**结果**: 目标达成 - 红队访问了 POS 管理系统并暂存持卡人数据准备外泄
### ATT&CK 技术覆盖
| 技术 | ID | 状态 | 已检测? | MTTD |
|-----------|----|--------|-----------|------|
| 鱼叉式钓鱼附件 | T1566.001 | 已执行 | 否 | - |
| Visual Basic 宏 | T1059.005 | 已执行 | 否 | - |
| 进程注入 | T1055 | 已执行 | 否 | - |
| Kerberoasting | T1558.003 | 已执行 | 否 | - |
| 远程桌面协议 | T1021.001 | 已执行 | 是 | 47 小时 |
| 数据暂存 | T1074 | 已执行 | 否 | - |
| 通过 C2 外泄 | T1041 | 已执行 | 否 | - |
### 检测摘要
- **已执行技术**: 14
- **已检测技术**: 3 (21.4%)
- **平均检测时间**: 47 小时(针对已检测技术)
- **平均响应时间**: 4 小时(从检测到遏制)
### 优先建议
1. 部署邮件引爆沙箱,用于宏启用文档分析
2. 通过 Windows Event ID 4769 监控实施 Kerberoasting 检测
3. 增强 PowerShell 日志记录(脚本块日志记录、模块日志记录)
4. 部署内存扫描 EDR 能力,检测进程注入