序言介绍:为了应对层出不穷的反虚拟机技术,本文实现一种真机搭建cuckoo的方式,结合国家网路中心的clonezila来实现分析机器的还原。
1.硬件准备
*ubuntu16.04服务器一台(可在虚拟机中实现)
*win7或者winxp一台
*交换机一台
2.服务器搭建
我选择的目前最新的ubuntu16.04,内置python2.7比较方便,当然也可以选择其他版本的系统,或者centos应该也可以,不过最好用ubuntu,因为资料较多,cuckoo官方资料也是用cuckoo搭建的。
1.安装python2.7
这是cuckoo所需要的,如果你的系统内置了python2.7那就不用安装了,安装步骤网上教程一大堆,不再赘述。查看python版本 python -V,一般内置pip安装工具,没有的话另外安装一下。
2.安装依赖库
1.安装相关的依赖库
sudo apt-get install python python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev libjpeg-dev
然后去cuckoog官网或者github下载cuckoo最新版本,然后解压打开cuckoo文件夹,有个requiremens.txt的文件夹,这需要全部下载,可以用python的pip进行安装,其中其中的 pefile 需要从 Google Code 上下载,由于大陆网络限制,需要自备梯子,登上梯子后执行以下批量安装命令:
pip install -r requirements.txt
或者先把pefile安装源码下载,手动安装,然后把它从requirements.txt里删除,然后用pip命令安装,个人建议用第二种方法。
2.Host 机需要可以嗅探网络数据包,需要安装 tcpdump ,如果本机没有,则执行以下命令安装 tcpdump:
**apt-get install tcpdump**
如果系统没启用 root 账户,由于 tcpdump 的执行需要 root 权限,则需要以下配置:
**$ sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump**
如果系统里没有setcap命令,则需要安装 libpcap包:
**$ sudo apt-get install libcap2-bin**
如果需要启用内存镜像分析,需要安装 volatility:
**apt-get install volatility**
3.cuckoo配置文件的修改
主要修改的文件有:cuckoo.conf,physical.conf,auliary.conf.重点修改前两个。
1.修改cuckoo.conf
version_check = on 这个其实可以关掉,不然一直检查,如果你版本稍微低了一下就报错。
machinery = physical 这个地方改成physical
ip = 192.168.56.1 根据你的实际情况填写
vm_state = 60 根据你的电脑实际还原时间填写
2.修改physical.conf
user = username
password = password 根据你的分析机填写
interface = eth0根据你的网卡填写
ip = 192.168.56.101根据你的分析机填写
4.安装drbl
1. 设置静态ip地址,直接在桌面设置及可以了。
2.安装drbl金钥
wget -q http://drbl.nchc.org.tw/GPG-KEY-DRBL -O- | sudo apt-key add -
3.添加drbl源(根据自己的系统版本修改一下)
vi /etc/apt/sources.list
deb http://free.nchc.org.tw/ubuntu xenial main restricted universe multiverse
deb http://free.nchc.org.tw/drbl-core drbl stable
3.安装drbl
sudo apt-get update
sudo apt-get install drbl
4.设置drblserver
sudo drblsrv -i
提示!当有yes/no选项的时候,预设的值是大写的字母。例如 (y/N), 预设值是 "N", 当你按 "Enter"的时候,程式使用的值就是 "N"。如果你不确认选用那个好的时候,直接按"Enter"键是一个保险的方式.感觉不保险的话,去搜一下,很多介绍的,在这不赘述。
5.设置环境
sudo drblpush -i
提示!当有yes/no选项的时候,预设的值是大写的字母。例如 (y/N), 预设值是 "N", 当你按 "Enter"的时候,程式使用的值就是 "N"。如果你不确认选用那个好的时候,直接按"Enter"键是一个保险的方式.感觉不保险的话,去搜一下,很多介绍的,一般都差不多。注意有一点,搜集网卡的时候尽量选择实时收集,然后收集完,注意查看是否有文件在相应目录,还有注意系统读取网卡文件的名字的命名方式,比如我的网卡为ens33,所以网卡文件为macadr-ens33.txt,但是系统读取文件的时候可能会去查找以macadr-eth开头的文件,所以遇到这种情况的话,去手动创建一个这样的文件就可以了。还有就是配置的时候尽量切到/etc/drbl目录下进行操作。
6.现在基本上drbl就设置好了。
5。网路设置
由于我在虚拟机上搭建的服务器,所以我选择桥接模式,桥接到物理机有线网卡上,然后外接到交换机,然后分析机器也接到交换机,构成一个物理的局域网环境。
3.分析机设置
1.首先安装python2.7,去python官网下载就好了。
2.关闭防火墙,自动更新,uac。
3.设置python运行权限为管理员。
4.设置固定ip.(注意此时的ip不要和clonezila给他分配的ip一致,否则在还原的时候,网络捕捉模块会抓取太多还原时候的无用包,从而导致分析报告异常庞大。)
**到此整个环境搭建就已经差不多了。注意需要熟悉drbl的使用方法才能使用此环境。此外还需要把drbl还原分析机的指令加入到cuckoo的源代码里去。文件具体为:scheduler库文件,添加到让分析机关机指令的前面位置。