performing-purple-team-exercise

执行紫队(Purple Team)演练,通过协调红队对抗模拟与蓝队检测验证, 使用 MITRE ATT&CK 映射的攻击场景、实时检测测试和协作差距修复。 适用于 SOC 团队需要验证检测能力、提升分析师技能并通过结构化攻防协作填补检测缺口时。

9 stars

Best use case

performing-purple-team-exercise is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

执行紫队(Purple Team)演练,通过协调红队对抗模拟与蓝队检测验证, 使用 MITRE ATT&CK 映射的攻击场景、实时检测测试和协作差距修复。 适用于 SOC 团队需要验证检测能力、提升分析师技能并通过结构化攻防协作填补检测缺口时。

Teams using performing-purple-team-exercise should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/performing-purple-team-exercise/SKILL.md --create-dirs "https://raw.githubusercontent.com/killvxk/cybersecurity-skills-zh/main/skills/performing-purple-team-exercise/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/performing-purple-team-exercise/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How performing-purple-team-exercise Compares

Feature / Agentperforming-purple-team-exerciseStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

执行紫队(Purple Team)演练,通过协调红队对抗模拟与蓝队检测验证, 使用 MITRE ATT&CK 映射的攻击场景、实时检测测试和协作差距修复。 适用于 SOC 团队需要验证检测能力、提升分析师技能并通过结构化攻防协作填补检测缺口时。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 执行紫队演练

## 适用场景

以下情况使用本技能:
- SOC 团队需要验证检测规则是否真正对目标威胁生效
- 红队评估产生了需要转化为检测改进措施的发现
- 新的检测工具或 SIEM 迁移需要验证检测覆盖范围
- 分析师培训需要以真实攻击技术和 SIEM 响应进行实战体验
- 计划中的季度或半年检测验证周期

**不适用于**未公告的红队演练——紫队演练要求攻防双方实时协作,需明确协调。

## 前置条件

- 红队能力:内部团队或外包紫队运营人员
- 攻击模拟工具:Atomic Red Team、MITRE Caldera 或 C2 框架(已授权)
- SIEM 访问权限,用于演练期间实时告警监控
- 包含预期告警名称的 ATT&CK 映射检测规则清单
- 已隔离的测试环境,或已获变更管理审批的生产范围
- 用于实时红蓝协调的通信渠道(Slack/Teams)

## 工作流程

### 步骤 1:定义演练范围与目标

记录演练参数:

```yaml
purple_team_exercise:
  exercise_id: PT-2024-Q1
  date: 2024-03-20
  duration: 8 hours (09:00-17:00 UTC)
  scope:
    environment: Production (Finance VLAN, 10.0.5.0/24)
    systems_in_scope:
      - WORKSTATION-TEST01 (10.0.5.100) — 测试终端
      - DC-TEST (10.0.5.200) — 测试域控制器
      - FILESERVER-TEST (10.0.5.201) — 测试文件服务器
    systems_excluded:
      - 所有生产域控制器
      - 面向客户的系统
  objectives:
    - 验证 15 条映射到 FIN7 TTP 的检测规则
    - 测试 SOC 分析师对真实攻击指标的响应
    - 识别凭据访问和横向移动的检测缺口
    - 测量每种技术的检测延迟
  threat_scenario: FIN7 活动,以鱼叉式网络钓鱼为目标攻击财务数据
  authorization: 已获 CISO 批准,变更申请 CR-2024-0567
  communication: #purple-team-2024q1 Slack 频道
```

### 步骤 2:构建 ATT&CK 映射测试计划

创建逐技术测试矩阵:

| # | ATT&CK ID | 技术 | 测试工具 | 预期检测 | 蓝队指标 |
|---|-----------|------|----------|----------|----------|
| 1 | T1566.001 | 鱼叉式网络钓鱼附件 | 手动邮件 | 邮件网关告警 | 检测 Y/N、延迟 |
| 2 | T1204.002 | 用户执行 | 宏文档 | Sysmon 进程创建 | 检测 Y/N、延迟 |
| 3 | T1059.001 | PowerShell | Atomic RT #1-3 | PowerShell 执行告警 | 检测 Y/N、延迟 |
| 4 | T1053.005 | 计划任务 | Atomic RT | 计划任务创建告警 | 检测 Y/N、延迟 |
| 5 | T1547.001 | 注册表运行键 | Atomic RT | 注册表修改告警 | 检测 Y/N、延迟 |
| 6 | T1003.001 | LSASS 内存 | Mimikatz | 凭据转储告警 | 检测 Y/N、延迟 |
| 7 | T1550.002 | 哈希传递 | Mimikatz | NTLM 异常检测 | 检测 Y/N、延迟 |
| 8 | T1021.002 | SMB/PsExec | PsExec | PsExec 服务创建告警 | 检测 Y/N、延迟 |
| 9 | T1047 | WMI | wmic /node | WMI 远程执行告警 | 检测 Y/N、延迟 |
| 10| T1021.001 | RDP | xfreerdp | RDP 横向移动告警 | 检测 Y/N、延迟 |
| 11| T1071.001 | Web C2 | Cobalt Strike | C2 信标检测 | 检测 Y/N、延迟 |
| 12| T1041 | C2 渗漏 | Rclone | 数据渗漏告警 | 检测 Y/N、延迟 |
| 13| T1490 | 阻止恢复 | vssadmin | 卷影副本删除告警 | 检测 Y/N、延迟 |
| 14| T1486 | 数据加密 | 测试加密工具 | 批量加密检测 | 检测 Y/N、延迟 |
| 15| T1070.001 | 清除日志 | wevtutil | 日志清除检测 | 检测 Y/N、延迟 |

