Ubuntu18.04 安装 Cuckoo Sandbox (第二部分 安装沙盒)
0x00 初步查看虚拟机环境
依据cuckoo官网
首先,有必要先查看虚拟机此时的python版本,gcc版本
我们看到Ubuntu18.04本身支持的是python2.7版本,因此使用该虚拟机会比使用20版更加便利,cuckoo只支持python2.7版本,Ubuntu自带的python3
0x01 开始安装
- 安装相关的依赖包
sudo apt-get install python python-pip python-dev libffi-dev libssl-dev
sudo apt-get install python-virtualenv python-setuptools
sudo apt-get install libjpeg-dev zlib1g-dev swig
sudo apt-get install mongodb
sudo apt-get install postgresql libpq-dev
安装完成,以上依赖包展示如下图
- 配置virtualbox
echo deb http://download.virtualbox.org/virtualbox/debian xenial contrib | sudo tee -a /etc/apt/sources.list.d/virtualbox.list
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install virtualbox
正常安装不报错即可。
- 安装与配置tcpdump
允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包(维基百科)
sudo apt-get install tcpdump apparmor-utils
sudo aa-disable /usr/sbin/tcpdump
配置
sudo groupadd pcap
sudo usermod -a -G pcap cuckoo#这里cuckoo是你自己此时的用户名
sudo chgrp pcap /usr/sbin/tcpdump
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
检查是否成功配置
getcap /usr/sbin/tcpdump
- 安装m2crypto
sudo apt-get install swig
sudo pip install m2crypto
但是这里直接执行会发生报错,尝试多次都发生了报错
这里查看网上也有许多问题与解决方式,这里我考虑直接升级pip版本,通过pip3安装
sudo apt-get install python3-pip
sudo pip3 install m2crypto
此时安装成功。
- 安装guacd
可以不用安装
sudo apt install libguac-client-rdp0 libguac-client-vnc0 libguac-client-ssh0 guacd
安装正常即可
- 安装Cuckoo
sudo adduser cuckoo #创建一个新的用户专门用于进行相关操作,但是之后只要使用都要在该用户下,因此可以考虑使用自己当前的用户名
sudo usermod -a -G vboxusers cuckoo #使用VirtualBox
官网强烈建议,安装在虚拟环境
virtualenv venv
. venv/bin/activate
(venv)$ pip install -U pip setuptools
(venv)$ pip install -U cuckoo
安装cuckoo时间较长
测试是否正确安装cuckoo进行
(venv)$ cuckoo -d
0x02 VirtualBox安装win7
- 配置虚拟机Win7
直接打开VirtualBox,我们会发现此时没有win7 64位的系统,这里原因是因为没有开启VM虚拟化引擎。
至少应该开启其中的两个按钮如下图,
存在问题的原因:VM自带虚拟环境Hyper-C与Windows自带的相冲突
开启的方式,有以下几种,逐步尝试直到可以开始(不正规的配置可能导致虚拟机无法开启,或者主机蓝屏)为止:
我的主机是win11家庭版
- 打开“启用或关闭Windows系统”,关闭与虚拟相关的按钮,更改后需要重启
(该版本没有Hyper-C的选项,如果有一定要关闭)
- 打开“系统”,关闭“内核隔离”
- 以管理员身份运行cmd,通过指令>
bcdedit
观察 hypervisorlaunchtype 是否关闭
如果没有关闭,运行指令关闭
bcdedit /set hypervisorlaunchtype off
- 打开“服务”,不清楚有关Hyper的作用,直接全部禁用。
如果一直蓝屏或虚拟机无法挂起:可能是VM版本与Windows版本不适配,就比如至少VM版本要在16.2.0 之上
如果出现这种情况不要纠结了,直接软件更新吧,进行更新检验或者从相应国内镜像源下载合适版本的镜像。
配置好之后,自己为自己的Win7命名,然后记住了,之后可以直接默认通过,如果要设置可以按照:
内存1920M → 现在创建虚拟硬盘 → VDI → 动态分配 20G
在存储中点击,小光盘的标,将下载的Win7虚拟光盘文件导入,
然后将系统中,Boot Order改为光盘
然后可以打开Win7虚拟机,直接一路默认就好。
注意一定要关闭防火墙,自动更新与病毒防护等
- 关闭防火墙
- 关闭自动更新
- 进行网络配置
没有完全配置完成的时候,此时是空的,直接点击“创建”,就会自动创建ip位192.168.56.1的vboxnet0网卡,当然此时不需要开启DHCP服务器,因为之后手动启用,下图是我完成后的图,所以一开始DHCP服务器前面的勾不用勾选。
然后打开“Seting”中的“Network”,实现只链接主机
- 此时win7的网络配置是
查看网络配置的方法:
然后双击“TCP/IPv4”,即为所求
- 配置Ubuntu中的网络,打开seting,进入Network, wired
配置如下,
配置完成,关闭按钮再次开启,重新开始
但是每个人的默认网关可能不同,具体自己虚拟机是什么需要打开虚拟机网络编辑器,查看其中NAT模式对应的NAT设置中的默认网关配置
要怕出错也可以都改成一样的
配置好了之后,我们可以在Ubuntu网络设置中看到
然后,两边互相ping对方,发现可以成功
#Ubuntu ping 192.168.56.101
#Win7 ping 192.168.56.10
- 配置IP转发
(1) 开启IP转发
sudo -i
sysctl -w net.ipv4.ip_forward=1
echo 1 > /proc/sys/net/ipv4/ip_forward
#为使重启之后仍然有效
gedit /etc/sysctl.conf
打开文件后,将文件部分内容改为下图所示(去掉#)
#执行
sysctl -p /etc/sysctl.conf
(2) 配置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
此时Ubuntu主机无法联网,以至于之后要想在安东西有影响
暂时解决,关机则没
sudo gedit /etc/resolv.conf
将代理改为114.114.114.114
- 启动agent
Ubuntu中打开home文件夹,创建新文件夹share,同时home其中有.cuckoo文件(隐藏文件通过 ctrl+H 出现可以被看到),将.cuckoo/agent/agent.py移入share ,同时去网上下载python2.7安装包和PIL安装包
同时要想使用共享文件夹,得自己安装virtrualbox自带的增强功能
然后将Boot Order改成Hard Disk
同时在“内存”板块中,是
在“共享文件夹”板块中添加,自己新建的share
此时,你打开你的win7文件中是没有share文件夹的,
此时你需要点开该CD driver ,然后双击红框中内容,按默认安装即可
之后就可以把之前下载的python以及agent,PIL文件上传win7
按照顺序安装,先python,将agent与PIL放入python文件夹,然后执行PIL,都默认安装即可
在win7中打开cmd,netstat -an
此时监听端口没有8000,双击运行agent之后,再次netstat -an
此时存在8000端口在监听,证明win7可以被cuckoo调用,在此状态创建快照,并命名保存,要记住自己的快照命名。
- 配置cuckoo
打开.cuckoo/conf/
(1) 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
(2) auxiliary.conf:
[sniffer]
# Enable or disable the use of an external sniffer (tcpdump) [yes/no].
enabled = yes
# Specify the path to your local installation of tcpdump. Make sure this
# path is correct.
tcpdump = /usr/sbin/tcpdump
(3) virtualbox.conf:
machines = 你的虚拟机名字
[你的虚拟机名字]
label = 你的虚拟机名字
platform = windows
ip = 192.168.56.101 # IP address of the guest
snapshot = 你创建的快照名字
interface = vboxnet0
(4) reporting.conf:
[mongodb]
enabled = yes
(5) recentfiles.py:
注释掉部分内容
- 尝试
开启两个终端,并且进入虚拟环境,
终端一:
. venv/bin/activate
cuckoo -d
终端二:
. venv/bin/activate
cuckoo web runserver
通过浏览器打开链接,得到成功展示
感觉已经完全成功了吧,但是此时仍会出现问题,比如说,将二进制可执行文件上传之后,发现监控下的win7并没有执行该文件,同时行为分析一直是空的,该问题将在下一篇文章中给出解决方案。
未完待续
标签:Cuckoo,cuckoo,虚拟机,sudo,apt,install,沙盒,安装 From: https://www.cnblogs.com/XXS-uic9/p/18314705