Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CAPEv2 — 恶意软件配置与有效载荷提取 | Kitploit
工具/GitHubGitHub/kevoreilly/capev2
动态分析 (沙盒)内存取证漏洞分析网络取证逆向工程调试器取证分析恶意软件分析学习与教育恶意软件分析 分类第 20 名
3.4k597952小时25分前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
kevoreilly/capev2

CAPEv2

恶意软件配置与有效载荷提取

查看仓库网站

CAPE:恶意软件配置与载荷提取 - 文档

CAPE 是一个恶意软件沙箱。

沙箱用于在隔离环境中执行恶意文件, 同时对其动态行为进行插桩并收集取证痕迹。

CAPE 源自 Cuckoo v1,在 Windows 平台上具有以下核心能力:

  • 基于 API hooking 的行为插桩
  • 捕获执行期间创建、修改和删除的文件
  • 以 PCAP 格式捕获网络流量
  • 基于行为签名和网络签名进行恶意软件分类
  • 在恶意软件执行期间截取桌面截图
  • 目标系统的完整内存转储

CAPE 在 Cuckoo 传统沙箱输出的基础上补充了若干关键功能:

  • 自动化动态恶意软件脱壳
  • 基于脱壳后载荷的 YARA 签名进行恶意软件分类
  • 静态与动态恶意软件配置提取
  • 可通过 YARA 签名编程的自动化调试器,支持:
    • 自定义脱壳/配置提取器
    • 动态反沙箱对抗措施
    • 指令跟踪
  • 交互式桌面

有一个任何人都可以使用的免费在线演示实例:

https://capesandbox.com - 如需激活账户请联系 https://twitter.com/capesandbox

一些历史

Cuckoo Sandbox 于 2010 年作为 The Honeynet Project 内的 Google Summer of Code 项目启动。 它最初由 Claudio Guarnieri 设计和开发,第一个 beta 版本于 2011 年发布。2014 年 1 月, Cuckoo v1.0 发布。

2015 年是关键的一年,Cuckoo 的历史出现了重大分叉。 原始 monitor 和 API hooking 方法的开发在主 Cuckoo 项目中停止。 它被一个替代 monitor 取代, 该 monitor 使用基于 restructuredText 的签名格式,通过 Linux 工具链编译, 由 Jurriaan Bremer 创建。

大约在同一时间,一个名为 Cuckoo-modified 的分叉由 Brad 'Spender' Spengler 创建,继续开发原始 monitor, 并带来了重大改进,包括 64 位支持,以及重要的是引入了 Microsoft 的 Visual Studio 编译器。

同年,在 Context Information Security,Kevin O'Reilly 开始开发一个名为 CAPE 的动态命令行配置与载荷 提取工具。 该名称是 'Config And Payload Extraction' 的首字母缩写,最初的研究重点是利用 Microsoft Detours 库提供的 API hook 来捕获脱壳后的恶意软件载荷和配置。然而,人们逐渐发现, 仅靠 API hook 无法提供足够的能力和精度,来从任意恶意软件中脱壳载荷或配置。

因此,研究开始转向一种新颖的调试器概念,以便在避免使用 Microsoft 调试接口的同时, 对恶意软件进行精确控制和插桩,从而尽可能隐蔽。该调试器被集成到基于 Detours 的概念验证命令行工具中, 与 API hook 相结合,产生了非常强大的能力。

当初步工作表明可以用 Cuckoo-modified 的 API hooking 引擎 替换 Microsoft Detours 时,CAPE Sandbox 的想法诞生了。随着调试器、自动化脱壳、 基于 YARA 的分类和集成配置提取的加入,2016 年 9 月在 44con 上,CAPE Sandbox 首次 公开发布:CAPE 版本 1。

2018 年夏天,该项目有幸迎来了 Andriy 'doomedraven' Brukhovetskyy 开始做出巨大 贡献,他是一位长期的 Cuckoo 贡献者。2019 年,他开始了将 CAPE 移植到 Python 3 的 艰巨任务,并于当年 10 月发布了 CAPEv2。

