[系统安全] 四十七.恶意软件分析 (3)动态分析经典沙箱Cape的安装和基础用法详解

终于忙完初稿,开心地写一篇博客。 您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。换专业确实挺难的,逆向分析也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~

前文详细介绍恶意代码静态分析经典工具Capa的基础用法,以及批量提取静态特征和ATT&CK技战术,主要是从提取的静态特征Json文件中提取关键特征。这篇文章将详细讲解动态分析沙箱Cape,其是一个开源的自动恶意软件分析系统,通过自动运行和分析恶意软件,全面分析和提取恶意软件的关键特征。本文先介绍Cape沙箱的安装和基础用法,后续随着深入再分享。基础性文章,希望对您有帮助,如果存在错误或不足之处,还请海涵。且看且珍惜!

  • Cape来源于Cuckoo沙箱,整个安装极其繁琐,需要多个系统嵌套,包括Ubuntu、Windows、Cuckoo等。这里作者介绍一种相对简单的Cape沙箱安装环境,通过我师弟集成的Cape虚拟机镜像安装,通过他允许后在此分享并表示感谢,也希望帮助更多安全童鞋和初学者。

在这里插入图片描述

希望这些基础原理能更好地帮助大家做好防御和保护,基础性文章,希望对您有所帮助。作者作为网络安全的小白,分享一些自学基础教程给大家,主要是在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔!

作者的github资源:

从2019年7月开始,我来到了一个陌生的专业——网络空间安全。初入安全领域,是非常痛苦和难受的,要学的东西太多、涉及面太广,但好在自己通过分享100篇“网络安全自学”系列文章,艰难前行着。感恩这一年相识、相知、相趣的安全大佬和朋友们,如果写得不好或不足之处,还请大家海涵!

接下来我将开启新的安全系列,叫“系统安全”,也是免费的100篇文章,作者将更加深入的去研究恶意样本分析、逆向分析、内网渗透、网络攻防实战等,也将通过在线笔记和实践操作的形式分享与博友们学习,希望能与您一起进步,加油~

前文分析:

声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。


一.恶意软件分析

恶意软件或恶意代码分析通常包括静态分析和动态分析。特征种类如果按照恶意代码是否在用户环境或仿真环境中运行,可以划分为静态特征和动态特征。

那么,如何提取恶意软件的静态特征或动态特征呢? 因此,第一部分将简要介绍静态特征和动态特征。

1.静态特征

没有真实运行的特征,通常包括:

  • 字节码:二进制代码转换成了字节码,比较原始的一种特征,没有进行任何处理
  • IAT表:PE结构中比较重要的部分,声明了一些函数及所在位置,便于程序执行时导入,表和功能比较相关
  • Android权限表:如果你的APP声明了一些功能用不到的权限,可能存在恶意目的,如手机信息
  • 可打印字符:将二进制代码转换为ASCII码,进行相关统计
  • IDA反汇编跳转块:IDA工具调试时的跳转块,对其进行处理作为序列数据或图数据
  • 常用API函数
  • 恶意软件图像化

静态特征提取方式:


2.动态特征

相当于静态特征更耗时,它要真正去执行代码。通常包括:
API调用关系:比较明显的特征,调用了哪些API,表述对应的功能
控制流图:软件工程中比较常用,机器学习将其表示成向量,从而进行分类
数据流图:软件工程中比较常用,机器学习将其表示成向量,从而进行分类

动态特征提取方式:


二.Cuckoo和Cape沙箱简介

1.Cuckoo沙箱简介

Cuckoo Sandbox 是一个开源的自动恶意软件分析系统,并且是经典的沙箱分析工具。Cuckoo沙箱将在几秒钟内为您提供一些详细的分析结果,概述该文件在隔离环境中执行时的情况。不像在线VirusTotal、VirusShare、微步、AnyRun、Hybrid等在线沙箱,Cuckoo可以实现本地安装和离地分析,其定制化和可控程度更高。

Cuckoo Sandbox始于2010年蜜网计划中的谷歌Summer of Code项目,它最初是由Claudio“nex”Guarnieri设计和开发的。在2010年夏天开启该工作之后,第一个测试版于2011年2月5日发布,这是Cuckoo第一次公开发布。2011年3月,在谷歌Code Summer of 2011期间,Cuckoo再次被选为蜜网项目的支持项目,在此期间Dario Fernandes加入了该项目并扩展了其功能。

在这里插入图片描述

Cuckoo Sandbox started as a Google Summer of Code project in 2010 within The Honeynet Project. It was originally designed and developed by Claudio “nex” Guarnieri, who is still the main developer and coordinates all efforts from joined developers and contributors.


