前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >红蓝对抗-Cuckoo 恶意软件分析沙箱部署教程

红蓝对抗-Cuckoo 恶意软件分析沙箱部署教程

作者头像
黑伞安全
发布2022-12-20 15:28:14
6.1K1
发布2022-12-20 15:28:14
举报
文章被收录于专栏:黑伞安全
Cuckoo

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虚拟化嵌套

安装依赖

由于在具有中国特色的互联网环境下, 建议在安装下面各个依赖和组件时使用访问国外网站~

代码语言:javascript
复制
sudo apt-get install curl git wget openconnect python-dev libffi-dev libssl-dev libfuzzy-dev libtool flex autoconf libjansson-dev  python-setuptools libjpeg-dev zlib1g-dev swig mongodb postgresql libpq-dev libcap2-bin  tcpdump apparmor-utils  iptables-persistent ssdeep libsdl1.2debian -y --fix-missing
安装pip
代码语言:javascript
复制
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -O
sudo python get-pip.py
安装VirtualBox

注意在安装VirtualBox时,尽量选择>5.1的版本.虽然5.1也可以正常使用,但在cuckoo启动时会显示VirtualBox存在风险

代码语言:javascript
复制
下载VirtualBox 5.2.44
curl https://download.virtualbox.org/virtualbox/5.2.44/virtualbox-5.2_5.2.44-139111~Ubuntu~xenial_amd64.deb -O
下载VirtualBox 5.2.44扩展
curl https://download.virtualbox.org/virtualbox/5.2.44/Oracle_VM_VirtualBox_Extension_Pack-5.2.44.vbox-extpack -O
安装
sudo dpkg -i virtualbox-5.2_5.2.44-139111~Ubuntu~xenial_amd64.deb

打开VirtualBox导入扩展

安装volatility

Volatility是一款开源的内存取证分析工具,支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证方式

代码语言:javascript
复制
git clone https://github.com/volatilityfoundation/volatility.git
cd volatility
sudo python setup.py build
sudo python setup.py install
安装python依赖包
代码语言:javascript
复制
sudo -H pip install distorm3==3.4.4 yara-python==3.6.3 pydeep openpyxl ujson jupyter pip setuptools
组件设置
代码语言:javascript
复制
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
getcap /usr/sbin/tcpdump
sudo aa-disable /usr/sbin/tcpdump
安装cuckoo
代码语言:javascript
复制
sudo -H pip install -U cuckoo
cuckoo

安装完成后运行一次cuckoo让其生成默认配置文件

默认配置位于/home/xxxx/.cuckoo/conf

至此, cuckoo主体已安装完成,要想cuckoo正常工作,还需要对虚拟网络,防火墙等进行一系列设置.

虚拟网络设置
代码语言:javascript
复制
创建仅主机虚拟网络
vboxmanage hostonlyif create
设置虚拟网络网关地址
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1

将虚拟网络安装为服务并设置为自启动

代码语言:javascript
复制
sudo mkdir /opt/systemd/
sudo nano /opt/systemd/vboxhostonly
写入以下内容,保存退出
#!/bin/bash
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
代码语言:javascript
复制
cd /opt/systemd/
sudo chmod a+x vboxhostonly
创建服务
sudo touch /etc/systemd/system/vboxhostonlynic.service
sudo nano /etc/systemd/system/vboxhostonlynic.service
写入以下内容,保存退出
[Unit]
Description=Setup VirtualBox Hostonly Adapter
After=vboxdrv.service

[Service]
Type=oneshot
ExecStart=/opt/systemd/vboxhostonly

[Install]
WantedBy=multi-user.target
代码语言:javascript
复制
重载服务
systemctl daemon-reload
设置虚拟网络自启动
systemctl enable vboxhostonlynic.service
配置iptables-persistent
代码语言:javascript
复制
sudo iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
ens33替换为实际网卡名称
sudo iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
打开ipv4转发
echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward
sudo sysctl -w net.ipv4.ip_forward=1
修改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

组策略配置

代码语言:javascript
复制
windows设置->安全设置->本地策略->安全选项->安全选项->用户账户控制: 管理员批准模式中管理员的提升权限的行为 下选择"不提示,直接升"
代码语言:javascript
复制
windows设置->安全设置->本地策略->安全选项->安全选项->用户账户控制:检测应用程序安装并提升提升,下选择"禁用"
代码语言:javascript
复制
windows设置->安全设置->本地策略->安全选项->安全选项->用户账户控制:以管理员批准模式运行所有管理员,选择"禁用"

安装python 2.7.18和pillow

安装python时注意勾选添加到环境变量 由于中国特色网络原因需要换pip源

代码语言:javascript
复制
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn

设置agent

拷贝/home/s0cke3t/.cuckoo/agent/agent.py到分析机C:\Users\xxxxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\目录下并更改后缀为pyw

双击运行,查看是否有8000端口监听

一切设置完毕后,就可以对分析机当前状态进行快照保存,保存名称要与配置文件的一致, 保存快照后暂停并休眠分析机

至此全部配置完毕

启动

启动cuckoo

代码语言:javascript
复制
拉取最新的规则库
cuckoo community
启动cuckoo
cuckoo
启动本地web管理页面
cuckoo web
远程访问web管理页面
cuckoo web runserver 0.0.0.0:8000

启动cuckoo

启动web页面

默认管理地址http://localhost:8000

输入配置的密码即可访问

样本测试

笔者以Synaptics蠕虫病毒进行测试

上传样本后选择要分析的行为, 分析时长, 以及要使用的分析机, 之后提交即可.

等待状态变为reported说明已经分析完成,点击任务可查看分析报告

总结

总体来说cuckoo还是一款比较完善且专业的开源沙箱分析系统, 对于研究分析恶意软件和应急响应人员来说都是一个很不错的选择

优缺点

优点:

  • 开源且免费,对于有特殊需求的人群可以很好的进行定制化
  • 支持虚拟化类型多,可以跨平台使用
  • 分析较为全面,几乎可以满足需求
  • 不需要太高的硬件要求
  • 支持导出报告

缺点:

  • 安装和配置过于繁琐, 稍有差错会导致运行失败
  • 英文界面, 需要使用者具有一定的英语基础
  • 内存分析时间太长, 基本都在半小时左右
  • 更新迭代慢(最新版本为2019年发布)
  • 默认的规则, 样本库对恶意软件的支持较少 对于新的恶意软件需要使用者自己编写yara规则
  • 不支持Python3
参考

官方网站

官方文档

cuckoo仓库

cuckoo 2.0.7更新日志

开源沙箱Cuckoo Sandbox 的部署

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑伞攻防实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Cuckoo
  • 架构
  • 环境
  • 部署
    • 安装依赖
      • 安装pip
        • 安装VirtualBox
          • 安装volatility
            • 安装python依赖包
              • 组件设置
                • 安装cuckoo
                  • 虚拟网络设置
                    • 配置iptables-persistent
                      • 修改cuckoo配置文件
                        • 安装配置分析机
                        • 启动
                        • 样本测试
                        • 总结
                        • 参考
                        相关产品与服务
                        专用宿主机
                        专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档