Ubuntu恶意文件分析环境搭建--安装Cuckoo Sandbox记录

目录

0x01 基础信息

0x02 主机host操作

1.需要安装的依赖:

2.安装tcpdump并确认安装无误:

3.安装pydeep:

4.安装mongodb:

5.安装Volatility:

6.安装M2Crypto:

7.Host Os创建user

8.主机上安装cuckoo sandbox

9.Cuckoo文件配置阶段

10.安装虚拟机

0x03 客户机安装和配置

1.安装虚拟机:

2.客户机上安装python2.7环境,并安装常见软件

3.客户机配置网络

4.agent.py运行及snapshot的保存

0x04 Cuckoo运行注意

0x05 参考


0x01 基础信息

Linux(Ubuntu)中查看ubuntu版本命令如下:

cat /proc/version
ns3@stark:~$ cat /proc/version 
Linux version 4.15.0-50-generic (buildd@lcy01-amd64-013) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #54-Ubuntu SMP Mon May 6 18:46:08 UTC 2019

0x02 主机host操作

1.需要安装的依赖:

ns3@stark:~$ 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

2.安装tcpdump并确认安装无误:

#tcpdump执行需要使用root权限,可以使用下列指令使得其不使用root权限也可以执行
ns3@stark:~$ sudo setcap cap_net_raw,cap_net_admin=eip 
/usr/sbin/tcpdump 
#进行验证
ns3@stark:~$ getcap /usr/sbin/tcpdump 
/usr/sbin/tcpdump = cap_net_admin,cap_net_raw+eip

3.安装pydeep:

ns3@stark:~$ wget http://sourceforge.net/projects/ssdeep/files/ssdeep-2.13/ssdeep-2.13.tar.gz/download -O ssdeep-2.13.tar.gz 
ns3@stark:~$ tar -zxf ssdeep-2.13.tar.gz 
ns3@stark:~$ cd ssdeep-2.13 
ns3@stark:~/ssdeep-2.13$ ./configure 
ns3@stark:~/ssdeep-2.13$ make 
ns3@stark:~/ssdeep-2.13$ sudo make install
#确认安装无误
ns3@stark:~/ssdeep-2.13$ ssdeep -V 
2.13 
ns3@stark:~/ssdeep-2.13$ sudo pip install pydeep
ns3@stark:~/ssdeep-2.13$ pip show pydeep

4.安装mongodb:

用于使用Django的Web界面

sudo apt-get install -y mongodb

5.安装Volatility:

先安装依赖:

ns3@stark:~/ssdeep-2.13$ sudo pip install openpyxl 
ns3@stark:~/ssdeep-2.13$ sudo pip install ujson 
ns3@stark:~/ssdeep-2.13$ sudo pip install pycrypto 
ns3@stark:~/ssdeep-2.13$ sudo pip install distorm3 
ns3@stark:~/ssdeep-2.13$ sudo pip install pytz

然后安装Volatility:

ns3@stark:~$ git clone https://github.com/volatilityfoundation/volatility.git 
ns3@stark:~$ cd volatility 
ns3@stark:~/volatility$ python setup.py build 
ns3@stark:~/volatility$ python setup.py install

确认安装无误:

ns3@stark:~/volatility$ python vol.py -h 
Volatility Foundation Volatility Framework 2.6.1

6.安装M2Crypto:

ns3@stark:$ sudo pip install m2crypto == 0.24.0

7.Host Os创建user

这里直接将ns3加入vboxusers group,第一句无需执行

ns3@stark:~$ sudo adduser ns3 
ns3@stark:~$ sudo usermod -a -G vboxusers ns3

8.主机上安装cuckoo sandbox

在virtualenv安装cuckoo https://cuckoo.sh/docs/installation/host/installation.html

ns3@stark:~$ sudo apt install virtualenv 
ns3@stark:~$ virtualenv venv 
ns3@stark:~$ . venv/bin/activate (venv) 
ns3@stark:~$ pip install -U pip setuptools (venv) 
ns3@stark:~$ pip install -U cuckoo

 

进入:source venv/bin/activate 
退出:deactivate
# Places the CWD in /opt/cuckoo. Note that Cuckoo will normally create the CWD itself, but in order to create a directory in /opt root capabilities are usually required.
$ sudo mkdir /opt/cuckoo
$ sudo chown ns3:ns3 /opt/cuckoo 
$ cuckoo --cwd /opt/cuckoo
You could place this line in your .bashrc, for example.
$ export CUCKOO=/opt/cuckoo 
$ cuckoo

 

9.Cuckoo文件配置阶段

virtualbox.conf只需修改snapshot = snapshot1,其余默认。

reporting.conf

[jsondump] 
enabled = yes 
indent = 4 
calls = yes 
[mongodb] 
enabled = yes # no-->yes 
host = 127.0.0.1 
port = 27017 
db = cuckoo 
store_memdump = yes 
paginate = 100

此处报错

2019-08-05 09:51:16,664 [cuckoo] ERROR: The maximum number of open files is low (4096). If you do not increase it, you may run into errors later on. 2019-08-05 09:51:16,664 [cuckoo] ERROR: See also: https://cuckoo.sh/docs/faq/index.html#ioerror-errno-24-too-many-open-files