### 步骤 3:执行红队技术

使用 Atomic Red Team(或手动执行)逐一运行每种技术:

```powershell
# 安装 Atomic Red Team
IEX (IWR 'https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/install-atomicredteam.ps1' -UseBasicParsing)
Install-AtomicRedTeam -getAtomics

# 测试 1:T1059.001 — PowerShell 执行
Write-Host "[$(Get-Date -Format 'HH:mm:ss')] Executing T1059.001 - PowerShell"
Invoke-AtomicTest T1059.001 -TestNumbers 1
# 通知蓝队:"T1059.001 于 $(Get-Date) 已执行"

# 测试 2:T1053.005 — 计划任务创建
Write-Host "[$(Get-Date -Format 'HH:mm:ss')] Executing T1053.005 - Scheduled Task"
Invoke-AtomicTest T1053.005 -TestNumbers 1

# 测试 3:T1547.001 — 注册表运行键
Write-Host "[$(Get-Date -Format 'HH:mm:ss')] Executing T1547.001 - Registry Persistence"
Invoke-AtomicTest T1547.001 -TestNumbers 1,2

# 测试 4:T1003.001 — 凭据转储
Write-Host "[$(Get-Date -Format 'HH:mm:ss')] Executing T1003.001 - LSASS Access"
Invoke-AtomicTest T1003.001 -TestNumbers 1,2

# 测试 5:T1490 — 卷影副本删除
Write-Host "[$(Get-Date -Format 'HH:mm:ss')] Executing T1490 - Inhibit Recovery"
Invoke-AtomicTest T1490 -TestNumbers 1

# 每次测试后清理
Invoke-AtomicTest T1059.001 -TestNumbers 1 -Cleanup
Invoke-AtomicTest T1053.005 -TestNumbers 1 -Cleanup
Invoke-AtomicTest T1547.001 -TestNumbers 1,2 -Cleanup
```

### 步骤 4:实时监控蓝队检测

蓝队在执行期间实时监控 SIEM:

```spl
--- 紫队实时监控仪表板
index=notable earliest=-1h
| where Computer IN ("WORKSTATION-TEST01", "DC-TEST", "FILESERVER-TEST")
  OR src IN ("10.0.5.100", "10.0.5.200", "10.0.5.201")
| eval detection_latency = _time - orig_time
| eval latency_seconds = round(detection_latency, 0)
| sort _time
| table _time, rule_name, urgency, src, dest, user, latency_seconds

--- 检查特定技术检测
index=sysmon Computer="WORKSTATION-TEST01" earliest=-15m
(EventCode=1 OR EventCode=3 OR EventCode=10 OR EventCode=11 OR EventCode=13)
| sort _time
| table _time, EventCode, Image, CommandLine, TargetFilename, TargetObject
```

实时记录结果:

```python
exercise_results = {
    "exercise_id": "PT-2024-Q1",
    "results": [
        {
            "technique": "T1059.001",
            "name": "PowerShell Execution",
            "execution_time": "09:15:00",
            "detected": True,
            "alert_name": "Suspicious PowerShell Encoded Command",
            "detection_time": "09:15:47",
            "latency_seconds": 47,
            "notes": "通过 Sysmon EventCode 1 的编码命令模式检测到"
        },
        {
            "technique": "T1003.001",
            "name": "LSASS Memory Access",
            "execution_time": "10:30:00",
            "detected": False,
            "alert_name": None,
            "detection_time": None,
            "latency_seconds": None,
            "notes": "缺口:无 LSASS 访问检测规则。Sysmon EventCode 10 存在但无关联规则。"
        }
    ]
}
```

### 步骤 5:协作差距修复

