当前位置: 首页 > 工具软件 > Cuckoo > 使用案例 >

Cuckoo Linux客户机(guest)安装以及问题semantic error & [cuckoo.core.guest] DEBUG: cuckoo2: not ready yet

杨骏
2023-12-01

前言

这两天导师要求使用cuckoo沙盒来进行病毒的分析,主要用来收集system calls。在安装的过程中发现Cuckoo对于linux guest的支持实在是太差了,网上也很难找到相关的教程,所以在这里写一个自己安装的步骤来记录一下,如果能帮到别人就更好了。

Ubuntu Linux虚拟机安装

这里选择了ubuntu18.04版本,下载地址为 ubuntu-18.04.4-desktop-amd64.iso
具体virtualbox里面如何安装我就不详细说明了,但需要注意两点。

  1. 虚拟机的名字最好改成cuckoo2(因为我还有个win7的cuckoo1),当然也可以改成别的你记得住的名字
  2. 安装ubuntu的时候不要选择try,选择install
  3. 要安装virtualbox增强功能(Guest Additions)这个大家也可以自行查找方法。此处建议在安装前选运行sudo passwd否则可能后续会出错。
  4. 给客户机的内存分大一点大概3g左右

客户机环境配置

此处参考了两个链接: 1.官网链接 2. CSDN教程

具体步骤如下:

  1. $ sudo apt install uml-utilities bridge-utils
  2. 将Host上的agent.py文件拷贝到客户机上(直接拖拽或者建立共享文件夹都可以),这里推荐讲agent.py放到Documents里面
  3. $ sudo crontab -e
    @reboot python /path/to/agent.py
  4. $ sudo apt-get update
    $ sudo apt-get install python2.7
    $ sudo apt update
    $ sudo apt install python-pip
    $ pip install --upgrade pip
  5. $ sudo apt install net-tools
  6. $ sudo apt-get install systemtap gcc patch linux-headers-$(uname -r)
  7. $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C8CAB6595FDFF622
    $ codename=$(lsb_release -cs)

$ sudo tee /etc/apt/sources.list.d/ddebs.list << EOF
deb http://ddebs.ubuntu.com/ ${codename} main restricted universe multiverse
#deb http://ddebs.ubuntu.com/ ${codename}-security main restricted universe multiverse
deb http://ddebs.ubuntu.com/ ${codename}-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com/ ${codename}-proposed main restricted universe multiverse
EOF

$ sudo apt-get update
$ sudo apt-get install linux-image-$(uname -r)-dbgsym

  1. $ wget https://raw.githubusercontent.com/cuckoosandbox/cuckoo/master/stuff/systemtap/expand_execve_envp.patch
    $ wget https://raw.githubusercontent.com/cuckoosandbox/cuckoo/master/stuff/systemtap/escape_delimiters.patch
    $ sudo patch /usr/share/systemtap/tapset/linux/sysc_execve.stp < expand_execve_envp.patch
    $ sudo patch /usr/share/systemtap/tapset/uconversions.stp < escape_delimiters.patch
  2. $ wget https://raw.githubusercontent.com/cuckoosandbox/cuckoo/master/stuff/systemtap/strace.stp
  3. $ sudo stap -p4 -r $(uname -r) strace.stp -m stap_ -v
    这里可能会出现报错,详细的解决办法参照中https://github.com/cuckoosandbox/cuckoo/issues/2684的最后一个回答
  4. sudo staprun -v ./stap_.ko
  5. $ sudo mkdir /root/.cuckoo
    $ sudo mv stap_.ko /root/.cuckoo/
  6. $ sudo ufw disable
  7. $ sudo timedatectl set-ntp off
  8. 接下来是网络的配置,基本参照与Cuckoo的斗智斗勇(二)——Cuckoo安装(linux客户机)中的网络配置设置就好。
  9. 修改cuckoo配置文件,这个也没什么好说的名字换下就行。

遇见的问题

  1. semantic error: while resolving probe point: identifier ‘kprobe’ at /usr/share/systemtap/tapset/linux/x86_64/sysc_arch_prctl.stp:40:31
    source: probe nd_syscall.arch_prctl = kprobe.function(“sys_arch_prctl”)
    这个问题在上面的第10步中有问答
  2. 2022-07-02 03:09:16,135 [cuckoo.core.guest] DEBUG: cuckoo2: not ready yet
    2022-07-02 03:09:17,139 [cuckoo.core.guest] DEBUG: cuckoo2: not ready yet
    2022-07-02 03:09:17,187 [cuckoo.core.guest] DEBUG: cuckoo2: not ready yet
    这个问题基本都是因为cuckoo的客户机中重启的时候agent没有启动成功。或者是保存快照的时候没有成功设置好开机自动启动agent(我参照的两个链接中用了不同的方法,我采用的是官方的办法),或者就是没安装python导致启动失败(安装python2.7就解决了)。

以下提供几个相关的学习链接

  1. Automatic analysis of professional sandbox and malicious samples
  2. Linux Malware Sample Archive including various types of malicious ELF binaries and viruses.
  3. Linux malware analysis based on Cuckoo Sandbox.
 类似资料: