在Kali Linux上玩转cuckoo沙箱(上)

摘要: 今天为大家介绍在kali linux 2020系统中cuckoo软件及沙箱的安装、配置和使用方法。

image.png

一、在kali linux系统中部署cuckoo软件

(一)cuckoo简介

1、什么是沙箱

工作中很多时候需要自己对一些可疑程序进行检测,可以选择VT等在线检测平台,也可以使用自己搭建的开源沙箱进行检测。所谓沙箱(sandbox),是一种将未知、不可信的软件隔离执行的安全机制,一般用来将不可信软件放在隔离环境中自动地动态执行,然后提取其运行过程中的进程行为、网络行为、文件行为等动态行为,安全研究员可以根据这些行为分析结果对恶意软件进行更深入地分析。

2、Cuckoo是什么?

Cuckoo是一款用Python编写的开源的自动化恶意软件分析系统,它的主要功能有:

image.png

3、cuckoo可以分析什么文件?

Cuckoo可以分析的文件类型包括但不限于:

image.png

4、Cuckoo的架构

Cuckoo的架构也比较简单,在Host机上运行Cuckoo主程序,多个Guest机通过虚拟网络与Host机相连,每个Guest机上有一个Cuckoo Agent程序,用来做Cuckoo的监控代理,结构图如下:

1587206184_5e9ad8288cada.png

(二)kali linux安装cuckoo相关的软件

1、安装python库

image.png

2、安装mongodb

为了使用基于djangle的web接口,需要安装mongodb。但是kali linux更新源中没有mongodb,需要引用ubuntu的更新源才能安装,具体方法如下:

(1)访问网站

https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/

选择适当版本的ubuntu,例如对于kali linux 2020系统,选择ubuntu 19.10:

(2)将ubuntu更新源的信息写入kali的配置文件

cd /etc/apt/sources.list.d

touch ubuntu.list //创建文件

vi ubuntu.list //编辑配置文件,加入下面的内容

image.png

保存退出

(3)安装软件

apt update

apt search mongodb //搜索特定的软件,使用了ubuntu的更新源则可以搜索到mongodb了

apt install mongodb mongodb-clients mongodb-server//安装软件

(4)还原更新源

vi /etc/apt/sources.list.d/ubuntu.list //编辑文件

注释掉所有的行:

保存退出。

3、安装postgresql

apt install postgresql libpq-dev

4、安装virtualbox

apt install virtualbox virtualbox-dkms virtualbox-ext-pack virtualbox-qt

5、安装tcpdump

image.png

6、安装volatility

apt install volatility //默认已安装在kali中,用于内存dump取证。

7、安装M2Crypto

pip install m2crypto//用于实现加密连接

(三)账户管理

1、将当前的user1用户添加到vboxusers组

usermod -a -G vboxusers user1

2、提高允许打开文件的数量

/etc/security/limits.conf//编辑配置文件,将下面的内容粘贴到文件末尾

* hard nofile 500000

* soft nofile 500000

root hard nofile 500000

root soft nofile 500000

保存退出,重新登录后生效。

(四)安装cuckoo

pip install -U pip setuptools//安装setuptools

pip install -U cuckoo//安装cuckoo

(五)CWD(当前工作目录)

1、什么是CWD

从cuckoo 2.0.0开始有了CWD的概念。CWD所对应的目录包含了配置组件、生成的数据、cuckoo的检测结果等数据。包括但不限于如下内容:

Configuration

Cuckoo Signatures

Cuckoo Analyzer

Cuckoo Agent

Yara rules

Cuckoo Storage (where analysis results go)

CWD较cuckoo使用的传统方式有一些优势。

2、使用CWD

image.png

(六)配置文件

1、cuckoo主要使用的配置文件

cuckoo.conf:主要的配置文件,最主要的是machinery,用于指定我们使用的虚拟机配置文件,默认是virtualbox。该文件同样位于conf目录下,名字是virtualbox.conf。另外一个比较重要的配置项是[resultserver]的ip和port,用于指定接收分析结果的服务器。该地址必须能够让虚拟机访问到,一般设置为虚拟网卡的地址,比如前面说过的Host-only虚拟网卡vboxnet0的IP地址192.168.56.1(也可以自己改成其他的),端口默认即可;

auxiliary.conf:辅助组件配置模块,可以配置tcpdump/mitm/sniffer等;

memory.conf:内存分析配置模块,主要用来配置Volatility的行为;

processing.conf:核心处理组件配置文件,可以开启/关闭行为分析、缓冲区分析、内存分析、截屏、Snort、字符串提取、VirusTotal辅助分析等等功能;