针对每个检测缺口,蓝队立即构建检测规则:

```spl
--- 缺口:T1003.001 — 无 LSASS 访问检测
--- 演练期间构建规则
index=sysmon EventCode=10 TargetImage="*\\lsass.exe"
 GrantedAccess IN ("0x1010", "0x1038", "0x1fffff", "0x40")
NOT SourceImage IN ("*\\svchost.exe", "*\\csrss.exe", "*\\MsMpEng.exe")
| stats count by Computer, SourceImage, SourceUser, GrantedAccess
| where count > 0
```

构建完成后重新测试:
```
红队:"在 11:45 重新执行 T1003.001"
蓝队:"已确认——告警 'LSASS Memory Access Detected' 于 11:45:32 触发(延迟 32 秒)"
结果:缺口已修复
```

### 步骤 6:生成演练报告

```python
def generate_purple_team_report(results):
    total = len(results["results"])
    detected = sum(1 for r in results["results"] if r["detected"])
    gaps = sum(1 for r in results["results"] if not r["detected"])
    avg_latency = sum(r["latency_seconds"] for r in results["results"]
                      if r["latency_seconds"]) / max(detected, 1)

    report = f"""
紫队演练报告 — {results['exercise_id']}
{'=' * 60}

摘要:
  已测试技术数:     {total}
  已检测:          {detected} ({detected/total*100:.0f}%)
  发现缺口:        {gaps} ({gaps/total*100:.0f}%)
  平均检测延迟:    {avg_latency:.0f} 秒

详细结果:
"""
    for r in results["results"]:
        status = "已检测" if r["detected"] else "缺口"
        latency = f"{r['latency_seconds']}s" if r["latency_seconds"] else "N/A"
        report += f"  [{status}] {r['technique']} — {r['name']} (延迟:{latency})\n"
        if not r["detected"]:
            report += f"          处置措施:{r['notes']}\n"

    return report
```

## 核心概念

| 术语 | 定义 |
|------|------|
| **紫队(Purple Team)** | 红队(攻击)与蓝队(防御)协作配合,共同验证和改进检测能力的演练模式 |
| **对抗模拟(Adversary Emulation)** | 结构化模拟特定威胁行为者的 TTP,用于测试防御能力 |
| **检测验证(Detection Validation)** | 确认检测规则在目标技术执行时能正确触发的过程 |
| **检测延迟(Detection Latency)** | 技术执行与 SIEM 告警生成之间的时间差,在紫队演练中进行测量 |
| **缺口修复(Gap Remediation)** | 针对测试中未被检测到的技术立即创建或调整检测规则 |
| **Atomic Red Team** | Red Canary 发布的开源攻击测试库,用于对单个 ATT&CK 技术进行逐一验证 |

## 工具与系统

- **Atomic Red Team**:Red Canary 出品的开源攻击测试库,支持逐技术验证
- **MITRE Caldera**:支持 ATT&CK 映射攻击链的自动化对抗模拟平台
- **Vectr**:紫队管理平台,用于追踪演练结果和检测覆盖度改进
- **Prelude Operator**:支持自动化多步骤攻击场景的对抗模拟工具
- **AttackIQ**:持续检测验证的入侵与攻击模拟(BAS)平台

## 常见场景

- **季度验证**:针对 ATT&CK 技术测试前 20 条检测规则,确保持续有效性
- **新工具验证**:部署新 EDR 后,对基线技术验证检测覆盖范围
- **分析师培训**:初级分析师在专家指导下实时观察真实攻击并进行 SIEM 调查
- **事后验证**:真实事件发生后,模拟攻击链以验证检测改进效果
- **合规证明**:记录检测验证结果,用于 SOC 2、ISO 27001 或 PCI DSS 审计

## 输出格式

```
紫队演练报告 — PT-2024-Q1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
日期:         2024-03-20(09:00-17:00 UTC)
场景:         FIN7 金融行业活动
范围:         Finance VLAN(10.0.5.0/24)

结果:
  已测试技术数:     15
  已检测:           11(73%)
  发现缺口:         4(27%)
  当日修复缺口数:   3
  平均检测延迟:     38 秒

详细结果:
  [通过]  T1566.001 鱼叉式网络钓鱼附件   — 12 秒延迟
  [通过]  T1204.002 用户执行(宏)        — 8 秒延迟
  [通过]  T1059.001 PowerShell 执行       — 47 秒延迟
  [通过]  T1053.005 计划任务              — 23 秒延迟
  [通过]  T1547.001 注册表运行键          — 31 秒延迟
  [失败]  T1003.001 LSASS 内存访问        — 演练中已修复
  [失败]  T1550.002 哈希传递              — 演练中已修复
  [通过]  T1021.002 PsExec               — 15 秒延迟
  [通过]  T1047 WMI 远程执行             — 42 秒延迟
  [通过]  T1021.001 RDP 横向移动         — 28 秒延迟
  [失败]  T1071.001 Web C2 信标          — 演练中已修复
  [通过]  T1041 C2 渗漏                  — 67 秒延迟
  [通过]  T1490 卷影副本删除             — 5 秒延迟
  [失败]  T1486 影响性数据加密           — 未修复——需增强终端遥测
  [通过]  T1070.001 事件日志清除         — 11 秒延迟

演练后覆盖率:93%(14/15)——较初始 73% 提升
待修复缺口:T1486 需要增强 EDR 文件监控能力
```