2.Cape沙箱简介

CAPE Sandbox 是一款用于自动分析可疑文件或恶意软件的开源系统,它使用自定义组件来监视在隔离环境中运行的恶意进程的行为。CAPE来源于Cuckoo Sandbox,目的是添加自动恶意软件解包和配置提取——因此它的名字是一个缩写“配置和有效载荷提取(Config And Payload Extraction)”。自动解包允许基于Yara签名的分类,以补充网络(Suricata)和行为(API)签名。与2016年诞生。

CAPE Sandbox is an Open Source software for automating analysis of suspicious files. To do so it makes use of custom components that monitor the behavior of the malicious processes while running in an isolated environment.

在这里插入图片描述

CAPE被用来自动运行和分析文件,并收集全面的分析结果,概述恶意软件在孤立的Windows操作系统中运行时的行为。它可以检测以下类型的结果:

  • 由恶意软件生成的所有进程执行的win32 API调用的痕迹。
  • 恶意软件在执行过程中创建、删除和下载的文件。
  • 恶意软件进程的内存转储。
  • PCAP格式的网络流量跟踪。
  • 在执行恶意软件期间截取的Windows桌面截图。
  • 机器的全内存转储。

由于CAPE的模块化设计,它既可以作为独立的应用程序使用,也可以集成到更大的框架中。它可以用来分析:

  • Generic Windows executables
  • DLL files
  • PDF documents
  • Microsoft Office documents
  • URLs and HTML files
  • PHP scripts
  • CPL files
  • Visual Basic (VB) scripts
  • ZIP files
  • Java JAR
  • Python files
  • Almost anything else

虽然CAPE沙箱的配置和有效载荷提取是最初声明的目标,但CAPE调试器的首要目标是:为了从任意恶意软件家族中提取配置文件或解压缩有效负载,而不依赖进程转储(迟早会被坏人破坏),指令级别的监视和控制是必要的。CAPE中的新调试器遵循最大化使用处理器硬件和最小化使用Windows调试接口的原则,允许通过Yara签名或API调用在引爆期间以编程方式设置硬件断点,从入口点偷偷地检测和操纵恶意软件。这允许捕获指令跟踪,或执行操作,如控制流操作或转储内存区域。

调试器允许CAPE在其原始功能之外继续发展,这些功能现在包括了动态反规避绕过。由于现代恶意软件通常试图在沙箱中逃避分析,例如通过使用定时陷阱来进行虚拟化或API钩子检测,CAPE允许开发动态对策,结合调试器在Yara签名中的动作,来检测隐藏的恶意软件,并执行控制流程操作,迫使样品完全引爆或跳过规避动作。CAPE的动态旁路越来越多,其中包括:

  • Guloader
  • Ursnif
  • Dridex
  • Zloader
  • Formbook
  • BuerLoader
  • Pafish

CAPE利用了许多恶意软件技术或行为,允许未打包的有效载荷捕获,这些行为将导致捕获注入、提取或解压缩的有效载荷,以便进一步分析。此外,CAPE自动为每个进程创建一个进程转储,或者在DLL的情况下,为内存中的DLL模块映像创建一个进程转储。

推荐读者学习官方文档:

在这里插入图片描述


3.Cape原理

CAPE Sandbox由处理样本执行和分析的中央管理软件组成。每个分析都在一个全新的、孤立的虚拟机中启动。CAPE的基础结构由一台主机(管理软件)和一些Guest机器(用于分析的虚拟机)组成。主机Host运行管理整个分析过程的沙盒核心组件,而Guest是安全执行和分析恶意软件样本的隔离环境。

CAPE的主要架构如下图所示:

  • 推荐的设置是GNU/Linux (Ubuntu LTS最好)作为主机,Windows 7作为客户。

在这里插入图片描述

在这里插入图片描述


三.Cape沙箱安装过程

在介绍Cape沙箱之前,我先介绍如何安装Cape。在网上会有很多Cuckoo或Cape沙箱的安装教程,整个安装真的繁琐,需要多个系统嵌套,包括Ubuntu、Windows、Cuckoo等。这里作者介绍一种相对简单的Cape沙箱安装环境,通过我CFT师弟集成的Cape虚拟机镜像安装,通过他允许后在此分享,并表示感谢。具体步骤如下:

1.载入虚拟机镜像

第一步:安装VMware虚拟机并打开。

在这里插入图片描述

第二步,利用VMware打开指定文件夹的虚拟机镜像。该集成镜像由我师弟完成,再次表示感谢。整个虚拟机内容如下:

