$npx -y skills add killvxk/cybersecurity-skills-zh --skill analyzing-cobalt-strike-malleable-profiles使用 pyMalleableC2 解析 Cobalt Strike 可延展 C2 配置文件,提取 Beacon 配置、HTTP 通信模式以及休眠/抖动设置。结合 JARM TLS 指纹识别在网络上检测 C2 服务器。适用于调查疑似 Cobalt Strike 基础设施或为 C2 流量构建检测签名。
| 1 | # 分析 Cobalt Strike 可延展配置文件 |
| 2 | |
| 3 | ## 使用说明 |
| 4 | |
| 5 | 使用 pyMalleableC2 库解析可延展 C2 配置文件,提取失陷指标(IOC)和检测机会。结合 JARM 指纹识别来识别 C2 服务器。 |
| 6 | |
| 7 | ```python |
| 8 | from malleablec2 import Profile |
| 9 | |
| 10 | # 从文件解析可延展配置文件 |
| 11 | profile = Profile.from_file("amazon.profile") |
| 12 | |
| 13 | # 提取全局选项(休眠时间、抖动、User-Agent) |
| 14 | print(profile.ast.pretty()) |
| 15 | |
| 16 | # 获取 HTTP-GET 块的 URI 和 Headers,用于构建网络签名 |
| 17 | # 获取 HTTP-POST 块中的数据外泄模式 |
| 18 | # 对已知 C2 基础设施生成 JARM 指纹 |
| 19 | ``` |
| 20 | |
| 21 | 关键分析步骤: |
| 22 | 1. 解析可延展配置文件,提取 HTTP-GET/POST URI 模式 |
| 23 | 2. 提取 User-Agent 字符串和自定义 Headers,用于 IDS 签名 |
| 24 | 3. 识别休眠时间和抖动,用于设置 Beacon 检测阈值 |
| 25 | 4. 使用 JARM 扫描可疑 IP,与已知 C2 指纹哈希进行匹配 |
| 26 | 5. 将提取的 IOC 与网络流量日志进行交叉参考 |
| 27 | |
| 28 | ## 示例 |
| 29 | |
| 30 | ```python |
| 31 | # 解析配置文件并提取检测指标 |
| 32 | from malleablec2 import Profile |
| 33 | p = Profile.from_file("cobaltstrike.profile") |
| 34 | print(p) # 重建的源码 |
| 35 | |
| 36 | # 对可疑 C2 服务器进行 JARM 扫描 |
| 37 | import subprocess |
| 38 | result = subprocess.run( |
| 39 | ["python3", "jarm.py", "suspect-server.com"], |
| 40 | capture_output=True, text=True |
| 41 | ) |
| 42 | print(result.stdout) |
| 43 | # 将指纹与已知 CS JARM 哈希进行比对 |
| 44 | ``` |