cuckoo环境搭建从零开始(适合第一次搭建的小白)

cuckoo环境搭建从零开始(适合第一次搭建的小白)

  • 主要使用环境和工具
  • 主机搭建(Ubuntu)
    • 安装python
    • 安装MongoDB
    • 安装虚拟化软件
    • 安装tcpdump
    • 安装Volatility
    • 安装M2Crypto
    • 安装guacd
    • 安装Cuckoo
  • 客机搭建(windows 7)
    • 关闭防火墙、自动更新、UAC
    • 安装python 2.7
    • 安装PIL
    • agent.py设置开机自启动
    • 配置系统开机自动登录
    • 配置连接网络
    • 设置IP报文转发
    • 快照
    • 设置cuckoo配置文件
    • 启动cuckoo服务

主要使用环境和工具

主机:Ubuntu 16
客机:Windows 7
主要分为主机(host)和客机(guest)
下面我会按顺序来进行介绍,请按顺序进行配置。

主机搭建(Ubuntu)

安装python

cuckoo主要组件完全用python编写,需要安装python和一些软件包,但是他只支持python2.7

$ sudo apt-get install python python-pip python-dev libffi-dev libssl-dev
$ sudo apt-get install python-virtualenv python-setuptools
$ sudo apt-get install libjpeg-dev zlib1g-dev swig
$ sudo apt-get install -y libtiff5-dev libjpeg8-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

安装MongoDB

安装MongoDB是为了使用Django的web界面

$ sudo apt-get install mongodb

安装虚拟化软件

这里使用的是virtualbox,virtualbox最主要的作用是需要在里面搭建Windows 7虚拟机也就是客机。

$ echo deb http://download.virtualbox.org/virtualbox/debian xenial contrib | sudo tee -a /etc/apt/sources.list.d/virtualbox.list
$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install virtualbox-5.2

安装tcpdump

他的安装是为了转储恶意软件在执行过程中执行的网络活动

$ sudo apt-get install -y apparmor-utils
# 若使用预设的CWD目录(~/.cuckoo),則要禁用AppArmor对tcpdump的安全配置,否則AppArmor会阻止PCAP文件的创建
$ sudo aa-disable /usr/sbin/tcpdump
$ sudo apt-get install tcpdump
# tcpdump执行需要root权限,若不想让Cuckoo使用root权限執行,那么可以使用下列指令設定
$ 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
# 若沒有setcap指令,可以使用下列指令安裝
$ sudo apt-get install libcap2-bin

安装Volatility

cuckoo利用Volatility检查样本是否有使用逃避Cuckoo分析的rootkit技术

$ sudo apt-get install -y volatility

安装M2Crypto

M2Crypto仅在安装了SWIG后才支持该库。

$ sudo apt-get install swig

如果SWIG存在,则可以安装M2Crypt,首先使用以下方式

$ sudo pip install m2crypto==0.24.0

如果报错说 error: command ‘x86_64-linux-gnu-gcc’ failed with exit status 1,则尝试

sudo apt-get install python-dev  \
     build-essential libssl-dev libffi-dev \
     libxml2-dev libxslt1-dev zlib1g-dev \
     python-pip

如果依旧报相同的错误,则使用以下代码:

sudo apt install python2.7
python2.7 -m pip install M2Crypto

安装guacd

是可选择安装项,位CUCKOO web界面中的远程控制功能提供RDP,VNC和SSH的转换层

$ sudo apt install libguac-client-rdp0 libguac-client-vnc0 libguac-client-ssh0 guacd

安装Cuckoo

创建一个新用户

$ sudo adduser cuckoo

确保新用户属于“vboxusers”组

$ sudo usermod -a -G vboxusers cuckoo

安装cuckoo
建议在virtualenv中安装

$ virtualenv venv
$ . venv/bin/activate
(venv)$ pip install -U pip setuptools
(venv)$ pip install -U cuckoo

安装完成后先不要启动,需要提高文件限制。
参考Increase “Open Files Limit”进行操作
需要注意:在第一项增加用户权限中,如果你不是用root身份进行安装,要添加自己用户名的权限,把**改成自己的用户名,或者直接增加两行自己用户名。如果所要更改的文件无法修改,则切换使用root权限进行修改。

现在可以在venv中运行cuckoo 了。

cuckoo -d

成功界面如下:
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第1张图片
检查是否生成CWD文件 ,文件路径: /home/username(你的用户名)/.cuckoo/agent/agent.py 如果username下没有出现.cuckoo文件,因为它是隐藏文件可以使用快捷键ctrl+H显示隐藏文件。

客机搭建(windows 7)

下面介绍客机Windows 7。首先要在Ubuntu的vitrualbox中创建一个虚拟机,设定为windows 7 64位操作系统。

关闭防火墙、自动更新、UAC

具体关闭教程比较好找,百度以下全是
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第2张图片
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第3张图片
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第4张图片

安装python 2.7

在windows 7中在官网中找到python2.7安装包进行安装,一直下一步就可以。完成后配置环境变量:
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第5张图片
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第6张图片
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第7张图片
添加python的安装路径,路径前一定要加分号。
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第8张图片
点击开始按钮输入cmd.在控制台测试python是否安装成功。输入python
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第9张图片

安装PIL

