1. 功能介绍
**沙盒(Sanbox)**是一种将未知、不可信的软件隔离执行的安全机制。恶意软件分析沙盒一般用来将不可信软件放在隔离环境中自动地动态执行,然后提取其运行过程中的进程行为、网络行为、文件行为等动态行为,安全研究员可以根据这些行为分析结果对恶意软件进行更深入地分析。
Cuckoo sandbox是一款用 Python和C/C++ 编写的开源的自动化恶意软件分析系统,且跨越Windows、Android、Linux和Darwin四种操作系统平台。
1.1主要功能
- 跟踪记录恶意软件所有的调用状况;
- 恶意软件文件行为:恶意软件执行过程中创建新文件、修改文件、删除文件、读取文件或下载文件的行为;
- 获取恶意软件的内存镜像;
- 以 PCAP 格式记录恶意软件的网络流量;
- 获取恶意软件执行过程中的屏幕截图;
- 获取执行恶意软件的客户机的完整内存镜像
Cuckoo 可以分析的几乎所有的文件格式
1.2 架构设计
Cuckoo 的架构也比较简单,在 Host 机上运行 Cuckoo 主程序,多个 Guest 机通过虚拟网络与 Host 机相连,每个 Guest 机上有一个 Cuckoo Agent 程序,用来做 Cuckoo 的监控代理,结构图如下:
其实就是说,在host的web上提交的文件,会被分配到各个guest上运行,收集该文件调用的状况。
2. 安装与配置
2.1 配置情况
主机(host):Ubuntu 18.04 LTS + 4Gb Ram + VirtualBox6.0 + Cuckoo Sandbox 2.0.4
客户机(guest):Windows XP professional SP3 + 512Mb Ram
主机与客户机之间的连接方式:Host-Only + IP转发
2.2 主机环境准备
-
更换源
自带的源不太稳定,所以更换为国内的源,如阿里源。操作如下:
sudo gedit /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ disco main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ disco main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ disco-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ disco-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ disco-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ disco-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ disco-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ disco-backports main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ disco-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ disco-proposed main restricted universe multiverse
删除缓存:
sudo rm -vfr /var/lib/apt/lists/*
更新:
sudo apt-get update
sudo apt-get upgrade
-
安装cuckoo的依赖
-
sudo apt-get install git mongodb libffi-dev build-essential python-django python python-dev python-pip python-pil python-sqlalchemy python-bson python-dpkt python-jinja2 python-magic python-pymongo python-gridfs python-libvirt python-bottle python-pefile python-chardet tcpdump -y
-
安装Tcpdump并确认安装无误:
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
getcap /usr/sbin/tcpdump
输出:
/usr/sbin/tcpdump = cap_net_admin,cap_net_raw+eip
则表示已正确安装 -
安装Pydeep:
wget http://sourceforge.net/projects/ssdeep/files/ssdeep-2.13/ssdeep-2.13.tar.gz/download -O ssdeep-2.13.tar.gz tar -zxf ssdeep-2.13.tar.gz cd ssdeep-2.13 ./configure make sudo make install
确认pydeep安装无误:
ssdeep -V #检查版本
pip show pydeep #再安装一次看看会不会提示已安装
-
安装Volatility:
先安装Volatility的依赖
sudo pip install openpyxl ujson pycrypto distorm3 pytz
安装volatility
git clone https://github.com/volatilityfoundation/volatility.git
cd volatility
python setup.py build
python setup.py install
确认volatility安装无误
python vol.py -h
-
-
安装Cuckoo:
直接pip安装,别整啥乱七八糟的,到2019.06.29为止,最新版本应该是2.0.7,笔者试过2.0.1,2.0.4,2.0.6,2.0.7,发现从2.0.4开始之后的版本都差不多,倒是之前的版本差异太大,很难配置成功。
-
先执
-