Fork me on GitHub

Ubuntu18.04 安装 Cuckoo Sandbox (第二部分 安装沙盒)

Ubuntu18.04 安装 Cuckoo Sandbox (第二部分 安装沙盒)

0x00 初步查看虚拟机环境

依据cuckoo官网

首先,有必要先查看虚拟机此时的python版本,gcc版本

我们看到Ubuntu18.04本身支持的是python2.7版本,因此使用该虚拟机会比使用20版更加便利,cuckoo只支持python2.7版本,Ubuntu自带的python3

0x01 开始安装

  1. 安装相关的依赖包
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

安装完成,以上依赖包展示如下图

  1. 配置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

正常安装不报错即可。

  1. 安装与配置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

  1. 安装m2crypto
sudo apt-get install swig
sudo pip install m2crypto

但是这里直接执行会发生报错,尝试多次都发生了报错

这里查看网上也有许多问题与解决方式,这里我考虑直接升级pip版本,通过pip3安装

sudo apt-get install python3-pip
sudo pip3 install m2crypto

此时安装成功。

  1. 安装guacd

可以不用安装

sudo apt install libguac-client-rdp0 libguac-client-vnc0 libguac-client-ssh0 guacd

安装正常即可

  1. 安装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

  1. 配置虚拟机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虚拟机,直接一路默认就好。

注意一定要关闭防火墙,自动更新与病毒防护等

  • 关闭防火墙

  • 关闭自动更新

  1. 进行网络配置

没有完全配置完成的时候,此时是空的,直接点击“创建”,就会自动创建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
  1. 配置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

  1. 启动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调用,在此状态创建快照,并命名保存,要记住自己的快照命名。

  1. 配置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:

注释掉部分内容

  1. 尝试

开启两个终端,并且进入虚拟环境,

终端一:

. venv/bin/activate
cuckoo -d

终端二:

. venv/bin/activate
cuckoo web runserver

通过浏览器打开链接,得到成功展示

感觉已经完全成功了吧,但是此时仍会出现问题,比如说,将二进制可执行文件上传之后,发现监控下的win7并没有执行该文件,同时行为分析一直是空的,该问题将在下一篇文章中给出解决方案。

未完待续

posted @ 2024-07-21 17:20  .u.i.c  阅读(7)  评论(0编辑  收藏  举报