<machinery>.conf:虚拟化配置文件,包括virtualbox/vmware/kvm/qume等。在实际的配置当中,根据自己使用的虚拟化环境,配置其中一个即可,同时,采用的这个配置文件也必须在cuckoo.conf的machinery字段指定。这里的配置选项都是针对特定虚拟化平台的,很多选项只适用于某些平台。前面我们用的是virtualbox.conf,其中mode指定virtualbox的运行模式,path指定VBoxManage的绝对路径,machines指定我们使用的虚拟机的名字(多个虚拟机需要用半角逗号隔开),platform指定虚拟客户机的系统类型,ip指定虚拟机的ip地址;

reporting.conf:报告生成模块的配置文件,用来开启jsondump或者HTML Report,还可以配置MongoDB存储分析结果(Web控制台会用到)。

2、配置cuckoo.conf

重要的参数:

[cuckoo]段的machinery:

[resultserver]段的ip和port:

[database]段的connection:

database默认为sqlite,根据需要指定数据库连接字符串。我们做测试使用默认即可。

3、配置auxiliary.conf

auxiliary模块是持续进行恶意样本分析的脚本,这个配置文件定义它们的选项。保持默认即可。

4、配置virtualbox.conf

需要修改的参数:

machines = cuckoo1 //值在virtualbox.conf中唯一即可,不必设置为虚拟机名称

image.png

5、配置memory.conf

要使用volatility,需要:

image.png

6、配置reporting.conf

[mongodb]

enabled = yes

7、其它配置文件保持默认即可。

(七)路由配置

1、为什么要允许虚拟机访问互联网

为了让恶意软件不对工作环境造成负面影响,并且虚拟机可以被分析者访问,应使虚拟机工作在host-only模式。但是这种网络模式无法满足正常的自动化恶意软件分析的要求,因为处于Host-only模式的虚拟机无法访问互联网,而很多恶意软件都需要访问网络才可以正常运行。所以还需要vboxnet0这块网卡具有代理上网的功能,使host-only网络中的虚拟机可以通过这块虚拟网卡访问互联网。如果要满足这个需求,需要在Ubuntu Host机上做两个操作:开启流量转发、用iptables做地址转换(NAT)规则。

2、host(kali linux)开启流量转发

vi /etc/sysctl.conf//编辑配置文件

net.ipv4.ip_forward=1

保存退出

sysctl -p /etc/sysctl.conf //使配置生效

3、host(kali linux)设置地址转换(NAT)规则

image.png

二、windows 7虚拟机配置为cuckoo沙箱

(一)创建虚拟机

1、在虚拟机中安装64位windows 7系统

安装过程略。

设置虚拟机工作在host-only网络模式:

2、虚拟机内设置固定IP地址

3、验证网络访问

由于在host中配置了IP转发和地址转换,因此在虚拟机内可以访问互联网。

(二)虚拟机中的软件安装

1、安装python和第三方库

下载安装2.7版本的python。安装后可能需要将python可执行文件的路径手工写入PATH环境变量。如果python 2.7安装在系统盘,使用下面的方法将可执行文件路径加入PATH:

系统属性—高级—环境变量—系统变量,选择path变量,点击“编辑”按钮。在原有内容之后加入下面的信息(注意使用分号作为分隔符):

image.png

image.png

pip install pillow //在线安装pillow,cuckoo用其在虚拟机中截图

2、安装应用软件

浏览器、PDF阅读器、office套件、7zip、JDK、VC2015运行库、dotnet框架等。

过程略。

3、部署cuckoo代理程序

cd $CWD/agent //host上的操作,查看agent目录中的文件

将agent.py文件拷贝到Win7虚拟机的系统开机启动目录中:

C:\Users\administrator\AppData\Roaming\MicroSoft\Windows\Start Menu\Programs\Startup\

把agent.py后缀改成agent.pyw,这样程序启动就不会有GUI窗口了。

重启一下,测试能否自动运行:

进程列表中存在pythonw.exe,说明代理程序已經运行了。

(三)虚拟机中的系统配置

1、启用administrator账户

windows 7系统安装时创建了一个账户,而administrator账户是禁用的。沙箱工作时应使用最高权限账户,避免应用程序因权限不足造成其恶意行为无法表达。

2、关闭windows功能

(1)禁用windows自动更新

(2)关闭windows防火墙

(3)关闭UAC

3、设置用户自动登录

control userpasswords2 //设置administrator用户自动登录

(四)拍摄虚拟机快照

接下来需要对配置好的客户机建立一个快照。每次Cuckoo调用客户机分析完一个恶意样本之后,会把虚拟机恢复到这个快照的状态。

保存系统快照的时候有一点需要注意:确保在系统正常运行、且agent.pyw无界面运行的时候,执行系统快照。

原文地址:https://www.freebuf.com/sectool/234251.html

上一篇:利用Cloudflare W...
下一篇:在Kali Linux上玩转...