CAPE 一直在持续开发和改进,以跟上恶意软件和操作系统能力的进步。 2021 年,新增了在引爆期间通过动态 YARA 扫描对 CAPE 调试器进行编程的能力, 从而可以为反沙箱技术创建动态绕过。Windows 10 成为默认操作系统,其他重要新增功能包括交互式桌面、 AMSI(反恶意软件扫描接口)载荷捕获、基于 Microsoft Nirvana 的 'syscall hooking', 以及基于调试器的直接/间接系统调用对抗措施。

2024 年,enzok 创建了 CAPEsolo,这是 CAPE 的交互式 Windows 桌面版本, 使用 wxPython 作为图形界面,并引入了 64 位客户机 Python 兼容性。 2026 年,新增了对所有 Windows 10 版本和 Windows 11 23H2 的支持。

分类

image

在 CAPE 中可以通过三种机制对恶意软件进行分类:

  • 对脱壳后载荷进行 YARA 扫描
  • 对网络捕获进行 Suricata 扫描
  • 对 API hook 输出进行行为签名扫描

配置提取

image

解析可以使用 CAPE 自己的框架完成,或者支持以下框架:RATDecoders、DC3-MWCP、MalDuck,或 MaCo

CAPE-parsers

CAPE 的核心和社区配置解析器维护在单独的 CAPE-parsers 仓库中,并作为 CAPE-parsers 依赖安装。请在那里提交对这些解析器的新增和修复; 其 README 描述了预期的配置字段。

关于配置解析框架的特别说明:

  • 由于恶意软件的性质,每当发布新版本时它都会不断变化,某些东西可能会失效!
  • 我们建议使用 CAPE 的框架,它只是纯 Python,入口点为 def extract_config(data):,将由 cape_utils.py 调用,零复杂性。
    • 额外好处是,你可以在其他项目中复用你的提取器。

自动化脱壳

image

CAPE 利用许多恶意软件技术或行为来捕获脱壳后的载荷:

  • 进程注入
    • Shellcode 注入
    • DLL 注入
    • 进程镂空(Process Hollowing)
    • 进程分身(Process Doppelganging)
  • 在内存中提取或解压可执行模块或 shellcode

这些行为将导致捕获被注入、提取或解压的载荷,以供进一步分析。此外,CAPE 会自动为每个进程创建进程转储,或者,对于 DLL,则创建该 DLL 在内存中的模块映像。这对于使用简单加壳器打包的样本很有用,因为模块映像转储通常已完全脱壳。

除了 CAPE 默认的“被动”脱壳机制外,还可以启用“主动”脱壳,它使用断点来检测对新分配或受保护内存区域的写入,以便在执行前尽早捕获脱壳后的载荷。这可以通过 Web 提交复选框启用,或通过指定选项 unpacker=2 启用,默认关闭,因为它可能影响引爆质量。

CAPE 可以通过 YARA 签名进行编程,以脱壳特定的加壳器。例如,UPX 类型加壳器非常常见,尽管在 CAPE 中它们会导致脱壳后的载荷被被动捕获,但默认捕获是在脱壳后的载荷已经开始执行之后进行的。因此,通过自定义 YARA 签名动态检测 UPX 派生的加壳器,并在最终加壳器指令处设置断点,就可以在载荷开始执行之前在其原始入口点(OEP)捕获载荷。

image

image

dump-on-api 选项允许在模块调用特定 API 函数时转储该模块,该 API 函数可以在 Web 界面中指定(例如 dump-on-api=DnsQuery_A)。

调试器

调试器使 CAPE 能够继续超越其原始能力发展,现在包括动态反规避绕过。由于现代恶意软件通常试图逃避沙箱内的分析,例如通过使用虚拟化计时陷阱或 API hook 检测,CAPE 允许开发动态对抗措施,将调试器操作与 Yara 签名相结合,以在规避性恶意软件引爆时检测它,并执行控制流操纵,以强制样本完全引爆或跳过规避行为。