在这里插入图片描述

第三步,导入虚拟机并存储指定位置,等待虚拟机的导入。

在这里插入图片描述

在这里插入图片描述

第四步,导入成功后如下图所示,接着开启虚拟机。

在这里插入图片描述

等待打开Ubuntu系统,如下图所示:

在这里插入图片描述

第五步,打开Ubuntu系统。

  • 密码:admin123

在这里插入图片描述

最终结果如下图所示,这是配置好的环境,接下来需要启动沙箱。

在这里插入图片描述


2.启动沙箱

第一步, 在任意文件夹中运行"sudo virtualbox",现在已经安装了一个Win7 X64专业版虚拟机。

sudo virtualbox

在这里插入图片描述

输入密码仍然为“admin123”,后续操作均是它。

在这里插入图片描述

此时会启动cuckoo沙箱,如下图所示。

在这里插入图片描述

如果cuckoo关闭则启动即可,如下图所示:

在这里插入图片描述

在这里插入图片描述

它会启动Windows 7系统,后续会调用agent.py代码执行动态分析。

在这里插入图片描述

在这里插入图片描述

第二步, 进入/opt/CAPEv2/文件夹,运行"sudo python3 cuckoo.py"。

cd /opt/CAPEv2
sudo python3 cuckoo.py

注意输入命令按“Tab”键会自动补齐。

在这里插入图片描述

对应的源文件如下图所示,集成的CAPEv2文件夹。

在这里插入图片描述

在这里插入图片描述

第三步, 在/opt/CAPEv2/文件夹下运行"sudo python3 utils/process.py -p7 auto",参数代表优先级划分,输入多个样本时,沙箱会优先运行高优先级样本。

cd /opt/CAPEv2/
sudo python3 utils/process.py -p7 auto

类似于动态分析监控过程。

在这里插入图片描述

运行的文件对应位置如下:

在这里插入图片描述

在这里插入图片描述

第四步,在/opt/CAPEv2/web目录下(由于环境依赖的问题,必须由指向该文件夹的shell运行该命令),运行"sudo python3 manage.py runserver 127.0.0.1:8088"(该虚拟机的8080端口已被占用,端口可自己指定)。

cd /opt/CAPEv2/web
sudo python3 manage.py runserver 127.0.0.1:8088

该操作相当于打开前段服务器,用于加载恶意软件和呈现分析结果。

在这里插入图片描述

对应源文件如下:

在这里插入图片描述

在这里插入图片描述

至此,沙箱成功启动,共开启四个窗口分别运行各种操作。

在这里插入图片描述


四.Cape沙箱基本用法

该部分将介绍Cape沙箱的详细用法。

1.提交样本

在虚拟机的火狐中打开127.0.0.1:8088,在submit页面提交样本即可。

第一步,在虚拟机的火狐中打开127.0.0.1:8088。

在这里插入图片描述

第二步, 选择需要分析的样本上传。注意,作者在环境中已设置两个样本供大家分析。

在这里插入图片描述

同时,作者已将虚拟机的Tool开启,可以直接从主机中拖动需要分析的文件至指定目录进行分析。如下图所示,将HGZ和WannaCry样本。

在这里插入图片描述

再次强调
在恶意软件分析中,一定要做好本机保护,包括在虚拟机隔离环境中进行分析,甚至需要断网防止沙箱逃逸。同时,本人坚决反对渗透和破坏行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护。这里仅是分享恶意软件分析背后的原理,更好地进行防护。

在这里插入图片描述

选择动态分析的必要参数,比如时间为60秒。

在这里插入图片描述

第三步,提交分析,调用Cape沙箱开展动态分析。

在这里插入图片描述

会唤醒Cuckoo沙箱进行分析。

在这里插入图片描述

在这里插入图片描述

完成分享后如下图所示:

在这里插入图片描述


2.WannaCry动态分析结果查看

点击控制面板的“Recent”查看分析结果。由图可知,本文分析的结果已产生,同时有之前提交的两个样本。

在这里插入图片描述

点击MD5值查看分析结果。

在这里插入图片描述

Quick Overview

首先展示快速分析的基本信息,包括机器和时间等。

在这里插入图片描述

下面是恶意软件动态分析的具体内容。

(1) 文件详细信息

在这里插入图片描述

(2) 签名信息(signatures)

在这里插入图片描述

可以看到生成的文件,比如WannaCry任务执行生成的“taskche.exe”,感兴趣的读者请详细看看我之前分析的WannaCry样本传播机理。

在这里插入图片描述

DLL载入文件如下图所示:

在这里插入图片描述