此功能用于截屏,cuckoo生成报告中会有windows 7的截图。
首先进到C:\Python27\Scripts路径下,在此路径下安装pillow。

>cd C:\Python27\Scripts
>pip install Pillow
Collecting Pillow
  Downloading Pillow-4.3.0-cp27-cp27m-win32.whl (1.3MB
    100% |################################| 1.3MB 114k
Collecting olefile (from Pillow)
  Downloading olefile-0.44.zip (74kB)
    100% |################################| 81kB 145kB
Installing collected packages: olefile, Pillow
  Running setup.py install for olefile ... done
Successfully installed Pillow-4.3.0 olefile-0.44

agent.py设置开机自启动

这时我们前面寻找的cuckoo中生成的CWD文件就起作用了。把前面主机中找到的agent.py文件上传到windows 7中,建议用send anywhere比较快速。把上传成功的agent.py文件放进C:\Users[USER]\AppData\Roaming\MicroSoft\Windows\Start Menu\Programs\Startup\ 下,并把后缀名改为.pyw。其中users是指用户名。

配置系统开机自动登录

使用Administrator权限启动cmd,并依序在cmd中输入以下指令
[USERNAME]和[PASSWORD]需替换为登入的Windows user与对应的password

>reg add "hklm\software\Microsoft\Windows NT\CurrentVersion\WinLogon" /v DefaultUserName /d [USERNAME] /t REG_SZ /f
>reg add "hklm\software\Microsoft\Windows NT\CurrentVersion\WinLogon" /v DefaultPassword /d [PASSWORD] /t REG_SZ /f
>reg add "hklm\software\Microsoft\Windows NT\CurrentVersion\WinLogon" /v AutoAdminLogon /d 1 /t REG_SZ /f
>reg add "hklm\system\CurrentControlSet\Control\TerminalServer" /v AllowRemoteRPC /d 0x01 /t REG_DWORD /f
>reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v LocalAccountTokenFilterPolicy /d 0x01 /t REG_DWORD /f

配置连接网络

在virtualbox中添加一块网卡,管理——主机网络管理器,按照下面信息进行设置。
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第10张图片
设置windows 7网络,设置为Host-Only。界面名称为刚刚设置的网卡。
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第11张图片
进入Windows 7 系统,设置win7 ip网络
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第12张图片
检查是否配置成功,主机和客机是否能通信。
主机中操作

$ ping 192.168.56.101

客机中操作

>ping 192.168.56.1

显示如下图形式,则表示成功
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第13张图片

设置IP报文转发

这是在Ubuntu中的操作,因为win7无法上网,所以要通过主机才能访问网络,所以需要以下操作;
流量转发服务:

$ sudo vim /etc/sysctl.conf
net.ipv4.ip_forward=1

再运行:

sudo sysctl -p /etc/systl.conf

使用iptables提供NAT机制
注意:其中eth0为Ubuntu中的网卡名称,需要提前查看自己Ubuntu中的网卡名称然后修改eth0

$ 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
$ sudo iptables -A POSTROUTING -t nat -j MASQUERADE
$ sudo vim /etc/network/interfaces
# 於文件最後新增下列兩行
pre-up iptables-restore < /etc/iptables.rules # 開機時啓動iptables規則
post-down iptables-save > /etc/iptables.rules # 關機前保存當前所有的iptables的規則

执行:

sudo apt-get install iptables=persistent
sudo netfilter-persistent save

DNS服务

$ sudo apt-get install -y dnsmasq
$ sudo service dnsmasq start

在win7中查看是否有网络

ping www.baidu.com

快照

并要保证agent.py文件时运行状态,可以在cmd控制台启动,成功后对win7进行快照 名字取为snapshot

设置cuckoo配置文件

现在我们再次转到Ubuntu中
conf档案放置在Ubuntu中得CWD/conf中,预设在~/.cuckoo/conf
配置virtualbox.conf

$ vim virtualbox.conf
machines = cuckoo1 # 指定VirtualBox中Geust OS的虛擬機名稱
[cuckoo1] # 對應machines
label = cuckoo1  .
platform = windows
ip = 192.168.56.101 # 指定VirtualBox中Geust OS的IP位置
snapshot =snapshot

配置reporting.conf

$ vim reporting.conf
[jsondump]
enabled = yes # no -> yes
indent = 4
calls = yes
[singlefile]
# Enable creation of report.html and/or report.pdf?
enabled = yes # no -> yes
# Enable creation of report.html?
html = yes # no -> yes
# Enable creation of report.pdf?
pdf = yes # no -> yes
[mongodb]
enabled = yes # no -> yes
host = 127.0.0.1
port = 27017
db = cuckoo
store_memdump = yes 
paginate = 100

配置cuckoo.conf

version_check = no
machinery = virtualbox
memory_dump = yes
[resultserver]
ip = 192.168.56.1
port = 2042

启动cuckoo服务

进入venv中,输入命令启动cuckoo服务:

cuckoo

启动成功后,另外开出一个控制台,启动cuckoo web服务

cuckoo web

启动成功后,会给出一个网站,用浏览器进行打开:
cuckoo环境搭建从零开始(适合第一次搭建的小白)_第14张图片
上传文件就可以进行分析了。在分析之前首先要确认win7是否是关闭状态。到底cuckoo就此配置完毕。

你可能感兴趣的:(恶意软件检查)