Related Skills

performing-yara-rule-development-for-detection

9
from killvxk/cybersecurity-skills-zh

通过识别可执行文件中的唯一字节模式、字符串和行为指标,开发精准的 YARA 恶意软件检测规则,同时将误报率降至最低。

performing-wireless-security-assessment-with-kismet

9
from killvxk/cybersecurity-skills-zh

使用 Kismet 通过被动射频监控进行无线网络安全评估,检测流氓接入点(Rogue AP)、隐藏 SSID、弱加密和未授权客户端。

performing-wireless-network-penetration-test

9
from killvxk/cybersecurity-skills-zh

执行无线网络渗透测试,通过捕获握手包、破解 WPA2/WPA3 密钥、检测流氓接入点以及使用 Aircrack-ng 和相关工具测试无线网络分段,评估 WiFi 安全性。

performing-windows-artifact-analysis-with-eric-zimmerman-tools

9
from killvxk/cybersecurity-skills-zh

使用 Eric Zimmerman 的开源 EZ Tools 套件(包括 KAPE、MFTECmd、PECmd、LECmd、JLECmd 和 Timeline Explorer)执行全面的 Windows 取证制品分析,解析注册表 hive、预取文件、事件日志和文件系统元数据。

performing-wifi-password-cracking-with-aircrack

9
from killvxk/cybersecurity-skills-zh

在授权无线安全评估中捕获 WPA/WPA2 握手包,并使用 aircrack-ng、hashcat 和字典攻击进行离线密码破解, 以评估密码短语强度和无线网络安全状况。

performing-web-cache-poisoning-attack

9
from killvxk/cybersecurity-skills-zh

在授权安全测试期间,通过未纳入缓存键的头部和参数毒化缓存响应,利用 Web 缓存机制向其他用户投递恶意内容。

performing-web-cache-deception-attack

9
from killvxk/cybersecurity-skills-zh

通过利用 CDN 缓存层与源服务器之间的路径规范化差异,执行 Web 缓存欺骗攻击,从而缓存并获取敏感的已认证内容。

performing-web-application-vulnerability-triage

9
from killvxk/cybersecurity-skills-zh

使用 OWASP 风险评级方法论对 DAST/SAST 扫描器的 Web 应用程序漏洞发现进行分类,区分真阳性和假阳性,并确定修复优先级。

performing-web-application-scanning-with-nikto

9
from killvxk/cybersecurity-skills-zh

Nikto 是一款开源 Web 服务器和 Web 应用程序扫描器,可针对超过 7,000 个潜在危险文件/程序进行测试,检查超过 1,250 个服务器的过期版本,并识别超过 270 个服务器的版本特定问题。

performing-web-application-penetration-test

9
from killvxk/cybersecurity-skills-zh

遵循 OWASP Web 安全测试指南(WSTG)方法论,对 Web 应用程序执行系统化安全测试,识别认证、授权、 输入验证、会话管理和业务逻辑中的漏洞。测试人员以 Burp Suite 作为主要拦截代理,结合手动测试技术 发现自动化扫描器遗漏的缺陷。适用于 Web 应用渗透测试、OWASP 测试、应用安全评估或 Web 漏洞测试等请求场景。

performing-web-application-firewall-bypass

9
from killvxk/cybersecurity-skills-zh

使用编码技术、HTTP 方法操控、参数污染和载荷混淆绕过 Web 应用防火墙保护,将 SQL 注入、XSS 及其他攻击载荷穿透 WAF 检测规则。

performing-vulnerability-scanning-with-nessus

9
from killvxk/cybersecurity-skills-zh

使用 Tenable Nessus 执行认证和未认证漏洞扫描,识别网络基础设施、服务器和应用程序中的已知漏洞、 错误配置、默认凭据和缺失补丁。扫描器将发现与 CVE 数据库和 CVSS 评分关联,生成优先级修复指导。 适用于漏洞扫描、Nessus 评估、补丁合规检查或自动化漏洞检测等请求场景。