HTTP请求可以看到WannaCry域名开关去连接的三个域名(早已下架)。

在这里插入图片描述

加密和签名信息如下:

在这里插入图片描述

(3) 动态运行截屏信息

在这里插入图片描述

(4) 各种动态行为特征总结
下面是各种动态特征总结,由图可知,Cape沙箱的功能非常强大。其中比较重要的信息,比如IOCs如下图所示。

在这里插入图片描述

动态API如下图所示:

在这里插入图片描述

注册表操作如下图所示:

在这里插入图片描述


Static Analysis

静态分析结果如下图所示:

在这里插入图片描述


Behavior Analysis

动态行为特征如下图所示:

在这里插入图片描述

该部分能看到动态API序列,极为重要的特征,如下图所示:

在这里插入图片描述


Network Analysis

网络分析如下图所示:

在这里插入图片描述


Process Dumps

进程特征如下:

在这里插入图片描述


Reports

同时可以下载对应的报告,如下图所示:
在这里插入图片描述

报告的位置如下图所示,分析结果均存储在“storage”文件夹中。

在这里插入图片描述

在这里插入图片描述


Statistics

统计结果如下图所示:

在这里插入图片描述


3.其它功能介绍

整个Cape页面主要包括六个菜单:

  • Dashboard
  • Recent
  • Pending
  • Search
  • API
  • Submit

Dashboard是分析统计结果。

在这里插入图片描述

Recent是最近分析的结果,需从该位置查看详细信息。

在这里插入图片描述

Pending是正在分析的样本。

在这里插入图片描述

Search是搜索功能。

在这里插入图片描述

API是相关函数及信息。

在这里插入图片描述

Submit是提交页面。

在这里插入图片描述


五.总结

写到这里这篇文章就结束,希望对您有所帮助。忙碌的三月,真的很忙,项目本子论文毕业,等忙完后好好写几篇安全博客,感谢支持和陪伴,尤其是家人的鼓励和支持, 继续加油!

2023年3月20日,终于完成初稿,凌晨迫不及待来写一篇博客,纪念下,感恩下!娜璋白首。

  • 一.恶意软件分析
    1.静态特征
    2.动态特征
  • 二.Cuckoo和Cape沙箱简介
    1.Cuckoo沙箱简介
    2.Cape沙箱简介
    3.Cape原理
  • 三.Cape沙箱安装过程
    1.载入虚拟机镜像
    2.启动沙箱
  • 四.Cape沙箱基本用法
    1.提交样本
    2.WannaCry动态分析结果查看
    – Quick Overview
    – Static Analysis
    – Behavior Analysis
    – Network Analysis
    – Process Dumps
    – Reports
    – Statistics
    3.其它功能介绍
  • 五.总结

提问:

  • 在真实样本中,恶意软件会被加壳和混淆处理,常用脱壳工具为Unipack。那么,大家可以思考下,CAPA提取的API特征都是恶意软件中均执行的吗?同时,这些关键特征是否都被提取呢?
  • 请大家思考静态特征和动态特征各自的优缺点。
  • CAPE沙箱如何实现批量提取,同时如何定制化规则呢?
  • CAPE沙箱如何捕获的API特征,通过HOOK机制吗?还有哪些可以优化的地方呢?
  • CAPE沙箱究竟能检测逃逸性、高隐蔽的恶意软件吗?尤其APT攻击的样本。
  • 如何撰写代码提取Json中所需特征,比如常见的API。
  • CAPA是经典的静态特征提取工具,那么如何提取动态特征呢?动态特征在恶意软件检测中又扮演什么角色?
  • 个人感觉静态分析和动态分析是很多年都在研究的内容,目前会与深度学习结合。那么,未来的方法将如何创新呢?怎么更好地自动化识别恶意软件行为,并且批量识别且更少依赖专家知识。

三月应该是今年最忙碌的一个月了,好多事情。希望一切顺利,更希望四月后能沉下心来读论文和写论文,继续加油,只争朝夕。

在这里插入图片描述

欢迎大家讨论,是否觉得这系列文章帮助到您!任何建议都可以评论告知读者,共勉。

