Cuckoo sandbox deploy tutorial
Cuckoo sandbox deploy tutorial
S0cke3tCuckoo
Cuckoo(布谷鸟)沙箱是一个开源且免费的自动化的恶意样本分析系统。主体使用python开发, 该沙箱提供一个主要的沙箱引擎和一个使用django开发的web界面, 通过web界面或者沙箱系统提供的web api提交可疑文件,沙箱系统即可自动分析,并在分析完毕后提供一个详细的报告,概述该文件在沙箱中执行时的行为,支持分析Windows, macOS, Linux, 和 Android下的恶意文件.
架构
Cuckoo由Cuckoo host、Analysis Guests、Virtual network构成。cuckoo host是调度中心,analysis guest是具体执行样本的沙箱环境,两者通过虚拟网卡连接。当提交样本到cuckoo host后,cuckoo host会调度一个空闲的analysis guest节点,同时将样本传递给所选择的沙箱节点进行自动化分析,分析结束之后将沙箱节点采集到的分析数据进行汇总,最后输出分析报告。
Cuckoo沙箱底层基于虚拟化技术,可以使用不同的虚拟化平台进行构建,目前支持的虚拟化平台包括:VirtualBox、KVM、VMware Workstation、XenServer。
环境
Vmware workstation 16 Pro
Ubuntu 16.04 x64
Virtual Box 5.2
Windows 7 unlimited sp1 x64
Cuckoo 2.0.7
Python 2.7.18 x64
阐述下各软件安装位置,简单画个草图
部署
首先需要在Vmware上虚拟化一个Ubuntu作为cuckoo的宿主机,建议cpu和内存配置不要太低, 笔者配置如下
此处需要注意的是虚拟机CPU要开启VT-X或者AMD-V虚拟化嵌套
安装依赖
由于在具有中国特色的互联网环境下, 建议在安装下面各个依赖和组件时使用科学上网~
1 |
|
安装pip
1 |
|
安装VirtualBox
注意在安装VirtualBox时,尽量选择>5.1的版本.虽然5.1也可以正常使用,但在cuckoo启动时会显示VirtualBox存在风险
1 |
|
打开VirtualBox导入扩展
安装volatility
Volatility是一款开源的内存取证分析工具,支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证方式
1 | git clone https://github.com/volatilityfoundation/volatility.git |
安装python依赖包
1 |
|
组件设置
1 | sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump |
安装cuckoo
1 |
|
安装完成后运行一次cuckoo让其生成默认配置文件
默认配置位于/home/xxxx/.cuckoo/conf
至此, cuckoo主体已安装完成,要想cuckoo正常工作,还需要对虚拟网络,防火墙等进行一系列设置.
虚拟网络设置
1 |
|
将虚拟网络安装为服务并设置为自启动
1 | sudo mkdir /opt/systemd/ |
1 | cd /opt/systemd/ |
1 | 重载服务 |
配置iptables-persistent
1 | sudo iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT |
修改cuckoo配置文件
cuckoo.conf
memory_dump=yes
忘记截图了
auxiliary.conf
virtualbox.conf
processing.conf
memory.conf
reporting.conf
安装配置分析机
在VirtualBox中安装Windows7 unlimited sp1 x64, 安装过程此处不再赘述
注意
- 分析机标签名称,ip和快照要与配置文件中一致
- 快照要使用运行中快照
- 设置静态ip后检查是否可以正常连接互联网,如不能联网检查iptables配置
- 分析机网络选择HostOnly
组策略配置
1 | windows设置->安全设置->本地策略->安全选项->安全选项->用户账户控制: 管理员批准模式中管理员的提升权限的行为 下选择 |
1 | windows设置->安全设置->本地策略->安全选项->安全选项->用户账户控制:检测应用程序安装并提升提升,下选择 |
1 | windows设置->安全设置->本地策略->安全选项->安全选项->用户账户控制:以管理员批准模式运行所有管理员,选择 |
安装python 2.7.18和pillow
安装python时注意勾选添加到环境变量
由于中国特色网络原因需要换pip源
1 | [global] |
设置agent
拷贝/home/s0cke3t/.cuckoo/agent/agent.py
到分析机C:\Users\xxxxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
目录下并更改后缀为pyw
双击运行,查看是否有8000端口监听
一切设置完毕后,就可以对分析机当前状态进行快照保存,保存名称要与配置文件的一致, 保存快照后暂停并休眠分析机
至此全部配置完毕
启动
启动cuckoo
1 |
|
启动cuckoo
启动web页面
默认管理地址http://localhost:8000
输入配置的密码即可访问
样本测试
笔者以Synaptics
蠕虫病毒进行测试
上传样本后选择要分析的行为, 分析时长, 以及要使用的分析机, 之后提交即可.
等待状态变为reported说明已经分析完成,点击任务可查看分析报告
总结
总体来说cuckoo还是一款比较完善且专业的开源沙箱分析系统, 对于研究分析恶意软件和应急响应人员来说都是一个很不错的选择
优缺点
优点:
- 开源且免费,对于有特殊需求的人群可以很好的进行定制化
- 支持虚拟化类型多,可以跨平台使用
- 分析较为全面,几乎可以满足需求
- 不需要太高的硬件要求
- 支持导出报告
缺点:
安装和配置过于繁琐, 稍有差错会导致运行失败
英文界面, 需要使用者具有一定的英语基础
内存分析时间太长, 基本都在半小时左右
更新迭代慢(最新版本为2019年发布)
默认的规则, 样本库对恶意软件的支持较少
对于新的恶意软件需要使用者自己编写yara规则
不支持Python3