ubuntu18.04 + Cuckoo v2.0.7搭建过程

操作系统:Ubuntu18.04 TLS

虚拟机:virtualbox + win7_64镜像

  • 更换源

自带的源不太稳定,所以更换为国内的源,如阿里源。操作如下:
$ sudo gedit /etc/apt/sources.list
直接替换即可,百度即可找到很多相关博文。当然,最好将原文件做一个备份。
删除缓存:
$ sudo rm -vfr /var/lib/apt/lists/*
更新:
$ apt-get update
$ apt-get upgrade

  • 安装基本的依赖包

$ 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

  • 安装数据库

MongoDB用于存储样本分析结果,与web前端关联。
$ sudo apt-get install mongodb
Mysql用于储存Cuckoo运行状况。
$ sudo apt-get install mysql-server mysql-client libmysqlclient-dev
注意:在最新版的mysql安装过程中,不会再提示手动设置root用户的密码,则需要用命令设置root初始密码:

$ sudo mysql_secure_installation

然后按照提示一步一步来即可。
另外, root连接需要sudo命令,否则会出现以下结果

$ mysql -uroot -p

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

解决方法:

$ sudo mysql -u root

 

mysql> USE mysql;

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';

mysql> FLUSH PRIVILEGES;

mysql> exit;

 

$ service mysql restart

 

  • 安装Cuckoo

Cuckoo推荐在虚拟环境中安装。virtualenv是一个创建隔绝的Python环境的工具,在之前的步骤中已经安装上了。

$ virtualenv venv

$ . venv/bin/activate

(venv)$ pip install -U pip setuptools

(venv)$ pip install -U cuckoo


然后就会自动下载所需的各种包。在使用的过程中,如果提示某python模块缺失,可以再单独安装,但注意需要在虚拟环境中进行安装。
安装完成后,Cuckoo相关文件的存放路径为:
非root身份:/home/[username]/.cuckoo/
或,root身份:/root/.cuckoo/
这个路径称为CWD,后续的配置文件都修改在这个路径下的。

  • Tcpdump

Host机需要可以嗅探网络数据包,需要安装tcpdump ,如本机没有,则执行以下命令安装:

$ sudo apt-get install tcpdump apparmor-utils

$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

  • Setcap

如果系统里没有setcap命令,则需要安装libpcap包
$ sudo apt-get install libcap2-bin

  • yara

$ sudo apt-get install yara

$ sudo apt-get install python-yara

(venv)$ pip install yara   //我装了之后运行cuckoo时会报yara相关错误,所以没装,如果像我一样报错的可以移除yara试试

  • volatility

如果需要启用内存镜像分析,需要安装volatility:
apt-get install volatility

  • 社区签名库

虚拟环境下,运行以下命令下载Cuckoo提供的社区版行为签名库:
(venv)# cuckoo community

由于网络慢,可能不会成功。

 

客户机安装

  1. 操作系统
    Windows7 x64
  2. 虚拟机软件,本文选择virtualbox
    $ sudo wget https://download.virtualbox.org/virtualbox/5.2.18/virtualbox-5.2_5.2.18-124319~Ubuntu~xenial_amd64.deb
    $ sudo dpkg -i virtualbox-5.2_5.2.18-124319-Ubuntu~xenial_amd64.deb
    按照上面操作,我安装总是失败,我是按照下面操作成功的
    $sudo apt remove virtualbox virtualbox-*
    $sudo apt-get install virtualbox
  3. 虚拟机安装
    自行准备一个win7系统镜像,然后在VirtualBox中创建一个新的虚拟机,基本设置保持默认即可。
     
  4. 网络配置

给Windows虚拟机启用NAT+桥接方式两个网卡。

NAT是网络地址转换模拟IP,其实没有真正的IP,所以主机ping不通,但可以联网也能ping通主机;再加一个桥接配置和主机一个网段的IP即可互ping

  1. 客户机配置
  • 安装python环境
  • 安装PIL、Pillow
  • 安装一些软件,如office、Adobe Reader、Firefox等
  • 如果需要开启共享文件夹或拖拽、粘贴功能,注意要首先安装增强功能。
  • 客户端
    将CWD/agent/agent.py文件拷贝到客户机里。我们需要这个文件能开机自启动,做法如下:
    把agent.py文件放到系统开机启动目录中,在Win7中默认的路径是C:\Users[username]\AppData\Roaming\MicroSoft\Windows\Start Menu\Programs\Startup\。
    如果想要agent运行时没有GUI窗口,可以将后缀名改为pyw。
    在任务管理器中查看进程,或在命令行中执行netstat -an查看是否有8000端口的监听,来确定agent是否在运行。
  • 关闭Windows防火墙、自动更新、UAC。
  • 客户机快照
    Cuckoo每次分析都会从一个快照恢复客户机,所以要在以上配置完成后,确定agent在运行的情况下进行快照,然后将客户机休眠(不是关机)。

 

Cuckoo配置

  1. 配置文件路径  CWD/conf/   
  • cuckoo.conf

[database]

connection = mysql://username:passwd@localhost:port/[数据库名称]

[cuckoo]

version_check = no //每次启动都要检查更新很费时间,可以选择关闭

machinery = virtualbox

process_results = yes //有教程建议修改为no,这样会导致启动Cuckoo Sandbox需要多一个步骤,但会让主模块与处理报告的模块分离,大幅提升稳定性,避免各种意外发生。但是我没有找到这样做以后报告如何生成,所以维持了yes。

  • auxillary.conf

[sniffer]

enabled = yes

tcpdump = /usr/sbin/tcpdump

  • virtualbox.conf

如果虚拟机软件用的是vmware就是vmware.conf。

[virtualbox]

mode = gui //有界面,调试的时候可以选择

或 mode = headless //无界面

path = /usr/bin/vboxmanage

interface = vboxnet0

machines = cuckoo1 //你的虚拟机名称

controlports = 5000-5050

 

[windows7]

label = cuckoo1 //你的虚拟机名称,需要与machines一致

platform = windows

ip = 192.168.56.101 //虚拟机IP

snapshot = snapshot1 //创建的快照名称

  • reporting.conf

[mongodb]

enabled = yes  //默认是no

host = 127.0.0.1

port = 27017

db = cuckoo //数据集名称

store_memdump = yes

paginate = 100

  • processing.conf

用于开启/关闭某些分析模块。本文没有做修改。

其他
Cuckoo对TcpDump的调用做了一层封装,对应的文件在[Python安装目录]Libsite-packages⧵cuckoo⧵auxiliary⧵sniffer.py,这个python脚本负责调用TcpDump并对其输出进行解析,由于Linux和Windows默认的换行符不同,所以我们需要对这个解析代码进行微调:

for line in err.split("rn"):

  if not line continue or line.startswith(err_whitelist_start):

    continue

// “r”为我们添加的内容

Cuckoo启动

Cuckoo的启动和VirtualBox需要在同一用户角色下,一般来说都是非root用户。但由于显示问题,本文的VirtualBox只能再root下启动,故均在root下启动。

  • 启动虚拟环境
    # . venv/bin/activate
  • 启动Cuckoo
    (venv)# cuckoo 或 cuckoo –d
  • 启动web
    (venv)# cuckoo web
    然后就可以通过http://localhost:8000访问了。

(venv)# cuckoo web runserver 0.0.0.0:port
也可以通过ip访问 http://host ip:port


可以通过web提交样本、查看报告,也可以通过命令行。
分析结果的储存路径为:
CWD/storage/analyses

 

题外话:

  • 第一次安装时,使用win10支持的linux子系统安装,发现无法配置virtualbox/vmware…于是卒,有些资料说可以我没成功,不知道怎么操作
  • 在只有一个windows系统的情况下,在虚拟机里装ubuntu,然后再ubuntu里装virtualbox+win7, 搭建也可以成功,操作同本文的操作
  • 如果想要远程连接ubuntu主机,可以安装xrdp,参考https://blog.csdn.net/fancyboyhou/article/details/105170696,不过我在win10上使用mstsc是连接不了的,用vnc viewer可以成功远程…不清楚具体原因
  • 运行以后遇到文件数目超过上限的,参考下面链接进行修改https://blog.csdn.net/Sepuer/article/details/93645014

参考资料:

https://www.jianshu.com/p/ac009f6c2710

https://cuckoo.sh/docs/installation/index.html

https://blog.csdn.net/qq_34256060/article/details/100035979

 

你可能感兴趣的:(ubuntu18.04 + Cuckoo v2.0.7搭建过程)