文章总结: 本文介绍利用Cape沙箱进行恶意软件动态分析及批量提取API特征的方法。文章讲解Cape沙箱配置与单样本分析,重点演示通过Python脚本submit.py实现批量样本的自动化提交。涵盖批量分析参数设置、结果存储结构及动态API调用序列提取,为恶意代码检测提供了可操作的实践指南。 综合评分: 85 文章分类: 恶意软件,安全工具,实战经验

Signatures信息如下所示:
Dropped Files信息如下:
恶意软件包含的文件信息如下:
提取的API信息如下图所示:
report.pdf
report.pdf包含静态分析的API信息以及动态行为API信息,如下图所示:
- 静态API特征
- 动态API特征
动态行为特征具有时间先后顺序,可以进一步供大家做恶意软件分析。
{ "timestamp": "2023-03-26 13:40:51,897", "thread_id": "2180", "caller": "0x004cd32d", "parentcaller": "0x004e5bb9", "category": "registry", "api": "RegOpenKeyExW", "status": false, "return": "0x00000002", "arguments": [ { "name": "Registry", "value": "0x80000002", "pretty_value": "HKEY_LOCAL_MACHINE" }, { "name": "SubKey", "value": "SYSTEM\\CurrentControlSet\\Control\\MediaResources\\msvideo" }, { "name": "Handle", "value": "0x00000000" }, { "name": "FullName", "value": "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\MediaResources\\msvideo" } ], "repeated": 0, "id": 303},
3.Submit an Analysis
最后补充官方网站对批量分析的submit.py描述。
- https://capev2.readthedocs.io/en/latest/usage/submit.html
其运行参数如下:
usage: submit.py [-h] [--remote REMOTE] [--url] [--package PACKAGE] [--custom CUSTOM] [--timeout TIMEOUT] [--options OPTIONS] [--priority PRIORITY] [--machine MACHINE] [--platform PLATFORM] [--memory] [--enforce-timeout] [--clock CLOCK] [--tags TAGS] [--max MAX] [--pattern PATTERN] [--shuffle] [--unique] [--quiet] target
positional arguments: target URL, path to the file or folder to analyze
optional arguments: -h, --help show this help message and exit --remote REMOTE Specify IP:port to a CAPE API server to submit remotely --url Specify whether the target is an URL --package PACKAGE Specify an analysis package --custom CUSTOM Specify any custom value --timeout TIMEOUT Specify an analysis timeout --options OPTIONS Specify options for the analysis package (e.g. "name=value,name2=value2") --priority PRIORITY Specify a priority for the analysis represented by an integer --machine MACHINE Specify the identifier of a machine you want to use --platform PLATFORM Specify the operating system platform you want to use (windows/darwin/linux) --memory Enable to take a memory dump of the analysis machine --enforce-timeout Enable to force the analysis to run for the full timeout period --clock CLOCK Set virtual machine clock --tags TAGS Specify tags identifier of a machine you want to use --max MAX Maximum samples to add in a row --pattern PATTERN Pattern of files to submit --shuffle Shuffle samples before submitting them --unique Only submit new samples, ignore duplicates --quiet Only print text on failure
如果指定一个目录作为目标路径,则该目录中包含的所有文件将被提交以供分析。
常见的命令提交方式
(1) Submit a local binary
$ ./utils/submit.py /path/to/binary
(2) Submit an URL
$ ./utils/submit.py --url http://www.example.com
(3) Submit a local binary and specify a higher priority
$ ./utils/submit.py --priority 5 /path/to/binary
(4) Submit a local binary and specify a custom analysis timeout of 60 seconds
$ ./utils/submit.py --timeout 60 /path/to/binary
(5) Submit a local binary and specify a custom analysis package
$ ./utils/submit.py --package <name of package> /path/to/binary
(6) Submit a local binary and specify a custom analysis package and some options (in this case a command line argument for the malware)
$ ./utils/submit.py --package exe --options arguments=--dosomething /path/to/binary.exe
(7) Submit a local binary to be run on the virtual machine cape1
$ ./utils/submit.py --machine cape1 /path/to/binary
(8) Submit a local binary to be run on a Windows machine
$ ./utils/submit.py --platform windows /path/to/binary
(9) Submit a local binary and take a full memory dump of the analysis machine once the analysis is complete
$ ./utils/submit.py --memory /path/to/binary
(10) Submit a local binary and force the analysis to be executed for the full timeout (disregarding the internal mechanism that CAPE uses to decide when to terminate the analysis)
$ ./utils/submit.py --enforce-timeout /path/to/binary
(11) Submit a local binary and set the virtual machine clock. The format is %m-%d-%Y %H:%M:%S. If not specified, the current time is used. For example, if we want to run a sample on January 24th, 2001, at 14:41:20:
$ ./utils/submit.py --clock "01-24-2001 14:41:20" /path/to/binary
(12) Submit a sample for Volatility analysis (to reduce side effects of the CAPE hooking, switch it off with options free=True):
$ ./utils/submit.py --memory --options free=True /path/to/binary
其它参数如下图所示:
4.Python Functions
为跟踪提交、示例和总体执行情况,CAPE使用了一种流行的Python ORM,称为SQLAlchemy,它允许您使用PostgreSQL、SQLite、MySQL和其他几个SQL数据库系统来制作沙盒。
CAPE被设计为易于集成到更大的解决方案中并完全自动化。为自动化分析提交,我们建议使用REST API中描述的REST API接口,但如果您想编写Python提交脚本,您也可以使用add_path()和add_url()函数。
示例如下:
>>> from lib.cuckoo.core.database import Database>>> db = Database()>>> db.add_path("/tmp/malware.exe")1>>>
示例如下:
>>> from lib.cuckoo.core.database import Database>>> db = Database()>>> db.add_url("http://www.cuckoosandbox.org")2>>>
五.总结
写到这里这篇文章就结束,希望对您有所帮助。忙碌的三月,真的很忙,项目本子论文毕业,等忙完后好好写几篇安全博客,感谢支持和陪伴,尤其是家人的鼓励和支持, 继续加油!
2023年3月20日,终于完成初稿,凌晨迫不及待来写一篇博客,纪念下,感恩下!娜璋白首。
- 一.恶意软件分析 1.静态特征 2.动态特征
- 二.Cuckoo和Cape沙箱简介 1.Cuckoo沙箱简介 2.Cape沙箱简介 3.Cape原理
- 三.Cape沙箱识别单样本特征 1.启动沙箱关键步骤 2.样本分析
- 四.Cape沙箱批量分析恶意软件 1.Python脚本批量分析样本 2.运行结果 3.Submit an Analysis 4.Python Functions
- 五.总结
提问:
- 在真实样本中,恶意软件会被加壳和混淆处理,常用脱壳工具为Unipack。那么,大家可以思考下,CAPA提取的API特征都是恶意软件中均执行的吗?同时,这些关键特征是否都被提取呢?
- 请大家思考静态特征和动态特征各自的优缺点。
- CAPE沙箱如何实现批量提取,同时如何定制化规则呢?
- CAPE沙箱如何捕获的API特征,通过HOOK机制吗?还有哪些可以优化的地方呢?
- CAPE沙箱究竟能检测逃逸性、高隐蔽的恶意软件吗?尤其APT攻击的样本。
- 如何撰写代码提取Json中所需特征,比如常见的API。
- CAPA是经典的静态特征提取工具,那么如何提取动态特征呢?动态特征在恶意软件检测中又扮演什么角色?
- 个人感觉静态分析和动态分析是很多年都在研究的内容,目前会与深度学习结合。那么,未来的方法将如何创新呢?怎么更好地自动化识别恶意软件行为,并且批量识别且更少依赖专家知识。
三月应该是今年最忙碌的一个月了,好多事情。希望一切顺利,更希望四月后能沉下心来读论文和写论文,继续加油,只争朝夕。
感谢大家的支持和关注。继续加油!感恩,娜璋白首。
(By:Eastmount 2023-03-26 夜于火星)
参考文章如下,感谢这些大佬。
- [1] https://github.com/cuckoosandbox/cuckoo
- [2] https://github.com/kevoreilly/CAPEv2
- [3] https://capesandbox.com
- [4] https://capev2.readthedocs.io/en/latest/
- [5] https://capev2.readthedocs.io/en/latest/usage/submit.html
- [6] Cuckoo变种-CAPE简介 – Threathunter
前文回顾(下面的超链接可以点击喔):
- [系统安全] 一.什么是逆向分析、逆向分析应用及经典扫雷游戏逆向
- [系统安全] 二.如何学好逆向分析及吕布传游戏逆向案例
- [系统安全] 三.IDA Pro反汇编工具初识及逆向工程解密实战
- [系统安全] 四.OllyDbg动态分析工具基础用法及Crakeme逆向破解
- [系统安全] 五.OllyDbg和Cheat Engine工具逆向分析植物大战僵尸游戏
- [系统安全] 六.逆向分析之条件语句和循环语句源码还原及流程控制
- [系统安全] 七.逆向分析之PE病毒原理、C++实现文件加解密及OllyDbg逆向
- [系统安全] 八.Windows漏洞利用之CVE-2019-0708复现及蓝屏攻击
- [系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度提权
- [系统安全] 十.Windows漏洞利用之SMBv3服务远程代码执行漏洞(CVE-2020-0796)复现
- [系统安全] 十一.那些年的熊猫烧香及PE病毒行为机理分析
- [系统安全] 十二.熊猫烧香病毒IDA和OD逆向分析(上)病毒初始化
- [系统安全] 十三.熊猫烧香病毒IDA和OD逆向分析(中)病毒释放机理
- [系统安全] 十四.熊猫烧香病毒IDA和OD逆向分析(下)病毒感染配置
- [系统安全] 十五.Chrome密码保存功能渗透解析、Chrome蓝屏漏洞及音乐软件漏洞复现
- [系统安全] 十六.PE文件逆向基础知识(PE解析、PE编辑工具和PE修改)
- [系统安全] 十七.Windows PE病毒概念、分类及感染方式详解
- [系统安全] 十八.病毒攻防机理及WinRAR恶意劫持漏洞(bat病毒、自启动、蓝屏攻击)
- [系统安全] 十九.宏病毒之入门基础、防御措施、自发邮件及APT28宏样本分析
- [系统安全] 二十.PE数字签名之(上)什么是数字签名及Signtool签名工具详解
- [系统安全] 二十一.PE数字签名之(中)Signcode、PEView、010Editor、Asn1View工具用法
- [系统安全] 二十二.PE数字签名之(下)微软证书漏洞CVE-2020-0601复现及Windows验证机制分析
- [系统安全] 二十三.逆向分析之OllyDbg动态调试复习及TraceMe案例分析
- [系统安全] 二十四.逆向分析之OllyDbg调试INT3断点、反调试、硬件断点与内存断点
- [系统安全] 二十五.WannaCry勒索病毒分析 (1)Python复现永恒之蓝漏洞实现勒索加密
- [系统安全] 二十六.WannaCry勒索病毒分析 (2)MS17-010漏洞利用及解析
- [系统安全] 二十七.WannaCry勒索病毒分析 (3)蠕虫传播机制分析及IDA和OD逆向
- [系统安全] 二十八.CS逆向分析 (1)你的游戏子弹用完了吗?Cheat Engine工具入门
- [系统安全] 二十九.外部威胁防护和勒索病毒对抗(深信服视频学习)
- [系统安全] 三十.WannaCry勒索病毒分析 (4)全网“最“详细的蠕虫传播机制解读
- [系统安全] 三十一.恶意代码检测(1)恶意代码攻击溯源及恶意样本分析
- [系统安全] 三十二.恶意代码检测(2)常用技术万字详解及总结
- [系统安全] 三十三.恶意代码检测(3)基于机器学习的恶意代码检测技术
- [系统安全] 三十四.恶意代码检测(4)编写代码自动提取IAT表、字符串及时间戳
- [系统安全] 三十五.Procmon工具基本用法及文件进程、注册表查看
- [系统安全] 三十六.学术分享之基于溯源图的APT攻击检测安全顶会论文总结
- [系统安全] 三十七.Metasploit技术之基础用法万字详解及防御机理
- [系统安全] 三十八.Metasploit后渗透技术信息收集、权限提权和功能模块详解及防护建议
- [系统安全] 三十九.恶意代码同源分析及BinDiff软件基础用法
- [系统安全] 四十.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法
- [系统安全] 四十一.Powershell恶意代码检测系列 (2)Powershell基础语法和注册表操作
- [系统安全] 四十二.Powershell恶意代码检测系列 (3)PowerSploit脚本渗透详解
- [系统安全] 四十三.Powershell恶意代码检测系列 (4)论文总结及抽象语法树(AST)提取
- [系统安全] 四十四.恶意软件分析 (1)静态分析Capa经典工具的基本用法万字详解
- [系统安全] 四十五.恶意软件分析 (2)静态分析Capa经典工具批量提取静态特征和ATT&CK技战术
- [系统安全] 四十六.恶意软件分析 (3)动态分析经典沙箱Cape的安装和基础用法详解
- [系统安全] 四十七.恶意软件分析 (4)Cape沙箱批量提取动态API特征
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:娜璋AI安全之家 eastmount eastmount《[系统安全] 四十七.恶意软件分析 (4)Cape沙箱批量提取动态API特征》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。


![[系统安全]四十七.恶意软件分析(4)Cape沙箱批量提取动态API特征](/images/random/titlepic/3.jpg)
![[系统安全]四十九.恶意家族分类(1)基于API序列和机器学习的恶意家族分类实例详解](/images/random/titlepic/7.jpg)
![[系统安全]五十二.DataCon竞赛(1)2020年Coremail钓鱼邮件识别及分类详解](/images/random/titlepic/12.jpg)
![[系统安全]五十八.恶意软件分析(10)利用火绒安全实现恶意样本家族批量标注(含学术探讨)](/images/random/titlepic/6.jpg)

![[系统安全]六十三.Powershell恶意代码检测系列(6)混淆和反混淆[上]](/images/random/titlepic/11.jpg)
![[系统安全]六十二.恶意软件分析(13)LLM赋能实现基于机器学习的恶意家族分类(初探)](/images/random/titlepic/1.jpg)
![[系统安全]五十四.恶意软件分析(6)PE文件解析及利用Python获取样本时间戳详解](/images/random/titlepic/9.jpg)
评论