安装Cuckoo布谷鸟沙箱
前言
找了好久,发现没有安装cuckoo的安装教程,要不就是版本太老,无法正常安装,所以综合实验了一下,自己写一篇以供大家使用。
本次主要使用的是Ubuntu20.04版本,更加稳定,22以及24版本尝试之后发现,很多需要的组件无法兼容,所以推荐20.04版本,使用镜像源为aliyun,自行更换。
一、前期工作
1.安装curl
sudo apt-get install curl
2.配置Python环境进行配置
这里使用python2.7版本,对于各组件安装存在硬性要求,很多组件无法使用python3或者更高版本进行安装
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -O
sudo apt get install python
sudo python get-pip.py
sudo apt-get install -y python-dev libffi-dev libssl-dev libfuzzy-dev libtool flex autoconf libjansson-dev git
3.安装Python工具
sudo apt-get install -y python-setuptools
4. 安装libjpeg和接口工具
sudo apt-get install -y libjpeg-dev zlib1g-dev swig
5.安装mongodb
Cuckoo支持的数据库
sudo apt-get install -y mongodb
6.运行PostgreSQL
sudo apt-get install -y postgresql libpq-dev
半路会出红,但是没事,不用管
7.安装Virtualbox
虚拟机中需要嵌套虚拟机,进行cuckoo的动态扫描(你也不想你的Ubuntu被撤职吧)
重要的话放在前面,确保你虚拟机的虚拟化打开了(把那个该死的蓝色小勾打上)
OK,开始安装(我知道这一步一定会有人骂我说怎么不在开头说,哈哈哈哈哈)
sudo apt-get install virtualbox
8.最恶心的步骤安装Cuckoo工作的全部插件
此处一定要划线,用Python2.7,用Python2.7,用Python2,要不然会出大问题
(1)安装volatile
cd 到Downloads下进行安装,如果说你可以连接到github,网速非常nb的话,直接就是运行
git clone https://github.com/volatilityfoundation/volatility.git
但是如果不行的话,我建议打开这个网站下载好之后,传到你的Ubuntu里面去,更方便
然后cd到volatile文件夹里面,开始运行
cd volatility
sudo python setup.py build
sudo python setup.py install #安装
、
回到下载目录
(2)安装Distorm3
sudo -H pip install distorm3==3.4.4
(3)安装Yara规则,用于输出静态特征值
sudo -H pip install yara-python==3.6.3
(4)安装ssdeep
sudo apt-get install -y ssdeep
(5)安装pydeep
sudo -H pip install pydeep
(6)安装openpyxl
sudo -H pip install openpyxl
(7)安装ujson
sudo -H pip install ujson
(8)恶心的一步,安装jupyter
sudo -H pip install jupyter
OK,如果你没有像我一样爆红,那么恭喜,直接下一步,如果,同上了,那么给出解决方法,单独安装需要的包,因为需要给出具体的安装包版本,所以很恶心,我也是问了deepseek。
pip install ipwidgets==7.7.1
然后再运行一遍安装jupyter的命令,发现OK了
(9)安装TCPDUMP启动数据包捕获
sudo apt-get install tcpdump
sudo apt-get install libcap2-bin
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
getcap /usr/sbin/tcpdump
(10)安装禁用apparmor
sudo apt-get install -y apparmor-utils
sudo aa-disable /usr/sbin/tcpdump
(11)OK安装cuckoo sandbox
pip install -U pip setuptools
sudo -H pip install -U cuckoo
这个安装比较时间久,可以去搞杯咖啡喝一喝
(12)下载完成后,为cuckoo创建目录
cd 到Desktop
cd /Desktop
mkdir cuckoo
二、网络部分 设置virtualbox环境
(1)安装网络工具
sudo apt install -y net-tools
(2)然后ifconfig查看一下IP地址
(3)创建一个网络适配器
vboxmanage hostonlyif create
(4)再次运行ifocnfig,检查一下(有了)
(5)进行一些配置,避免在重启之后无法使用
sudo mkdir /opt/systemd/
sudo nano /opt/systemd/vboxhostonly
#并将以下代码复制到文件中:
!/bin/bash hostonlyif create vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
cd /opt/systemd/
sudo chmod a+x vboxhostonly
sudo touch /etc/systemd/system/vboxhostonlynic.service
sudo nano /etc/systemd/system/vboxhostonlynic.service
#输入
Description=Setup VirtualBox Hostonly Adapter
After=vboxdrv.service
[Service]
Type=oneshot ExecStart=/opt/systemd/vboxhostonly
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable vboxhostonlynic.service
OK,网络部分完成
三、Windows虚拟机配置
(1)windows虚拟机推荐win7,前往系统之家下载镜像,拖入到你的虚拟机中即可
然后再virtualbox的步骤下进行创建,按照个人喜好配置内存即可。
(2)开始修改虚拟机配置,是虚拟机暴露在攻击范围内
Win +R ,输入gpedit.msc打开编辑器策略
(3)计算机配置”>“Windows设置”>“安全设置”>“本地策略”>“安全选项“>"用户账户控制选项"
(4)右键单击“用户帐户控制:管理员审批模式下管理员的提升提示行为”,然后选择“属性”。使用下拉菜单选择“不提示,直接提升”,然后单击“确定”。
(5)右键单击“用户帐户控制:检测应用程序安装并提示提升”,然后选择属性。选中“禁用”选项,然后单击“确定”。
(6)右键单击“用户帐户控制:以管理员批准模式运行所有管理员”,然后选择属性。选中“禁用”选项,然后单击“确定”。
(7)然后禁用Windows更新的自动安装。转到“计算机配置”>“管理模板”>“Windows组件”>“Windows更新”,然后右键单击“配置自动更新和编辑”。选择Enabled,2-通知下载并通知安装。
(8)然后需要从网络中删除Windows保护。转到“计算机配置”>“管理模板”>“网络”>“网络连接”>“Windows防火墙”>“域配置文件”>“Windows防火墙”,然后将“保护所有网络连接”更改为“禁用”。
(9)然后需要禁用Windows Defender,因为不需要防病毒或恶意软件保护。转到“计算机配置”>“管理模板”>“Windows组件”>“Windows Defender Antivirus”来完成此操作,然后将“关闭Windows Defender Antivirus”设置为“已启用”。
(10)开始设置共享文件夹
在virtualbox中设置->共享文件夹->固定分配
之后选择设备中的安装增强功能
安装后打开文件管理器,出现了可移动存储的设备,点击后一路安装即可,这里没截图
完成安装后->打开设置->存储,查看是否出现了VBox,出现后更改系统主板的启动顺序,将硬盘提升到第一位
(11)Python配置
这里设置共享文件夹的主要目的就是为了Python配置
使用和Ubuntu虚拟机上面的python2版本一致,在Ubuntu使用python –V查到python的版本为2.7.18。
进入Python Release Python 2.7.18 | Python.org中下载python-2.7.18.msi。通过共享文件夹传到win7里,直接点击msi安装即可。
安装完成后配置环境变量,在“Path”变量添加:;C:\Python27
安装并且更新pip
python -m pip install --upgrade pip
同时安装python pillow(PIL),用于cuckoo截图
python -m pip install pillow
(12)从Ubuntu虚拟机中上传agent.py文件到win虚拟机中
agent.py文件在Ubuntu虚拟机的~/.cuckoo/agent目录中找到
cp -v ~/.cuckoo/agent/agent.py /root/share
ls -l /root/share/agent.py
通过共享文件夹复制到win虚拟机。
复制agent.py到win虚拟机的目录:bash C:\Users\[username]\AppData\Roaming \Microsoft\Windows\Start Menu\Programs\Startup
,由此保证在启动虚拟机的时候就可以启动agent.py,可将.py后缀名改为.pyw(该步骤能使agent运行时没有GUI窗口)。
若出现网络弹出窗口,则单击“允许”。重启后最小化win虚拟机 。
(13)设置win网络创建沙盒环境
在Oracle VM VirtualBox管理器中,单击win虚拟机的设置。选择网络,然后更改附加到:仅主机适配器,并在名称中选择vboxnet0,点击确定。(这一步在win7关机状态下进行)
sudo apt-get install -y iptables-persistent
保存配置时选是
(14)注入规则
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 -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -L
输入代码,继续编辑规则
echo 1 | sudo tee -a /proc/sys/net/ipv4/ip_forward
sudo sysctl -w net.ipv4.ip_forward=1
sudo nano /etc/sysctl.conf
把#从net.ipv4.ip_forward=1项移除
运行sudo su -
,然后运行iptables-save > /etc/iptables/rules.v4
(15)配置Win7虚拟机的IP地址
打开win虚拟机的网络适配器并设置:
1、配置两个网卡,首先要关闭win7虚拟机,然后打开虚拟机设置,选“网络”,网卡1的连接方式为仅主机网络,界面名称为vboxnet0;网卡2的连接方式为NAT。
禁用DHCP。在Oracle VM VirtualBox管理器中点击“工具”,首先创建网络,然后选中网络,点击vboxnet0,将会出现DHCP服务器。取消“启动服务器”的选择。
(16)配置Win7虚拟机内部IP地址
完成后,拍摄win虚拟机快照,命名为snapshot1
(17)修改Ubuntu的网络配置
这里要注意在哪一个上设置,要不然容易走弯路
一定是配置1,其他的不用动,要不然后期无法联网,出大问题。
(18)在Ubuntu上完成cuckoo服务的配置
所有cuckoo配置文件都位于~/.cuckoo/conf或您的主目录cd .cuckoo/目录中。
cd ~/.cuckoo/conf
sudo nano cuckoo.conf
#确保设置了以下内容:
version_check = no
machine=virtualbox
memory_dump=yes
[resultserver]
ip=192.168.56.1
port=2042
sudo nano auxiliary.conf
#确保设置了以下内容:
[sniffer]
enabled=yes
tcpdump = /usr/sbin/tcpdump
sudo nano virtualbox.conf
#确保设置了以下内容
[virtualbox]
machines=cuckoo1
[cuckoo1]
label=cuckoo1
platform=windows
ip=192.168.56.101
snapshot=snapshot1
interface=vboxnet0
sudo nano processing.conf
#确保设置了以下内容
[memory]
enabled=yes
sudo nano memory.conf
#确保设置了以下内容:
[basic]
guest_profile=WinXPSP2x86
sudo nano reporting.conf
确保设置了以下内容:
[singlefile](需要确保启用report.html)
enabled=yes
[mongodb]
enabled = yes
host = 127.0.0.1
port = 27017
db = cuckoo
username = cuckoo
password = YOUR_PASSWORD
关闭win7虚拟机,然后重新启动Ubuntu虚拟机。
(19)创建mongodb数据库
mongodb
db.createrUser({})
use cuckoo
db.createUser({user:"cuckoo",pwd:"1234567",roles:[ { role: "readWrite", db: "cuckoo" } ]})
否则后面启动时无法识别到数据库
(19)修改windows虚拟机名称为cuckoo1,方便查询,避免麻烦
四、Cuckoo使用
1.更新cuckoo签名
这块需要你的网络能够访问到github
可以打开watt tookit,能够加速访问github
cuckoo community
2.启动虚拟机
然后打开Oracle VM VirtualBox管理器,启动cuckoo1虚拟机。登录win7虚拟机后,显示空白命令窗口,再最小化虚拟机。
在Ubuntu虚拟机中,终端窗口1中输入cuckoo
,这样就能启动cuckoo,它将坐在等待分析任务。
这里的爆红问题不大,只是无法访问到官网。
注意,以下的所有操作都是在普通用户下进行,不能在root状态下进行。
cuckoo
3.再开启一个终端
cuckoo web runserver 0.0.0.0:8000
访问cuckoo网络服务器,或者通过浏览器访问本地网络上的虚拟机IP地址。最后呈现在面前的就是cuckoo sandbox
OK,可以使用了。
步骤比较麻烦,所以只给那些打算自己搞的,我后期会把我自己的虚拟机进行打包。