说明

本文主要参考:Ubuntu20.04系统Cuckoo sandbox所需环境搭建及安装(超详细图文)
Cuckoo SandBox官网:Cuckoo link

在做网络安全的小伙伴们安装Cuckoo SandBox的时候肯定发现了,大部分的文章都基于ubuntu14,然而到现在ubuntu已经更新到ubuntu20,很多基于ubuntu14的依赖已经不在支持。起初我也采用的ubuntu14,踩了一堆坑后果断放弃,决定采用ubuntu20,安装方法也是采用官网提供的pip安装

天坑1: 系统架构

这里我自己的电脑是坑b的arm架构的mac(不是说不好用,就是坑b的virtual box不支持arm架构),所以安装了两天,最后报错报给我arm架构不支持。。。

建议小伙伴们在准备安装前保证自己的设备不是arm!

天坑2: python2.7

我们在Cuckoo SandBox官网的说明文档中可以看到在这里插入图片描述
这个鬼东西居然不支持python3,但是ubuntu20默认python版本为3.8,显然直接不能用的,所以要先准备python2.7和python2.7下的pip2.7

python2.7安装

python2.7安装相对容易,apt还支持2.7版本的安装

sudo apt-get install -y python

pip2.7安装

狗血的地方来了,ubuntu20 下的apt没有pip2.7的源了,所以pip2.7要手动下载,可以使用下面命令下载get-pip.py文件用python执行安装

wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
sudo python get-pip.py

然而我这里wget一直下载不下来,感觉是这个网站的问题,要是有同样问题的同学,可以用浏览器到这个网站下把get-pip.py这个文件在下来,然后再cd到下载目录下,再用python执行

python2.7和pip2.7在安装过程中不报错基本就安装成功了,但是这里我又遇到一个坑:我的pip安装整个都没问题,就是安装后的pip连接不上pypi安装不了东西,所以在执行后面的教程前,先执行下面代码简单测试下

sudo pip install pygame

这个命令下载不用让它下载完,只要可以正常连接下载,出现下载进度后直接ctrl+c停止掉就可以了,没必要完全给pygame安装下来

天坑3: Cuckoo依赖安装

不管是官方文档还是上面给的教程链接,不难发现Cuckoo的安装需要很多依赖包(很不理解Cuckoo就不能给个安装程序自动下载这些依赖吗)。我在安装前也查到一些自动化安装依赖的程序,不过都在CSDN收费里,你懂的。。。(个人很不喜欢这样没有开源精神),这里我用python简单写了个程序,自动下载安装依赖,我随便写的,大家可以凑合着用,比较粗糙请见谅。。。

import os

def install_packages():
    os.system("sudo apt-get install -y python-dev libffi-dev libssl-dev libfuzzy-dev libtool flex autoconf libjansson-dev git")
    os.system("sudo apt-get install -y python-setuptools")
    os.system("sudo apt-get install -y libjpeg-dev zlib1g-dev swig")
    os.system("sudo apt-get install -y mongodb")
    os.system("sudo apt-get install -y postgresql libpq-dev")
    os.system("sudo apt-get install -y virtualbox")
    os.system("cd ~/Downloads")
    os.system("git clone https://github.com/volatilityfoundation/volatility.git ")
    os.system("cd volatility")
    os.system("sudo python setup.py build")
    os.system("sudo python setup.py install")
    os.system("cd ..")
    os.system("sudo -H pip install distorm3==3.4.4")
    os.system("sudo -H pip install yara-python==3.6.3")
    os.system("sudo apt-get install -y ssdeep")
    os.system("sudo -H pip install pydeep")
    os.system("sudo -H pip install openpyxl")
    os.system("sudo -H pip install ujson")
    os.system("sudo -H pip install jupyter")
    os.system("sudo apt-get install -y tcpdump")
    os.system("sudo apt-get install -y libcap2-bin")
    os.system("sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump")
    os.system("getcap /usr/sbin/tcpdump")
    os.system("sudo apt-get install -y apparmor-utils")
    os.system("sudo aa-disable /usr/sbin/tcpdump")
    os.system("pip install -U pip setuptools")
    os.system("sudo -H pip --default-timeout=3600 install -U cuckoo")

if __name__ == '__main__':
    install_packages()

上方代码在使用时直接复制到一个后缀为.py的文件里,然后在该文件目录下执行下面命令。同时建议在执行这个文件的时候不要进入root,那样的话程序里的 cd ~/Downloads可能会找不到文件夹

sudo python xxx.py  # xxx.py为该文件

自动安装时间会很长,而且中间可能会出错,建议这个文件多执行几次确认依赖都安装好了,并且注意一下输出有没有什么异常(某个依赖安装失败,这个程序是可以继续执行的,可以注意下输出内容有没有安装成功)。

可能这里我遇到最多的问题就是pip搞着搞着就连接不到pypi了,这里也是很离谱了,细心的同学可能也注意到这个自动安装文件里最后一个pip安装cuckoo的时候我设置了默认timeout为1小时,这里可以看出我有多无奈了。。。大家可以按着我这里这样的方法解决,或者参考这篇文章pip换源去换源

我遇到问题最多的就是最后一条安装Cuckoo的命令,如果执行了几次上面的自动安装文件之后发现总卡在安装Cuckoo的的时候,就直接多运行几次下面的命令(前提确保前面那些依赖都没问题)

sudo -H pip --default-timeout=300 install -U cuckoo

到这里如果一切顺利的话Cuckoo和Virtual box(Cuckoo 官方推荐的虚拟机软件)的安装就完成了。

剩下关于Cuckoo的配置上的坑还没整理,大家可以先参考上面链接的文章以及官方文档。Cuckoo相关配置和使用教程是真的少,等我踩完坑继续更新吧

Logo

开源、云原生的融合云平台

更多推荐