参考链接:
(1)【主要参考】http://www.wityx.com/post/134851_1_1.html
(2)【主要参考】在Ubuntu18.04上搭建Cuckoo Sandbox2.0.7
https://www.jianshu.com/p/4dd6373fa206
(3)与Cuckoo的斗智斗勇(一)Cuckoo安装
https://www.freesion.com/article/1986890860/
(4)Cuckoo安装过程初学者
https://blog.csdn.net/qq_34970891/article/details/121899436
(5)dell笔记本安装Ubuntu20.04双系统+cuckoo布谷鸟沙箱
https://blog.csdn.net/m0_46687377/article/details/122047047
安装步骤
第1步:安装Ubuntu20.04,重命名
重命名为Ubuntu2023
在安装的时候,有可能会因为分辨率比较小(一般是800*600),底部的按钮无法显示所以影响选择,解决办法有:
(1)点击右上角的电源按钮,在系统设置中调整显示的分辨率后,继续安装。
(2)按win键+鼠标左键,鼠标图标改变时拖动窗口;有些电脑按的是alt+F7键。
(3)按tab键直接一步步往下选择,但可能会看不见部分选项。
参考链接:https://blog.csdn.net/weixin_50321412/article/details/123678017
安装成功后,进入“软件和更新”,修改下载源的服务器。
确保你的Ubuntu已经完全更新
sudo apt-get update && sudo apt-get upgrade –y
第2步:输入密码以sudo root身份运行命令。
如果出现提示,请选择y继续。更新和升级完成后,将返回终端提示符。
sudo su root
第3步:让一个单独的用户来运行沙盒是一种很好的安全习惯。
现在创建用户:
sudo adduser cuckoo
为新用户选择密码123456。按要求在字段中输入用户信息。或者可以只留下空白,然后按回车键。按Y确认输入的信息。这将返回到终端提示符。
将该用户添加到sudo组。输入
sudo adduser cuckoo sudo
下面均是安装cuckoo的准备环境。
第4步:安装python。
需要安装curl,键入
sudo apt-get install curl
需要下载get python pip命令,所以键入
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -O
获取get-pip.py
需要安装python,同时安装pip,所以键入
sudo apt-get install python
sudo python get-pip.py
第5步:安装VirtualBox和cuckoo所需的先决条件
sudo apt-get install -y python-dev libffi-dev libssl-dev libfuzzy-dev libtool flex autoconf libjansson-dev git
第6步:需要安装Python支持工具
sudo apt-get install -y python-setuptools
第7步:安装jpeg和接口支持工具
sudo apt-get install -y libjpeg-dev zlib1g-dev swig
第8步:安装mongodb
sudo apt-get install -y mongodb
cuckoo推荐的数据库是PostgreSQL,所以运行
sudo apt-get install -y postgresql libpq-dev
第9步:安装VirtualBox。
安装的是virtualbox 6.1,所以键入
sudo apt-get install -y virtualbox
第10步:下载并安装cuckoo工作所需的所有插件。
通过键入cd Downloads/或当前不在主目录中键入~/Downloads来切换到下载文件夹
第11步:安装volatile
git clone https://github.com/volatilityfoundation/volatility.git
然后切换目录
cd volatility
构建它,键入
sudo python setup.py build
安装
sudo python setup.py install
然后回到下载目录
cd ..
第12步:安装Distorm3
sudo -H pip install distorm3==3.4.4
第13步:安装Yara
sudo -H pip install yara-python==3.6.3
第14步:安装ssdeep
sudo apt-get install -y ssdeep
输入ssdeep -V
来验证它的安装,目前版本应该是2.14.1版本。
第15步:安装pydeep
sudo -H pip install pydeep
键入pip show pydeep来检查它是否已安装
第16步:安装openpyxl
sudo -H pip install openpyxl
第17步:安装ujson
sudo -H pip install ujson
第18步:安装jupyter
sudo -H pip install jupyter
第19步:安装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
第20步:需要安装和禁用apparmor,
因为它通过保护应用程序来保护Ubuntu操作系统,我们希望TCP Dump能够正确运行
sudo apt-get install -y apparmor-utils
然后输入
sudo aa-disable /usr/sbin/tcpdump
第21步:终于可以安装cuckoo sandbox,
键入
pip install -U pip setuptools
可能会说已经满足了要求。
第22步:安装cuckoo
sudo -H pip install -U cuckoo
为cuckoo创建默认目录
mkdir cuckoo
第23步:设置virtualbox环境。
需要安装网络工具
sudo apt install -y net-tools
键入ifconfig以查找虚拟机的IP地址信息
ifconfig
创建一个只支持主机的网络适配器
vboxmanage hostonlyif create
为虚拟接口设置IP地址
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
再次运行ifconfig,看到刚刚设置的接口和IP地址
要使这些更改在重新启动后仍然有效,并在系统启动期间自动设置。所以需要建立一个新的目录
sudo mkdir /opt/systemd/
然后
sudo nano /opt/systemd/vboxhostonly
并将以下代码复制到文件中:
!/bin/bash
hostonlyif create
vboxmanage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1
然后Ctrl+X退出,Y保存,enter写入文件。
需要使文件可执行
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
然后Ctrl+X退出,Y保存,enter写入文件。
安装服务并确保它在引导时加载
systemctl daemon-reload
systemctl enable vboxhostonlynic.service
至此网络部分完成。
第24步:下载win7的32位iso镜像,
注意iso镜像要小于4G,否则在运行的时候可能会崩溃
msdn下载链接:
(1)Windows 7 Ultimate with Service Pack 1 (x86) - DVD (Chinese-Simplified)
文件:cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso
大小:2.47GB
SHA1:B92119F5B732ECE1C0850EDA30134536E18CCCE7
【ED2K】
ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/
【BT】
magnet:?xt=urn:btih:585DF592DE43A067C75CFE5A639B41FC3F24DA6F&dn=cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso&xl=2653276160
(2)Windows 7 Professional with Service Pack 1 (x86) - DVD (Chinese-Simplified)
文件:cn_windows_7_professional_with_sp1_x86_dvd_u_677162.iso
大小:2.47GB
SHA1:7BB512B6AF82632D6B080C1E9C3C10CD0C738F0E
【ED2K】
ed2k://|file|cn_windows_7_professional_with_sp1_x86_dvd_u_677162.iso|2653276160|08F65018BD9B5BC8D77C1C7C5615A329|/
首先复制iso镜像到虚拟机硬盘上,事先要开启虚拟机的共享文件夹功能。
cp /mnt/hgfs/VMWareIOS/[ghost_win7].iso /home/[username]
建议多下几个win7镜像,有些标注是x86的镜像其实是64位。也就是在VBox是无法打开虚拟机的。
【补充】msdn上面的镜像可以用,推荐使用cn_windows_7_professional这一个。
第25步:在virtualbox中创建一个win7虚拟机。
若虚拟机无法打开,且报错误: VT-x is not available (VERR_VMX_NO_VMX),Component(组件):ConsoleWrap。
原因应该是VMware在虚拟机配置中还要单独虚拟化VT-x,即应勾选“虚拟化Intel VT-x/EPT或AMD-V/RVI”。VT-x是intel运用Virtualization虚拟化技术中的一个指令集。参考链接:https://blog.csdn.net/Jianxin_YU/article/details/123979315
然后就可以打开win虚拟机。等待win7专业版系统安装,要关注虚拟机网络状态。
第26步:修改win虚拟机的配置,以使虚拟机故意易受攻击。
直接win+r键打开,输入gpedit.msc打开“编辑组策略”选项。
展开“计算机配置”>“Windows设置”>“安全设置”>“本地策略”>“安全选项”。向下滚动到用户帐户控制选项。
进行下列操作:
(1)右键单击“用户帐户控制:管理员审批模式下管理员的提升提示行为”,然后选择“属性”。使用下拉菜单选择“不提示,直接提升”,然后单击“确定”。
(2)右键单击“用户帐户控制:检测应用程序安装并提示提升”,然后选择属性。选中“禁用”选项,然后单击“确定”。
(3)右键单击“用户帐户控制:以管理员批准模式运行所有管理员”,然后选择属性。选中“禁用”选项,然后单击“确定”。
然后禁用Windows更新的自动安装。转到“计算机配置”>“管理模板”>“Windows组件”>“Windows更新”,然后右键单击“配置自动更新和编辑”。选择Enabled,2-Notify for download and Notify for install(2-通知下载并通知安装),然后单击ok。
然后需要从网络中删除Windows保护。转到“计算机配置”>“管理模板”>“网络”>“网络连接”>“Windows防火墙”>“域配置文件”>“Windows防火墙”,然后将“保护所有网络连接”更改为“禁用”。
然后需要禁用Windows Defender,因为不需要防病毒或恶意软件保护。转到“计算机配置”>“管理模板”>“Windows组件”>“Windows Defender Antivirus”来完成此操作,然后将“关闭Windows Defender Antivirus”设置为“已启用”。
第27步:设置共享文件夹。
参考链接:https://blog.csdn.net/Znanxuan/article/details/127737315
首先在Ubuntu中设置即将共享的文件夹。
mkdir /home/[username]/vbox-share
然后设置共享文件夹的配置。选择共享文件夹路径,选择自动挂载,选择固定分配(长期有效,若是临时分配则只是次有效)。
需要安装virtualbox增强包。
最终在“计算机”下看到共享文件夹。
第28步:在win虚拟机上安装python2.7
注意:最好和Ubuntu虚拟机上面的python2版本一致,在Ubuntu使用python –V查到python的版本为2.7.18。
进入https://www.python.org/downloads/release/python-2718/中下载python-2.7.18.msi。直接点击msi安装即可。
但此时在cmd中输入python --version
会提示找不到该命令,这意味着还需要配置环境变量。
在“Path”变量添加:;C:\Python27
再次在cmd输入python --version
或python -V
。
安装或更新pip。
python -m pip install --upgrade pip
若cmd仍然报错“pip不是内部或外部命令,也不是可运行的程序或批处理文件”,则需要在环境变量-系统变量-Path变量中添加;C:\Python27\Scripts
。参考链接:https://blog.csdn.net/Viwise/article/details/123706423
同时搜索和该python版本匹配的python pillow(PIL),pillow库是用于cuckoo截图。参考链接:https://pillow.readthedocs.io/en/latest/installation.html,其中与Python2.7匹配的pillow版本为2-6.2.2,pillow7或以上支持Python3.5或以上。
第29步:安装Adobe Reader、Flash、Java和以及可能需要的任何其他应用程序。
打开Internet Explorer和Adobe Reader以及任何其他可能有可能干扰cuckoo客户端操作的闪屏的应用程序。
第30步:从Ubuntu虚拟机上传agent.py文件到win虚拟机。
agent.py在Ubuntu虚拟机的~/.cuckoo/agent目录中找到。但有可能在/home/[username]上面没有找到.cuckoo文件夹,解决办法:https://blog.csdn.net/c_programj/article/details/117587971。
输入cd /usr/local/bin
,发现里面有cuckoo.py可执行文件
输入python cuckoo
输入cd ~
回到目录(即/home/[username]),输入ll
查看是否有.cuckoo文件夹。
输入cuckoo -d
,明显现在cuckoo配置仍有问题。
agent.py在Ubuntu虚拟机的~/.cuckoo/agent目录中找到。通过共享文件夹复制到win虚拟机。
cp ~/.cuckoo/agent/agent.py /home/[username]/vbox-share
复制agent.py到win虚拟机的目录:bash C:\Users\[username]\AppData\Roaming \Microsoft\Windows\Start Menu\Programs\Startup
,由此保证在启动虚拟机的时候就可以启动agent.py,可将.py后缀名改为.pyw(该步骤能使agent运行时没有GUI窗口)。
在win7虚拟机上,需要显示隐藏的文件和文件夹才能看到AppData文件夹,通过进入“文件资源管理器”->“组织”->“文件夹选项”来完成操作。
成功安装所有必需的软件后,重新启动win7虚拟机并登录,此时应该出现一个空白的命令窗口。若出现网络弹出窗口,则单击“允许”。重启后最小化win虚拟机。
第31步:设置win虚拟机的网络来创建沙盒环境。
在Oracle VM VirtualBox管理器中,单击win虚拟机的设置。选择网络,然后更改附加到:仅主机适配器,并在名称中选择vboxnet0,点击确定。
第32步:持久化第31步中的网络配置。
sudo apt-get install -y iptables-persistent
当提示保存当前配置时,选择“是”。
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项移除,然后Ctrl+X退出,Y保存,enter写入文件。
运行sudo su -
,然后运行iptables-save > /etc/iptables/rules.v4
第33步:需要配置Windows7虚拟机的IP地址信息。
打开win虚拟机的网络适配器并设置:
(1)配置两个网卡,首先要关闭win7虚拟机,然后打开虚拟机设置,选“网络”,网卡1的连接方式为仅主机网络,界面名称为vboxnet0;网卡2的连接方式为NAT。NAT适配器用于Internet访问时;Cuckoo使用Host-Only适配器与win虚拟机内的代理进行通信。
(2)禁用DHCP。在Oracle VM VirtualBox管理器中点击“工具”,选中网络,点击vboxnet0,将会出现DHCP服务器。取消“启动服务器”的选择。
完成上述步骤后,可以拍摄win虚拟机的快照,将其命名为snapshot1。
第34步:修改Ubuntu网络配置。在“设置”-“网络”-“以太网”-“IPv4”中设置。
第35步:在Ubuntu上完成cuckoo服务的配置。
所有cuckoo配置文件都位于~/.cuckoo/conf
或您的主目录cd .cuckoo/
目录中。
(1)切换到config目录。
cd ~/.buckoo/conf
(2)
sudo nano cuckoo.conf
确保设置了以下内容:
version_check = no
machine=virtualbox
memory_dump=yes
[resultserver]
ip=192.168.56.1
port=2042
然后Ctrl+X退出,Y保存,enter写入文件。
(3)
sudo nano auxiliary.conf
确保设置了以下内容:
[sniffer]
enabled=yes
tcpdump = /usr/sbin/tcpdump
然后Ctrl+X退出,Y保存,enter写入文件。
(4)
sudo nano virtualbox.conf
确保设置了以下内容:
[virtualbox]
machines=cuckoo1
[cuckoo1]
label=cuckoo1
platform=windows
ip=192.168.56.101
snapshot=snapshot1
interface=vboxnet0
然后Ctrl+X退出,Y保存,enter写入文件。
(5)
sudo nano processing.conf
确保设置了以下内容:
[memory]
enabled=yes
然后Ctrl+X退出,Y保存,enter写入文件。
(6)
sudo nano memory.conf
确保设置了以下内容:
[basic]
guest_profile=WinXPSP2x86
然后Ctrl+X退出,Y保存,enter写入文件。一般不需要修改。如果需要另一个操作系统,那么通过运行vol.py --info | grep profiles -A48
,以获得受支持配置文件的完整列表。
(7)
sudo nano reporting.conf
确保设置了以下内容:
[singlefile](需要确保启用report.html)
enabled=yes
[mongodb]
enabled=yes
然后Ctrl+X退出,Y保存,enter写入文件。
(8)关闭win7虚拟机,然后重新启动Ubuntu虚拟机。以同一用户身份重新登录(不要以cuckoo用户身份登录)。
第36步:使用cuckoo。
首先需要更新cuckoo的签名,在终端输入cuckoo community
然后打开Oracle VM VirtualBox管理器,启动cuckoo1虚拟机。登录win7虚拟机后,显示空白命令窗口,再最小化虚拟机。
第37步:在Ubuntu虚拟机中,终端窗口1中输入cuckoo
,这样就能启动cuckoo,它将坐在等待分析任务。
在Ubuntu虚拟机中,终端窗口2中输入cuckoo web runserver 0.0.0.0:8000
第38步:通过127.0.0.1:8000
访问cuckoo网络服务器,或者通过浏览器访问本地网络上的虚拟机IP地址。最后呈现在面前的就是cuckoo sandbox,它们在cuckoo conf文件中有更多的设置,可以将MISP和其他服务直接连接到它。
至此,cuckoo安装完成。在使用cuckoo的时候,记得关注Dashboard里面的硬盘/内存容量,该删dmp等文件的时候就要删除!