(By:Eastmount 2023-03-22 夜于武汉 http://blog.csdn.net/eastmount/ )

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 25
    评论
### 回答1: 物联网僵尸(Mirai)源码分析沙箱运行演示是针对Mirai僵尸网络进行深入研究和模拟实验的过程。 首先,Mirai是一种恶意软件,被用于控制僵尸网络,通过感染硬件设备(如路由器、监控摄像头等)并控制其行为。源码分析是指对Mirai的代码进行分析,以了解其工作机制、攻击方式和传播途径。分析Mirai源码可以揭示该僵尸网络的内部结构和功能,包括攻击指令的发送和执行、感染设备的方法以及与C&C服务器的通信方式等。 然后,在模拟实验中,可以使用沙箱技术对Mirai进行安全隔离运行。沙箱是一种软件隔离环境,在其中运行恶意软件等风险较大的应用程序,以避免对真实系统的危害。通过将Mirai放入沙箱中进行运行,可以实验性地观察其行为和攻击特征,同时防止其对真实设备和网络的影响。 在沙箱中运行Mirai源码,可以通过模拟感染设备、执行攻击指令等方式,观察其与C&C服务器的通信、攻击其他网络设备的能力以及传播的效果。通过分析Mirai在沙箱中的行为,可以帮助安全研究人员了解并研究其工作原理,同时也可以得出应对Mirai及类似僵尸网络的防御措施。 总而言之,物联网僵尸(Mirai)源码分析沙箱运行演示是为了深入了解该僵尸网络的工作原理、攻击方式和防御策略。通过对Mirai的源码进行分析和在沙箱中运行,可以揭示其内部机制,并为开展相关研究提供基础和准备。 ### 回答2: 物联网僵尸Mirai源码分析沙箱运行演示是一种研究Mirai恶意软件的方法,它能够帮助安全研究人员了解该恶意软件的工作原理、攻击方式以及如何进行防范。 Mirai是一种物联网僵尸网络,它利用弱密码和漏洞攻击物联网设备,将这些设备转变为僵尸,并将其组成一个庞大的僵尸网络。这些僵尸设备可以用来发动DDoS攻击、传播恶意软件等。Mirai源码是该恶意软件的实际代码,通过分析源码,可以揭示其攻击方法和漏洞利用路径。 沙箱是一种隔离环境,用于模拟和执行恶意软件,以观察其行为、分析其功能并检测其恶意行为。在Mirai源码分析沙箱运行演示中,安全研究人员将Mirai源码加载到沙箱中,然后观察和记录恶意软件的行为。 通过Mirai源码分析,我们可以深入了解Mirai的攻击方式和技术细节。比如,Mirai利用常见的弱密码列表攻击物联网设备的Telnet服务,然后获取控制权并将设备添加到僵尸网络中。此外,Mirai还利用漏洞攻击物联网设备,如利用未经授权访问漏洞进行传播。 沙箱运行演示可以帮助研究人员观察Mirai的行为模式,并探索其可能的漏洞利用和攻击能力。通过沙箱运行,我们可以模拟Mirai在真实环境中的运行,并对其进行分析和评估。 总而言之,Mirai源码分析沙箱运行演示是一种重要的研究方法,可以帮助我们深入理解Mirai和类似恶意软件的工作原理,从而更好地保护物联网设备的安全。 ### 回答3: 物联网僵尸Mirai源码分析沙箱运行演示是一个对Mirai僵尸网络进行研究和分析的过程。Mirai是一种恶意软件,它通过利用物联网设备的弱点进行入侵,从而建立一个由僵尸设备组成的网络,用于发起分布式拒绝服务(DDoS)攻击。 在进行源码分析之前,需要先获取Mirai源码。通过对源码的研究和分析,可以深入了解Mirai的运行原理和攻击方式。 源码分析的关键步骤包括但不限于以下几点: 1. 分析Mirai的代码结构和组织方式,了解各个组件的功能和相互关系。 2. 研究Mirai的攻击模块,了解它是如何利用物联网设备进行攻击的。 3. 深入理解Mirai的传播机制,追踪它是如何在设备之间传播和建立僵尸网络的。 4. 分析Mirai的通信协议,包括和命令控制服务器的通信方式和数据传输规则。 源码分析完成后,可以进行沙箱运行演示,这是为了更好地了解Mirai的行为和影响。沙箱是一个安全环境,用于模拟网络和设备环境,并观察Mirai在其中的行为。 在沙箱运行演示中,可以进行以下操作: 1. 在沙箱环境中搭建模拟的物联网网络,包括不同类型的设备和操作系统。 2. 将Mirai恶意软件部署到选定的设备上,并观察它是如何感染其他设备并建立僵尸网络的。 3. 通过监测和分析Mirai的网络流量,了解其攻击行为和目标。 4. 模拟Mirai发起DDoS攻击,观察其对网络和设备的影响。 通过源码分析沙箱运行演示,可以帮助安全专家和研究人员更好地了解Mirai的运作方式,从而提出相应的防御和对策措施,保护物联网设备和网络的安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eastmount

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值