cuckoo简介:Cuckoo基于虚拟机技术,使用中央控制系统和模块设计,结合python的自动化特征,已经是颇为自动化的恶意软件行为研究环境。独到的蜜罐网络研发的技巧,让Cuckoo可以轻而易举的进行URL分析、网络通讯分析、程序分析、pdf分析。个人推荐使用debian或ubuntu主机安装virtualbox当作Cuckoo Host,WinXP做guest。
运行环境:Ubuntu 14.04 LTS Desktop(64Bit),VirtualBox,Windows Xp SP3
参考资料:cuckoo.pdf(特别重要,官网可以下载www.cuckoosandbox.org),http://arisri.tistory.com/m/post/127,http://github.com/cuckoobox/cuckoo,
1,配置主机:
首先下载一些需要的软件和库:
安装python及依赖库
$ sudo apt-get install python
$ sudo apt-get install python-sqlalchemy python-bson
$sudo apt-get install python-dpkt python-jinja2 python-magic python-pymongo python-gridfs
安装tcpdump及配置运行权限为root
$ sudo apt-get install tcpdump
$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
可以用下面的操作验证结果:
$ getcap /usr/sbin/tcpdump
/usr/sbin/tcpdump = cap_net_admin,cap_net_raw+eip
如果没有安装setcap,可以先下载setcap
$ sudo apt-get install libcap2-bin
或者手动修改:
$ sudo chmod +s /usr/sbin/tcpdump
安装volatility
$ sudo apt-get install volatility
安装git
$ sudo apt-get install git
2,创建用户
必须保证运行Cuckoo的用户和创建并运行虚拟机的用户是同一个,否则Cuckoo不会识别虚拟机,也无法登录。你可以将当前用户运行Cuckoo或者为Cuckoo新建一个用户。
创建新用户:
$ sudo adduser cuckoo
如果是使用Virtualbox来运行虚拟机,那么确保运行Cuckoo的用户属于vboxusers组(或者你用于运行VirtualBox的组)
$ sudo usermod -G vboxusers cuckoo
3,下载Cuckoo
$ git clone git://github.com/cuckoobox/cuckoo.git
4、配置Cuckoo
Cuckoo依赖6个配置文件:
cuckoo.conf:配置通用操作和分析选项
auxiliary.conf:使能和配置辅助模块
<machinery>.conf:定义本机虚拟化软件的选项,文件的名字与cuckoo.conf中定义的机器模块的名字相同
memory.conf:Volatility配置
processing.conf:使能和配置处理模块
reporting.conf:使能和关闭报告格式
通常只需要编辑cuckoo.conf 、auxiliary.conf和<machinery>.conf这三个文件。
cuckoo.conf
文件中大部分是注释和解释,重点关注下面的选项:
machinery in [cuckoo]:这定义了你想要使用的Cuckoo与虚拟机交互的机器模块,默认值是virtualbox,名字要与模块名完全相同
ip和port in [resultserver]:这是Cuckoo的分析机器的本地IP和端口。本机使用Ubuntu,可以使用ifconfig查看
auxiliary.conf
这个文件跟随默认配置即可
<machinery>.conf
machines in [virtualbox]:这个选项指定了使用virtualbox建立的虚拟机的名字
label in [cuckoo1]:定义了VirtualBox配置指定的当前机器的标签名
ip in [cuckoo1]:定义当前虚拟机的IP地址
5,配置客户机:
安装VirtualBox:
$ sudo apt-get install virtualbox
安装虚拟机:
安装xp虚拟机,省略。。。。。
安装需要的软件:
安装python。运行cuckoo需要python
根据你要分析的文件,安装相应的软件,注意,关闭所有附加软件的自动更新和检查更新选项。
配置虚拟机网络:使用NAT即可
关闭操作系统的防火墙和自动更新选项。
安装Agent:
在cuckoo的agent/目录下有agent.py文件,将其复制到虚拟机操作系统的开始文件夹中,使其可以开机运行
保存虚拟机:
在保存之前确保配置之后的虚拟机已经重启过并且当前正在运行,Cuckoo的agent在运行且xp已经完全启动。
生成快照:
$ VBoxManage snapshot "<Name of VM>" take "<Name of snapshot>" --pause
快照完成后,关闭虚拟机并存储
$ VBoxManage controlvm "<Name of VM>" poweroff
$ VBoxManage snapshot "<Name of VM>" restorecurrent
此时cuckoo的所有基本配置就已经完成了。
6,Cuckoo的使用:
启动cuckoo:
$ ./cuckoo.py
注意cuckoo.py不一定用sudo运行,一定要使用之前设置的用户运行cuckoo
然后另开一个命令行窗口
提交分析的文件到主机:
$ python /home/kevin/cuckoo-master/utils/submit.py --url http://www.baidu.com
然后在storage/analyses的相应ID目录下会有生成报告。
输出中报错及解决方案:
TcpDump is not accessible from this user, network capture aborted
在github上托管的代码中可以找到这个部分的代码,从注释中可以看出这个问题是cuckoo未解决的问题。临时解决方案是从github上下载最新的Cuckoo版本。
VBoxManage exited with error restoring the machine’s snapshot
注意操作顺序,先保存虚拟机,然后运行cuckoo,最后提交分析任务。否则会出现上述问题。
CuckooCriticalError: Unable to bind ResultServer on 192.168.1.89:2042 [Errno 99] Cannot assign requested address
这说明是ResultServer的IP跟host的IP不一致。
cuckoo1:the guest initialization hit the critical timeout, analysis aborted.
这个问题正在解决。。。。