用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/killvxk/cybersecurity-skills-zh --skill performing-automated-malware-analysis-with-cape命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | performing-automated-malware-analysis-with-cape |
| description | 部署和操作 CAPEv2 沙箱,进行自动化恶意软件分析,具备行为监控、载荷提取、配置解析和反规避能力。 |
| domain | cybersecurity |
| subdomain | malware-analysis |
| tags | ["cape","sandbox","automated-analysis","malware-analysis","behavioral-analysis","payload-extraction","cuckoo"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
CAPE(Config And Payload Extraction,配置与载荷提取)是一款从 Cuckoo 派生的开源恶意软件沙箱,可自动化执行行为分析、载荷转储和配置提取。CAPEv2 具备用于行为插桩的 API 钩挂功能,可捕获执行过程中创建/修改/删除的文件,以 PCAP 格式记录网络流量,并包含 70+ 个针对 Emotet、TrickBot、Cobalt Strike、AsyncRAT 和 Rhadamanthys 等家族的自定义配置提取器(cape-parsers)。签名系统包含 1000+ 个行为签名,可检测规避技术、持久化、凭据窃取和勒索软件行为。CAPE 的调试器支持通过在 YARA 签名中组合调试器操作来动态绕过反规避机制。推荐部署方式:Ubuntu LTS 宿主机 + Windows 10 21H2 客户机虚拟机。
#!/usr/bin/env python3
"""用于自动化恶意软件提交和分析的 CAPE 沙箱 API 客户端。"""
import requests
import json
import time
import sys
from pathlib import Path
class CAPEClient:
def __init__(self, base_url="http://localhost:8000", api_token=None):
self.base_url = base_url.rstrip("/")
self.headers = {}
if api_token:
self.headers["Authorization"] = f"Token {api_token}"
def submit_file(self, filepath, options=None):
"""提交文件进行分析。"""
url = f"{self.base_url}/apiv2/tasks/create/file/"
files = {"file": open(filepath, "rb")}
data = options or {}
data.setdefault("timeout", 120)
data.setdefault("enforce_timeout", False)
resp = requests.post(url, files=files, data=data, headers=self.headers)
resp.raise_for_status()
result = resp.json()
task_id = result.get("data", {}).get("task_ids", [None])[0]
print(f"[+] 已提交 {filepath} -> 任务 ID:")
task_id
():
url =
resp = requests.get(url, headers=.headers)
resp.json().get(, )
():
elapsed =
elapsed < max_wait:
status = .get_status(task_id)
status == :
()
time.sleep(poll_interval)
elapsed += poll_interval
()
():
url =
resp = requests.get(url, headers=.headers)
resp.json()
():
report = .get_report(task_id)
configs = report.get(, {}).get(, [])
configs
():
report = .get_report(task_id)
report.get(, [])
():
report = .get_report(task_id)
network = report.get(, {})
iocs = {
: [d.get() d network.get(, [])],
: [h.get() h network.get(, [])],
: [
h network.get(, [])],
}
iocs
():
task_id = .submit_file(filepath)
task_id:
.wait_for_completion(task_id):
report = {
: task_id,
: .get_config(task_id),
: .get_network_iocs(task_id),
: (.get_dropped_files(task_id)),
}
report
__name__ == :
(sys.argv) < :
()
sys.exit()
url = sys.argv[] (sys.argv) >
client = CAPEClient(url)
result = client.analyze_sample(sys.argv[])
result:
(json.dumps(result, indent=))