前言:
沙盒(Sanbox)是一种将未知、不可信的软件隔离执行的安全机制。恶意软件分析沙盒一般用来将不可信软件放在隔离环境中自动地动态执行,然后提取其运行过程中的进程行为、网络行为、文件行为等动态行为,安全研究员可以根据这些行为分析结果对恶意软件进行更深入地分析。
课程有一份用cuckoo sandbox监控恶意程序的任务,趁这个机会记录一下我自己的安装过程。(报了许多错,是真的费劲啊= =)
本文参考链接:
Ubuntu20.04系统Cuckoo sandbox所需环境搭建及安装(超详细图文)_cuckoosandbox-CSDN博客
在Virtual Box中安装Windows7 64位虚拟机系统_vb虚拟机按装window 7 64-CSDN博客
https://blog.csdn.net/Znanxuan/article/details/127737315
https://pillow.readthedocs.io/en/latest/installation.html
https://blog.csdn.net/c_programj/article/details/117587971。
【杂】虚拟机下ubuntu无法访问github_ubuntu无法范文github-CSDN博客
CuckooCriticalError:请更新您的配置。无法关闭“cuckoo1”或找到处于正确状态的计算机:虚拟机“cuckoo1”不存在!请创建一个或多个 Cuckoo 分析虚拟机,并正确填写 Cuckoo 配置! ·问题 #2345 ·布谷鸟沙盒/布谷鸟 ·GitHub上
1、换源
换的是清华源
2、安装curl
我这里已经安装过了
输入指令sudo apt-get install curl
3、配置Python环境
安装pyhton2.7与pip
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
然后安装Python支持工具sudo apt-get install -y python-setuptools
现在我们将安装jpeg和接口支持工具
sudo apt-get install -y libjpeg-dev zlib1g-dev swig
4、安装mongodb
sudo apt-get install -y mongodb
cuckoo推荐的数据库是PostgreSQL,所以运行
sudo apt-get install -y postgresql libpq-dev
这里会爆红,先不管
5、安装VirtualBox
安装virtualbox 6.1
sudo apt-get install virtualbox
6、下载并安装cuckoo工作所需的所有插件
(1)初始化
先cd Downloads/
切换到下载文件夹,然后安装volatile
git clone https://github.com/volatilityfoundation/volatility.git
出现此问题
解决方法:重置代理
git config --global --unset https.https://github.com.proxy
git config --global --unset http.https://github.com.proxy
按理来说是可以的,但是又出现新错误
在网上一番查找后,无论是换源,浅层克隆,换ssl等方法均不行(真的试了很久..),可能是校园网太垃圾了吧。。没办法,去github下的源码。然后解压下来再进行下面的步骤。
(2)构建volatile
cd volatility
sudo python setup.py build
安装sudo python setup.py install
然后回到下载目录
(3)安装Distorm3
sudo -H pip install distorm3==3.4.4
(4)安装Yara
sudo -H pip install yara-python==3.6.3
(5)安装ssdeep
sudo apt-get install -y ssdeep
输入ssdeep -V
来验证它的安装,目前版本应该是2.14.1版本
(6)安装pydeep
sudo -H pip install pydeep
键入pip show pydeep来检查它是否已安装!
(7)安装openpyxl
sudo -H pip install openpyxl
(8)安装ujson
sudo -H pip install ujson
(9)安装jupyter
sudo -H pip install jupyter
(10)安装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
(11)需要安装和禁用apparmor
因为它通过保护应用程序来保护Ubuntu操作系统,我们希望TCP Dump能够正确运行
sudo apt-get install -y apparmor-utils
然后输入
sudo aa-disable /usr/sbin/tcpdump
7、安装cuckoo sandbox
键入pip install -U pip setuptools
报错:
Python版本问题,切换到2.7即可
再次输入,得到正确回显
键入sudo -H pip install -U cuckoo
又报错了。。
看着确实是2.7没错啊
求助gpt
从错误信息可以看出,Cuckoo目前仅支持Python 2,因此无法在Python 3环境下安装。你需要使用Python 2来安装它。以下是一些步骤来解决这个问题:
-
检查是否已安装Python 2: 运行以下命令,检查Python 2是否已经安装在系统中:
python2 --version
-
安装Python 2(如果未安装): 根据你的操作系统,安装Python 2。例如,在Ubuntu上,可以使用以下命令:
sudo apt-get update sudo apt-get install python2
-
安装pip2: 确保你有适用于Python 2的pip版本。可以通过以下命令安装:
sudo apt-get install python-pip
或者,如果你已经有Python 2,可以使用
get-pip.py
脚本来安装pip2:curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py sudo python2 get-pip.py
-
使用pip2安装Cuckoo: 使用pip2来安装Cuckoo,而不是pip3:
sudo -H pip2 install -U cuckoo
通过上述步骤,你应该能够在Python 2环境下成功安装Cuckoo。
gpt真神!
为cuckoo创建目录
mkdir cuckoo
8、设置virtualbox环境
安装网络工具sudo apt install -y net-tools
键入ifconfig以查找虚拟机的IP地址信息
创建一个只支持主机的网络适配器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
网络部分完成
9、Windows虚拟机配置
(1)下载32位win7镜像,去官网找即可。
然后在virtualbox按步骤创建一个虚拟机,可以参考这篇在Virtual Box中安装Windows7 64位虚拟机系统_vb虚拟机按装window 7 64-CSDN博客。其实32位的也差不多。
如果出现下面这种错误
在虚拟机设置里打开虚拟化intel VT这个选项即可(注意只有先关机才能勾选)
如图所示
(2)修改win虚拟机的配置,以使虚拟机故意易受攻击。
直接win+r键打开,输入gpedit.msc打开“编辑组策略”选项。
展开“计算机配置”>“Windows设置”>“安全设置”>“本地策略”>“安全选项”。向下滚动到用户帐户控制选项。
进行下列操作:
右键单击“用户帐户控制:管理员审批模式下管理员的提升提示行为”,然后选择“属性”。使用下拉菜单选择“不提示,直接提升”,然后单击“确定”。
右键单击“用户帐户控制:检测应用程序安装并提示提升”,然后选择属性。选中“禁用”选项,然后单击“确定”。
右键单击“用户帐户控制:以管理员批准模式运行所有管理员”,然后选择属性。选中“禁用”选项,然后单击“确定”。
然后禁用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”设置为“已启用”。
(3)设置共享文件夹
参考链接:https://blog.csdn.net/Znanxuan/article/details/127737315
这部分忘截图了,最终结果如下
(4)Python配置
注意:最好和Ubuntu虚拟机上面的python2版本一致,在Ubuntu使用python –V查到python的版本为2.7.18。
进入https://www.python.org/downloads/release/python-2718/中下载python-2.7.18.msi。通过共享文件夹传到win7里,直接点击msi安装即可。
安装完成后配置环境变量,在“Path”变量添加:;C:\Python27
安装或更新pip。
$python -m pip install --upgrade pip$
同时搜索和该python版本匹配的python pillow(PIL),pillow库是用于cuckoo截图。参考链接:https://pillow.readthedocs.io/en/latest/installation.html,其中与Python2.7匹配的pillow版本为2-6.2.2,pillow7或以上支持Python3.5或以上
(5)安装Adobe Reader、Flash、Java和以及可能需要的任何其他应用程序。
有需求的自行安装
(6)从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
可以发现现在有cuckoo文件夹了
可以发现配置仍有问题
agent.py在Ubuntu虚拟机的~/.cuckoo/agent目录中找到。通过共享文件夹复制到win虚拟机。
复制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虚拟机。
(7)设置win网络来创建沙盒环境
在Oracle VM VirtualBox管理器中,单击win虚拟机的设置。选择网络,然后更改附加到:仅主机适配器,并在名称中选择vboxnet0,点击确定。
然后持久化这个设置
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
(8)配置Windows7虚拟机的ip地址信息
打开win虚拟机的网络适配器并设置:
1、配置两个网卡,首先要关闭win7虚拟机,然后打开虚拟机设置,选“网络”,网卡1的连接方式为仅主机网络,界面名称为vboxnet0;网卡2的连接方式为NAT。NAT适配器用于Internet访问时;Cuckoo使用Host-Only适配器与win虚拟机内的代理进行通信。
2、禁用DHCP。在Oracle VM VirtualBox管理器中点击“工具”,选中网络,点击vboxnet0,将会出现DHCP服务器。取消“启动服务器”的选择。
完成上述步骤后,可以拍摄win虚拟机的快照,将其命名为snapshot1。
(9)修改Ubuntu网络配置。在“设置”-“网络”-“以太网”-“IPv4”中设置。
(10)在Ubuntu上完成cuckoo服务的配置。
所有cuckoo配置文件都位于~/.cuckoo/conf
或您的主目录cd .cuckoo/
目录中。
1、切换到config目录。
cd ~/.cuckoo/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
4、sudo nano virtualbox.conf
确保设置了以下内容
[virtualbox]
machines=cuckoo1
[cuckoo1]
label=cuckoo1
platform=windows
ip=192.168.56.101
snapshot=snapshot1
interface=vboxnet0 5、
sudo nano processing.conf确保设置了以下内容
[memory]
enabled=yes 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`
8、关闭win7虚拟机,然后重新启动Ubuntu虚拟机。以同一用户身份重新登录(不要以cuckoo用户身份登录)。
10、使用cuckoo
首先需要更新cuckoo的签名,在终端输入cuckoo community
报错了,连不上github
ping一下发现正常,但是却进不去
解决方法:【杂】虚拟机下ubuntu无法访问github_ubuntu无法范文github-CSDN博客
成功了
然后打开Oracle VM VirtualBox管理器,启动cuckoo1虚拟机。登录win7虚拟机后,显示空白命令窗口,再最小化虚拟机。
在Ubuntu虚拟机中,终端窗口1中输入cuckoo
,这样就能启动cuckoo,它将坐在等待分析任务。
意料之中,又报错了
CuckooCriticalError: Please update your configuration. Unable to shut 'cuckoo1' down or find the machine in its proper state: The virtual machine 'cuckoo1' doesn't exist! Please create one or more Cuckoo analysis VMs and properly fill out the Cuckoo configuration!
上网查询说是权限问题,要切到root
然后又报错
查找资料
CuckooCriticalError:请更新您的配置。无法关闭“cuckoo1”或找到处于正确状态的计算机:虚拟机“cuckoo1”不存在!请创建一个或多个 Cuckoo 分析虚拟机,并正确填写 Cuckoo 配置! ·问题 #2345 ·布谷鸟沙盒/布谷鸟 ·GitHub上
又告诉我应该在用户态运行,结果再次运行成功了,,不知道为什么。。
ps:后来知道了,是网络ip地址没改,中间改了一次网络ip地址
在Ubuntu虚拟机中,终端窗口2中输入cuckoo web runserver 0.0.0.0:8000
通过127.0.0.1:8000
访问cuckoo网络服务器,或者通过浏览器访问本地网络上的虚拟机IP地址。最后呈现在面前的就是cuckoo sandbox,它们在cuckoo conf文件中有更多的设置,可以将MISP和其他服务直接连接到它。
至此,cuckoo安装完成。在使用cuckoo的时候,记得关注Dashboard里面的硬盘/内存容量,该删dmp等文件的时候就要删除!