image image

通过提交选项 bp0 到 bp3 可以快速访问调试器,这些选项接受 RVA 或 VA 值来设置断点,随后将输出一段简短的指令跟踪,由 count 和 depth 选项控制(例如 bp0=0x1234,depth=1,count=100)。 image

要在模块入口点设置断点,使用 ep 代替地址(例如 bp0=ep)。或者 break-on-return 允许在已 hook API 的返回地址处设置断点(例如 break-on-return=NtGetContextThread)。可选的 base-on-api 参数允许通过 API 调用设置 RVA 断点的映像基址(例如 base-on-api=NtReadFile,bp0=0x2345)。

image

选项 action0 - action3 允许在命中断点时执行操作,例如转储内存区域(例如 action0=dumpebx)或更改执行控制流(例如 action1=skip)。CAPE 的文档包含此类操作的更多示例。

capemon

包含 CAPE monitor 代码的仓库是独立的。

更新摘要 changelog

社区贡献

有一个签名社区仓库,包含由 CAPE 社区开发的数百个签名。所有新的社区功能都应推送到该仓库。之后,如果开发者有能力并愿意维护它们,可以将其移至核心。

请通过帮助为更多恶意软件家族创建新签名、解析器或绕过来为该项目做出贡献。目前有许多正在进行中,敬请关注。

非常感谢 @D00m3dR4v3n 独自将 CAPE 移植到 Python 3。

安装建议和脚本以实现最佳性能

  • Python3

    • agent.py 已使用 python (3.7.2|3.8) x86 测试。你应该在 VM 内使用 x86 python 版本!
    • host 已使用 python3 版本 3.10、3.12 测试,但更新的版本也应该可以工作
  • 只有 rooter 应以 root 身份执行,其余以 cape 用户身份执行。以 root 运行会搞乱权限。

  1. 熟悉文档 并 __务必阅读 conf 文件夹内的所有__配置文件!
  2. 为获得最佳兼容性,我们强烈建议安装在 Ubuntu 24.04 LTS 上,并使用 Windows 10 或 Windows 11 23H2 作为目标。
  3. kvm-qemu.sh 和 cape2.sh __应该__从 tmux 会话中执行,以防止 ssh 连接中断时出现任何操作系统问题。
  4. 推荐使用 KVM 作为 hypervisor。
  • 将 <username> 替换为真实模式。
  • 你需要替换其中所有的 <WOOT>!
  • 阅读它!你必须理解它做什么!它在脚本头部有配置。
  • sudo ./kvm-qemu.sh all <username> 2>&1 | tee kvm-qemu.log
  1. 要安装 CAPE 本身,使用 cape2.sh 并启用所有优化
    • 阅读并理解它做什么!这不是解决你所有问题的银弹!它在脚本头部有配置。
    • sudo ./cape2.sh base 2>&1 | tee cape.log
  2. 安装完所有内容后,将两个安装日志保存为黄金记录!
  3. 通过修改 conf 文件夹内的配置文件来配置 CAPE。
  4. 重启所有 CAPE 服务以应用配置更改并正确运行 CAPE!
    • CAPE 服务
      • cape.service
      • cape-processor.service
      • cape-web.service
      • cape-rooter.service
      • 要重启任何服务,使用 systemctl restart <service_name>
      • 要查看服务日志,使用 journalctl -u <service_name>
    • 要调试任何问题,停止相关服务并手动运行启动该服务的命令以查看更多日志。检查 -h 获取帮助菜单。以调试模式(-d)运行服务也会有所帮助。
  5. 重启并享受!
  • 所有脚本都包含 help -h,但请检查脚本以 理解 它们在做什么。

如何使用 virt-manager 创建 VM,请参阅文档进行配置

  • 分步指南

虚拟机核心依赖

  • choco.bat

如何更新

  • CAPE:git pull
  • community:python3 utils/community.py -waf,请先查看 -h 以确保你理解

如何升级,同时保留大量无法公开的自定义小修改?

下载工具