解决办法:https://easyengine.io/tutorials/linux/increase-open-files-limit/

再下载签名

ns3@stark:~$ . venv/bin/activate 
(venv) ns3@stark:~$ cuckoo --cwd /opt/cuckoo community
(venv) ns3@stark:~$

10.安装虚拟机

$ sudo apt-get install virtualbox

为了方便后续操作,安装VBoxManage:

ubuntu查看virtualbox版本:通过再次输入安装命令(箭头↑即可)

ns3@stark:~$ sudo apt-get install virtualbox 
[sudo] ns3 的密码: 
正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 virtualbox 已经是最新版 (5.2.18-dfsg-2~ubuntu18.04.5)。 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 618 个软件包未被升级。

通过版本5.2在网站上https://www.virtualbox.org/wiki/Download_Old_Builds_5_2发现virtualbox-5.2_5.2.18-124319_Ubuntu_bionic_amd64.deb

因此对应的扩展包为http://download.virtualbox.org/virtualbox/5.2.18/Oracle_VM_VirtualBox_Extension_Pack-5.2.18-124319.vbox-extpack

ns3@stark:~$ wget http://download.virtualbox.org/virtualbox/5.2.18/Oracle_VM_VirtualBox_Extension_Pack-5.2.18-124319.vbox-extpack
ns3@stark:~$ sudo VBoxManage extpack install ./Oracle_VM_VirtualBox_Extension_Pack-5.2.18-124319.vbox-extpack

0x03 客户机安装和配置

1.安装虚拟机:

在virtualbox上新建windows7客户机,命名为cuckoo1 客户机配置: 网络设置选择家庭网络或者工作网络,不要选择公用网络

关闭防火墙-----全部关闭

关闭自动更新

关闭UAC-----搜索uac,然后将方块移至到最下方即可

安装增强功能>设置共享文件夹-----便于后期将主机的agent.py共享到虚拟机

2.客户机上安装python2.7环境,并安装常见软件

pip install Pillow

在客户机上安装常用的软件:wps、qq、wechat、搜狗输入法、chrome浏览器

3.客户机配置网络

选择家庭网络或者工作网络

此时 客户机可以ping通主机,无法访问baidu

通过在主机上设置网络

随后设置hostonly网络:

创建vboxnet0 此处也可以通过图形界面进行设置(在virtualbox的全局设置>网络 中)

ns3@stark:~$ VBoxManage hostonlyif create 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Interface 'vboxnet0' was successfully created

客户机的网络适配器设置为如下

IP: 192.168.56.101
Subnet mask:255.255.255.0
Default gateway: 192.168.56.1
Prefered DNS server: 192.168.56.1

以下为在主机上配置

开启转发

ns3@stark:~$ sudo vim /etc/sysctl.conf 
#去掉net.ipv4.ip_forward=1前面的注释

使用iptables提供NAT机制(wlx14cf92055fba为网卡)

在配置iptables规则之前要先iptables -L看下有没有现有的防火墙规则,有的话可以sudo iptables -D删除

ns3@stark:~$ sudo iptables -A FORWARD -o wlx14cf92055fba -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT 
ns3@stark:~$ sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT ns3@stark:~$ sudo iptables -A POSTROUTING -t nat -j MASQeth0UERADE 
ns3@stark:~$ sudo iptables -t nat -A POSTROUTING -o wlx14cf92055fba -s 192.168.56.0/24 -j MASQUERADE

持久化配置

ns3@stark:~$ sudo iptables-save > /etc/iptables.rules

上面的命令会产生一个iptables.rules文件,此时再通过下面的命令

ns3@stark:~$ sudo vim /etc/network/interfaces 

打开之后在文件之后添加下面两条语句

pre-up iptables-restore < /etc/iptables.rules # 开机时启动iptables规则
post-down iptables-save > /etc/iptables.rules # 关机前保存当前所有的iptables规则

 

开启dns服务

ns3@stark:~$ sudo apt-get install -y dnsmasq 
ns3@stark:~$ sudo service dnsmasq start

此时的网络状态为主机可以ping通客户机,客户机可以ping通主机和百度。

因为主机不能上网[我之前配置的是可以上网的,但是不能上网也不影响这里的cuckoo的运行,如果有知道的朋友,可以告诉我一下,谢谢],因此没有采用这里的iptables持久化配置,选择了脚本每次开机执行配置iptables命令配置。

4.agent.py运行及snapshot的保存

通过共享文件夹将agent.py放在win7上,运行agent.py,并在此时拍摄快照,保存为snapshot1。

0x04 Cuckoo运行注意

之前在主机部分安装了Cuckoo,此时只需要分别在两个终端窗口执行以下命令,就可以在web界面[http://127.0.0.1:8000]上传样本进行分析。

ns3@stark:~$ . venv/bin/activate 
(venv) ns3@stark:~$ cuckoo --cwd /opt/cuckoo web
ns3@stark:~$ . venv/bin/activate 
(venv) ns3@stark:~$ cuckoo --cwd /opt/cuckoo -d

0x05 参考

https://cuckoo.sh/docs/ 

Cuckoo SandBox V2.0.4安装指南 

Cuckoo Installation | 0x90e's Blog

你可能感兴趣的:(计算机系统)