Cuckoo Sandbox 基本部署流程

0x0 介绍

Cuckoo Sandbox 是一个挺不错的沙盒, 用于一些病毒的简易分析还是很有意思的, 最重要的是这货开源!!

从 python 的框架到 window 的 hook 框架都是开源的, 心情好的话可以自己去折腾扩展, 挺有意思的, 而且有很多的扩展模块, 不过本文并没开233333. 毕竟开得多错的多= =233333 ….

0x1 基本准备

由于 Cuckoo 推荐的是 Host 用 Linux 作为主机, Guest 推荐用 Win7 x64 (话说反正是用虚拟机, 用啥不行 … 不过没有认真读完全部代码 … 我也不好说…)

由于服务器的主机是 Window, 而且跑了很多东西… 就没法重装成 linux , 所以我就在虚拟机上装了个VM里面跑了个 Ubuntu 16, 然后再 Ubuntu 里面再装 VirtualBox … 导致性能下降了非常多 …

如果本机已经是 Linux / Mac 那就可以跳过本章了

  1. Window 上的 VMWare 配置

    我给的硬件配置是 100G 硬盘, 8G 内存, 3 CPU, 这个硬件配置随心吧.

    不过比较重要的是要在 CPU 配置中开启 “虚拟化 Intel VT-x/EPT 或 AMD-V/RVI”“虚拟化 CPU 性能计数器”

    如果这两个不开的话(CPU性能计数器我不知道会不会影响), 会导致 Ubuntu 内部的 VirtualBox 无法模拟 64Bit 的系统

0x2 Host 安装 Cuckoo

  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
        

  2. 安装数据库(可选, 如果要使用 Cuckoo 自带的 Web 则安装)

    由于官方支持多种数据库, 不过在 docs 中推荐了 MongoDB 和 PostgreSQL, 并且我也只测试了 MongoDB 所以只写了一种指令.

    sudo apt-get install mongodb
    
  3. 安装 VirtualBox (官方好像推荐 VBox5.1 ?)
    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-5.1
    

    PS: 这里当安装好 VBox 后会提示 VBox 运行的用户组 … 后面要用到, 不过估计都是默认的

  4. 安装 Tcpdump (用于网络流量监控)

    这个模块是可选的, 但是我估计这个模块都会用吧… 毕竟是最基本的

    sudo apt-get install tcpdump apparmor-utils
    sudo aa-disable /usr/sbin/tcpdump
    sudo apt-get install libcap2-bin
    sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
    
  5. 安装 Cuckoo

    首先增加 cuckoo 用户, 并且将其添加进 VBOX 对应的用户组中

    sudo adduser cuckoo
    sudo usermod -a -G vboxusers cuckoo
    

    安装环境

    PS : 这里推荐使用 virtualenv 独立环境出来

    cd ~
    virtualenv cuckoo-env
    ./cuckoo-env/bin/activate
    (cuckoo-env)$ pip install -U pip setuptools
    (cuckoo-env)$ pip install -U pip cuckoo
    

    PS2 : pip install -U pip cuckoo 最好给代理… requirement 是真的 TM 的又多又大下载又慢…

至此, cuckoo 算是安装好了, 如果中间没出现啥 bug 的话

0x3 Guest 的安装和配置

首先安装一个 Win7 x64 虚拟机, 名字我命名为 Cuckoo-Win7-Ult-x64, 后期会用

注意一点, 设置网卡为 Host-only 模式, 不会就Google吧…

由于人懒, 所以 Host-only 网段我采用默认的, 即 192.168.56.0/24 的网段

Ubuntu 的地址 : 192.168.56.1
Guest 的地址 : 192.168.56.101

  1. 关闭 UAC
  2. 关闭防火墙
  3. 关闭自动更新
  4. 设置静态 IP
    IP    : 192.168.56.101
    Mask  : 255.255.255.0
    Gate  : 192.168.56.1
    
    DNS1  : 192.168.56.1
    DNS2  : 223.5.5.5
    
  5. 常用环境安装
    Python, PIP
    安装 PIL
    pip instsall PIL
  6. 安装 Cuckoo-Agent
    先在 Ubuntu 中找到 agent.py

    理论路径应该在 ~/.cuckoo/agent/agent.py

    将这个 agent.py 放进 Guest 内, 并且在 cmd 中尝试运行

    python agent.py
    

    如果没有任何报错啥的, 就意味着没啥问题, 然后重命名为 agent.pyw

    最后将其设置为自启动, 重启 Guest

  7. 重启后建立快照
    这里我名字命名为 snapshot, 后期要用

0x4 Host 网络配置

有了上面的一系列数据, 可以开始继续配置 Host 了

首先为了能让 Host-only 的机子可以访问外网, 必须设置 iptables 和转发规则

  1. 开启转发
    sysctl -w net.ipv4.ip_forward=1
    

    由于上述命令只能临时开启, 如果要永久则要修改配置文件

    sudo vim /etc/sysctl.conf
    # 找到 net.ipv4.ip_forward=1 并将前面的注释取消
    # 然后保存文件, 运行下面命令开启永久转发
    sudo sysctl -p /etc/sysctl.conf
    
  2. 配置 iptables
    sudo ufw disable
    sudo iptables -A FORWARD -o <ubuntu网卡名, 我这里是ens33> -i <host-only 网卡名, 我这里是 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 -A POSTROUTING -t nat -j MASQUERADE
    sudo ufw allow 8080
    sudo ufw allow 2042
    sudo ufw enable
    

    这时候尝试在虚拟中连接外网, 理论应该没啥问题, 并且要保证在 Guest 中可以 ping 通 192.168.56.1 并且可以与其建立 TCP 连接, 也要保证 Host 可以 ping 通 Guest 并且与其建立 TCP 连接

0x5 Cuckoo 配置

进入 ~/cuckoo-env/conf/ 下面

  1. 配置 cuckoo.conf
    [cuckoo]
    ...
    machinery = virtualbox
    ...
    [resultserver]
    ...
    ip = 192.168.56.1
    ...
    port = 2042
    
  2. 配置 virtualbox.conf
    [virtualbox]
    ...
    mode = gui
    ...
    interface = vboxnet0 # 即 vbox 的 host-only 网卡
    ...
    machines = Cuckoo-Win7-Ult-x64 # 即之前 Guest 的名字
    ...
    [Cuckoo-Win7-Ult-x64]
    label = Cuckoo-Win7-Ult-x64
    platform = windows
    ip = 192.168.56.101
    snapshot = snapshot1 # 即之前保存快照的名字
    interface = vboxnet0
    resultserver_ip = 192.168.56.1
    resultserver_port = 2042
    tags = 
    options = 
    
  3. 配置 auxiliary.conf
    [sniffer]
    ...
    enable = yes
    ...
    

0x6 运行 Cuckoo

至此, 基本都配置完毕了, 现在打开 3 个 Ternimal, T0-T2

T0,T1,T2:

cd ~/
./cuckoo-env/bin/activate

T0:

cuckoo -d

T1:

cuckoo web -H 0.0.0.0 -p 8080

至此, 基本的都可以了, 可以从本机或者远程直接访问 UbuntuIP:8080 访问web界面,然后提交样本,或者查看分析结果.

PS 如果想要从命令行提交则

T2:

cuckoo submit <file>

即可

0x7 引用

  1. Cuckoo Docs
  2. Freebuf: 布谷鸟沙箱初体验
  3. Freebuf: 自动化恶意软件分析系统Cuckoo安装、配置详解

发表评论

电子邮件地址不会被公开。 必填项已用*标注