Cuckoo Linux客户机(guest)安装以及问题semantic error [cuckoo.core.guest] DEBUG: cuckoo2: not ready yet
前言
这两天导师要求使用cuckoo沙盒来进行病毒的分析,主要用来收集system calls。在安装的过程中发现Cuckoo对于linux guest的支持实在是太差了,网上也很难找到相关的教程,所以在这里写一个自己安装的步骤来记录一下,如果能帮到别人就更好了。
Ubuntu Linux虚拟机安装
这里选择了ubuntu18.04版本,下载地址为 ubuntu-18.04.4-desktop-amd64.iso
具体virtualbox里面如何安装我就不详细说明了,但需要注意两点。
- 虚拟机的名字最好改成cuckoo2(因为我还有个win7的cuckoo1),当然也可以改成别的你记得住的名字
- 安装ubuntu的时候不要选择try,选择install
- 要安装virtualbox增强功能(Guest Additions)这个大家也可以自行查找方法。此处建议在安装前选运行
sudo passwd否则可能后续会出错。 - 给客户机的内存分大一点大概3g左右
客户机环境配置
此处参考了两个链接: 1.官网链接 2. CSDN教程
具体步骤如下:
$ sudo apt install uml-utilities bridge-utils- 将Host上的agent.py文件拷贝到客户机上(直接拖拽或者建立共享文件夹都可以),这里推荐讲agent.py放到Documents里面
$ sudo crontab -e
@reboot python /path/to/agent.py$ sudo apt-get update
$ sudo apt-get install python2.7
$ sudo apt update
$ sudo apt install python-pip
$ pip install --upgrade pip$ sudo apt install net-tools$ sudo apt-get install systemtap gcc patch linux-headers-$(uname -r)$ 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
$ 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$ wget https://raw.githubusercontent.com/cuckoosandbox/cuckoo/master/stuff/systemtap/strace.stp$ sudo stap -p4 -r $(uname -r) strace.stp -m stap_ -v
这里可能会出现报错,详细的解决办法参照中https://github.com/cuckoosandbox/cuckoo/issues/2684的最后一个回答sudo staprun -v ./stap_.ko$ sudo mkdir /root/.cuckoo
$ sudo mv stap_.ko /root/.cuckoo/$ sudo ufw disable$ sudo timedatectl set-ntp off- 接下来是网络的配置,基本参照与Cuckoo的斗智斗勇(二)——Cuckoo安装(linux客户机)中的网络配置设置就好。
- 修改cuckoo配置文件,这个也没什么好说的名字换下就行。
遇见的问题
- 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步中有问答 - 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就解决了)。
以下提供几个相关的学习链接
- Automatic analysis of professional sandbox and malicious samples
- Linux Malware Sample Archive including various types of malicious ELF binaries and viruses.
- Linux malware analysis based on Cuckoo Sandbox.
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
