Ubuntu安装cuckoo布谷鸟沙箱详细步骤

cuckoo安装与配置

一、cuckoo主要功能

Cuckoo一种将未知、不可信的软件隔离执行的安全机制。恶意软件分析沙盒一般用来将不可信软件放在隔离环境中自动地动态执行,然后提取其运行过程中的进程行为、网络行为、文件行为等动态行为,安全研究员可以根据这些行为分析结果对恶意软件进行更深入地分析。Cuckoo是一款用Python编写的开源的自动化恶意软件分析系统,它的主要功能有:
• 跟踪记录恶意软件所有的调用状况;
• 恶意软件文件行为:恶意软件执行过程中创建新文件、修改文件、删除文件、读取文件或下载文件的行为;
• 获取恶意软件的内存镜像;
• 以 PCAP 格式记录恶意软件的网络流量;
• 获取恶意软件执行过程中的屏幕截图;
• 获取执行恶意软件的客户机的完整内存镜像

Cuckoo可以分析的文件类型包括但不限于:
• Windows 可执行文件
• DLL 文件
• PDF 文件
• MS Office 文件
• URL 和 HTML 文件
• PHP 脚本文件
• CPL 文件
• VB 脚本文件
• ZIP 压缩包
• JAR 文件
• Python 脚本文件
• APK 文件
• ELF 文件

二、电脑配置

物理机:win 10
虚拟机软件:VMware Workstation Pro 15x
安装布谷鸟沙盒的靶机:Ubuntu 16.4
布谷鸟中的靶机:win xp
这里提供msdn的zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_x14-80404.iso 镜像
迅雷链接:

ed2k://|file|zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_x14-80404.iso|630239232|CD0900AFA058ACB6345761969CBCBFF4|/

三、cuckoo安装

1)更换源

打开终端,输入命令:

sudo gedit /etc/apt/sources.list

将下列源复制粘贴进去。

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

然后输入命令sudo apt-get updatesudo apt-get upgrade,过程可能有点久。
出现设备锁问题,可以通过命令sudo rm /var/lib/apt/lists/lock解决此问题。
在这里插入图片描述

2)安装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

安装pydeep,可以现在物理机下载,在移至ubuntu中,下载网址为:http://sourceforge.net/projects/ssdeep/files/ssdeep-2.13/ssdeep-2.13.tar.gz/download -O ssdeep-2.13.tar.gz
或者在虚拟机终端使用命令下载:

sudo wget http://sourceforge.net/projects/ssdeep/files/ssdeep-2.13/ssdeep-2.13.tar.gz/download -O ssdeep-2.13.tar.gz 

下载完成,通过tar -zxvf ssdeep-2.13.tar.gz解压,进入ssdeep目录,然后执行命令:

sudo ./configure   、sudo make   、sudo make install

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
然后ssdeep -V查看是否安装成功,出现版本信息则为成功。
在这里插入图片描述
为防止之后出错,可以添加快照保留状态。虚拟机->快照->拍摄快照。
在这里插入图片描述

安装Volatility
由于2021.1之后pip的21.0版本也不再支持python2.7,而这里使用的是python2.7,所以不能安装pip21版本,要安装指定版本的pip。
sudo pip install –upgrade pip==20.1.1,若安装成功通过pip -V会显示版本信息。

sudo pip install openpyxl ujson pycrypto distorm3 pytz

在这里插入图片描述

git clone https://github.com/volatilityfoundation/volatility.git
cd volatility
sudo python setup.py build
sudo python setup.py install

确认volatility安装无误

python vol.py -h

之后会出现vol的版本,拍摄快照保存状态,防止后面出错。
在这里插入图片描述

开始安装cuckoo,先安装依赖

sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

在这里插入图片描述
之后pip安装,快照保存状态。

sudo pip install -U cuckoo 

在这里插入图片描述
这里发现报错了,根据报错内容,执行命令

pip install –ignore-installed dpkt

在这里插入图片描述
在ubuntu文件夹下按住ctrl+h查看是否有./cuckoo这个文件,没有的话执行下面语句
cd /home/usr/local/bin/,在这个目录下找到的。
在这里插入图片描述

python cuckoo

在这里插入图片描述

cd /home
cuckoo -d

在这里插入图片描述
这里出现错误,但不影响,只需在后面配置好文件即可。

3)guest客户机配置

安装virtualbox6.0

cat /etc/lsb-release
sudo gedit /etc/apt/sources.list

添加源

deb https://download.virtualbox.org/virtualbox/debian xenial contrib

在这里插入图片描述

添加公钥并更新

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update

在这里插入图片描述

安装

sudo apt-get install virtualbox-6.0

在这里插入图片描述
安装成功后,启动virtualbox,要用root权限启动,因为非root权限的virtualbox,对于cuckoo来说是无法进行监听的。
sudo virtualbox
在这里插入图片描述

这里会自动弹出一个窗口,点击新建虚拟机
在这里插入图片描述
名称最好改为“cuckoo1”这样方便之后的virtualbox.conf的修改,也方便之后cuckoo之后的启动,之后点击设置->存储->选择一个虚拟光盘文件,导入盘片(win xp的镜像),保存修改安装镜像。
在这里插入图片描述
然后启动
在这里插入图片描述

该过程与window xp安装一样,关闭自动更新和防火墙。
完毕之后设置网卡
在这里插入图片描述
设置虚拟机网络,点击编辑->虚拟网络编辑器,设置为NAT模式
在这里插入图片描述
Guest客户机网络如下:
在这里插入图片描述
Ubuntu网络设置
右上角点击设置->搜索 网络
在这里插入图片描述
点击选项,进行修改
在这里插入图片描述
配置完成,重启网络

sudo -i
sysctl -w net.ipv4.ip_forward=1
echo 1 > /proc/sys/net/ipv4/ip_forward
gedit /etc/sysctl.conf #去掉net.ipv4.ip_forward=1 前的#号,保存
sysctl -p /etc/sysctl.conf

配置iptables

iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT
 iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE
sudo gedit /etc/network/interfaces

添加

pre-up iptables-restore < /etc/iptables.rules 
post-down iptables-save > /etc/iptables.rules

指令在sudo情况下运行
终端输入sudo gedit /etc/resolv.conf
将nameserver 127.0.0.1 改为nameserver 114.114.114.114
下载安装python2和PIL

进行guest客户机配置
1.在Ubuntu环境中home下新建一个share文件夹, 将 .cuckoo/agent/agent.py复制进去,然后在share打开终端(sudo)下载python2.7和PIL,也可以在物理机下载在拖进虚拟机中
在这里插入图片描述

sudo wget https://www.python.org/ftp/python/2.7.13/python-2.7.13.msi
sudo wget http://effbot.org/media/downloads/PIL-1.1.7.win32-py2.7.exe

2.安装virtualbox增强功能,主要是为了能够在virtualbox中共享文件夹
在这里插入图片描述
一路安装,然后添加共享文件夹路径。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

改启动顺序
在这里插入图片描述

点击存储,查看盘片是否是新生成的磁盘,如果不是则手工移除win xp,选择新生成的盘片。
在这里插入图片描述

启动win xp虚拟机,点击我的电脑,发现多了一个网络驱动器,里面存在共享文件夹,先安装python2.7和PIL。
在这里插入图片描述

配置agent
把 agent.py 后缀改成 agent.pyw
将agent.pyw复制到C:\Python27\文件夹下,双击运行(是没有任何反应的)
打开cmd,输入netstat -an,查看本地8000端口是否在监听
如果8000端口正在监听,那说明此xp虚拟机就能被cuckoo所调用。
在这里生成virtualbox备份,点击控制->生成备份,名称叫snapshot1。(一定要先开启8000端口后再进行备份)
在这里插入图片描述
在这里插入图片描述

4)配置cuckoo

在 .cuckoo/conf/中修改配置文件:
cuckoo.conf:

machinery = virtualbox
[resultserver]
ip = 192.168.56.1 #This is the IP address of the host
port = 2042 #leave default unless you have services running

auxiliary.conf:

[sniffer]
enabled = yes
#Specify the path to your local installation of tcpdump. Make sure this
#path is correct.
tcpdump = /usr/sbin/tcpdump

virtualbox.conf:

machines = cuckoo1
[cuckoo1] 它默认写的是cuckoo1
label = cuckoo1
platform = windows
ip = 192.168.56.101 # IP address of the guest
snapshot = snapshot1
interface = vboxnet0

reporting.conf:

[mongodb]
enabled = yes

重启,重新打开终端输入sudo virtualbox,启动win xp并点击agent.pyw 保证其8000端口处于监听状态。
重点!!!在进行提交样本进行分析前,首先运行以下指令,解决tcpdump权限被拒绝
sudo apt-get install apparmor-utils
sudo aa-disable /usr/sbin/tcpdump
在这里插入图片描述
在这里插入图片描述
接着在home下打开(ctrl+H可以找到.cuckoo文件)

.cuckoo/analyzer/windows/modules/auxiliary/recentfiles.py

将使用SHGetKnownFolderPath函数的部分注释掉(注释符注意与r = 对齐)。
否则cuckoo查看分析日志时会报python的错误:
AttributeError: function ‘SHGetKnownFolderPath’ not found
注释代码如下:

	  '''
 r = SHELL32.SHGetKnownFolderPath(
     uuid.UUID(self.locations[location]).get_bytes_le(),
     0, None, ctypes.byref(dirpath)
 )
 if r:
     log.warning("Error obtaining user directory: 0x%08x", r)
     return

 # TODO We should free the memory with CoTaskMemFree().
 return dirpath.value
	  '''

打开终端输入sudo cuckoo -d
没有报错信息,则打开另一个终端输入

sudo cuckoo web runserver

在这里插入图片描述
出现此界面说明成功,在浏览器访问http://127.0.0.1:8000/进入即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值