Cuckoo安装指南(一)

来源:互联网 发布:js正则表达式匹配括号 编辑:程序博客网 时间:2024/06/05 18:10

引言: Cuckoo是一个非常流行的恶意软件或者攻击分析系统,通过cuckoo可以方便地帮助安全研究人员验证恶意程序的特征信息,本文将详细描述其运行环境的搭建过程。由于整个过程比较庞杂,故将分为4篇来详细描述其搭建过程。此为第一篇。

1.  Cuckoo介绍

Cuckoo 的全称是OpenSource Cuckoo Sandbox Project。其初始由一些安全先驱开发,其中一些人也是开源honeyspot 的contributor。实际上在2010年的时候Cuckoo还是honeyNET的一个子项目。这些前辈独到的蜜罐网络研发的技巧,让Cuckoo可以轻而易举的进行URL分析、网络通讯分析、程序分析、pdf分析。

整体上,Cuckoo基于虚拟机技术,使用中央控制系统和模块设计,结合python的自动化特征,已经是颇为自动化的恶意软件行为研究环境。

出于研发历史的考量,个人推荐使用debian或ubuntu主机安装virtualbox当作Cuckoo Host,WinXP做guest。实际上Cuckoo也支持Macox和KVM 等其他环境,也支持Windows7做guest,但是相比而言window xp更为合适一下。


Cuckoo Archtecture

由于本文不是在介绍Cuckoo的原理,故这里不再详细描述其原理和功能,具体的信息大家可以到官网上去了解更多信息。

https://cuckoosandbox.org
目前最新的版本是:2.0-RC1

2. 安装指南

2.1 Ubuntu OS Ready

p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify; }p.western { font-family: "Calibri",serif; font-size: 10pt; }p.cjk { font-family: "宋体"; font-size: 10pt; }p.ctl { font-size: 12pt; }a:link { color: rgb(0, 0, 255); Ub  Ubuntu使用16.04, 64位的系统,具体版本可以参照其官网。在安装完成之后,我们来看其版本信息:

polo@polo-notebook:~$ cat /proc/versionLinux version 4.4.0-36-generic (buildd@lcy01-01) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.2) ) #55-Ubuntu SMP Thu Aug 11 18:01:55 UTC 2016
在这里大家可以发现,其Kernel版本为4.4.0, Ubuntu版本号为16.04.2
2.2  检查Python是否安装以及版本验证

 由于Ubuntu深度使用了python,故其默认搭载了python的运行环境,我们来检查其版本信息:

polo@polo-notebook:~$ python Python 2.7.12 (default, Jul  1 2016, 15:12:24) [GCC 5.4.0 20160609] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> 

基于结果可以发现,其Python为2.7.12;众所周知,Python分为2,3两个大的分支,这里使用python 2这个分支。

2.3 p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify; }p.western { font-family: "Calibri",serif; font-size: 10pt; }p.cjk { font-family: "宋体"; font-size: 10pt; }p.ctl { font-size: 12pt; }a:link { color: rgb(0, 0, 255); }  install ORM in python

   SQLAlchemy是Python类似Hibernate之于Java,解决SQL和对象之间的映射管理,其作为一个依赖包存在。

   方法1: sudo apt-get install python-sqlalchemy

   方法2: sudo pip install sqlalchemy

    方法1基于Ubuntu的apt来进行安装, 方法2基于python的类库管理工具pip来安装。 

   下面来看一下apt安装的结果信息输出:

 polo@polo-notebook:~$ sudo apt-get install python-sqlalchemy[sudo] polo 的密码: 正在读取软件包列表... 完成正在分析软件包的依赖关系树       正在读取状态信息... 完成       下列软件包是自动安装的并且现在不需要了:  docbook-xml docbook-xsl fonts-dejavu fonts-dejavu-extra ibus-pinyin icoutils kactivities kate-data katepart kde-l10n-engb kde-l10n-zhcn kde-runtime  kde-runtime-data kde-style-breeze kde-style-breeze-qt4 kdelibs-bin kdelibs5-data kdelibs5-plugins kdoctools kpackagelauncherqml kpackagetool5  libattica0.4 libdlrestrictions1 libgif7 libkactivities6 libkatepartinterfaces4 libkcmutils4 libkde3support4 libkdeclarative5 libkdecore5 libkdesu5  libkdeui5 libkdewebkit5 libkdnssd4 libkemoticons4 libkf5activities5 libkf5calendarevents5 libkf5declarative-data libkf5declarative5  libkf5notifications-data libkf5notifications5 libkf5package-data libkf5package5 libkf5plasma5 libkf5plasmaquick5 libkf5quickaddons5 libkf5style5  libkfile4 libkhtml5 libkio5 libkjsapi4 libkjsembed4 libkmediaplayer4 libknewstuff3-4 libknotifyconfig4 libkntlm4 libkparts4 libkpty4 libkrosscore4  libktexteditor4 libkxmlrpcclient4 libnl-route-3-200 libntrack-qt4-1 libntrack0 libopencc1 libphonon4 libphonon4qt5-4 libplasma3 libpolkit-qt-1-1  libpyzy-1.0-0v5 libqca2 libqca2-plugins libqt4-designer libqt4-opengl libqt4-qt3support libqt4-svg libqtwebkit4 libsolid4 libstreamanalyzer0v5  libstreams0v5 libthreadweaver4 libxcb-composite0 libxcb-damage0 libxml2-utils ntrack-module-libnl-0 oxygen-icon-theme oxygen5-icon-theme phonon  phonon-backend-gstreamer phonon-backend-gstreamer-common plasma-framework plasma-scriptengine-javascript python-gi python-xdg  qml-module-org-kde-activities qml-module-org-kde-kquickcontrols qml-module-org-kde-kquickcontrolsaddons qml-module-qtquick-controls  qml-module-qtquick-dialogs qml-module-qtquick-privatewidgets sgml-data使用'sudo apt autoremove'来卸载它(它们)。将会同时安装下列软件:  python-sqlalchemy-ext建议安装:  python-sqlalchemy-doc python-psycopg2 python-pymysql python-fdb python-pymssql下列【新】软件包将被安装:  python-sqlalchemy python-sqlalchemy-ext升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 29 个软件包未被升级。需要下载 650 kB 的归档。解压缩后会消耗 3,885 kB 的额外空间。您希望继续执行吗? [Y/n] y获取:1 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 python-sqlalchemy all 1.0.11+ds1-1ubuntu2 [636 kB]获取:2 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 python-sqlalchemy-ext amd64 1.0.11+ds1-1ubuntu2 [13.4 kB]已下载 650 kB,耗时 0秒 (847 kB/s)              正在选中未选择的软件包 python-sqlalchemy。(正在读取数据库 ... 系统当前共安装有 238661 个文件和目录。)正准备解包 .../python-sqlalchemy_1.0.11+ds1-1ubuntu2_all.deb  ...正在解包 python-sqlalchemy (1.0.11+ds1-1ubuntu2) ...正在选中未选择的软件包 python-sqlalchemy-ext。正准备解包 .../python-sqlalchemy-ext_1.0.11+ds1-1ubuntu2_amd64.deb  ...正在解包 python-sqlalchemy-ext (1.0.11+ds1-1ubuntu2) ...正在设置 python-sqlalchemy (1.0.11+ds1-1ubuntu2) ...正在设置 python-sqlalchemy-ext (1.0.11+ds1-1ubuntu2) ...
2.4  安装第三方python依赖包(install the third-parth dependencies in python-pip)
sudo apt-get install python-dpkt python-jinja2 python-magic python-pymongo python-libvirt python-bottle python-pefile ssdeep
 安装命令执行过程:
polo@polo-notebook:~$ sudo apt-get install python-dpkt python-jinja2 python-magic python-pymongo python-libvirt python-bottle python-pefile ssdeep正在读取软件包列表... 完成正在分析软件包的依赖关系树       正在读取状态信息... 完成       下列软件包是自动安装的并且现在不需要了:  docbook-xml docbook-xsl fonts-dejavu fonts-dejavu-extra ibus-pinyin icoutils kactivities kate-data katepart kde-l10n-engb kde-l10n-zhcn kde-runtime  kde-runtime-data kde-style-breeze kde-style-breeze-qt4 kdelibs-bin kdelibs5-data kdelibs5-plugins kdoctools kpackagelauncherqml kpackagetool5  libattica0.4 libdlrestrictions1 libgif7 libkactivities6 libkatepartinterfaces4 libkcmutils4 libkde3support4 libkdeclarative5 libkdecore5 libkdesu5  libkdeui5 libkdewebkit5 libkdnssd4 libkemoticons4 libkf5activities5 libkf5calendarevents5 libkf5declarative-data libkf5declarative5  libkf5notifications-data libkf5notifications5 libkf5package-data libkf5package5 libkf5plasma5 libkf5plasmaquick5 libkf5quickaddons5 libkf5style5  libkfile4 libkhtml5 libkio5 libkjsapi4 libkjsembed4 libkmediaplayer4 libknewstuff3-4 libknotifyconfig4 libkntlm4 libkparts4 libkpty4 libkrosscore4  libktexteditor4 libkxmlrpcclient4 libntrack-qt4-1 libntrack0 libopencc1 libphonon4 libphonon4qt5-4 libplasma3 libpolkit-qt-1-1 libpyzy-1.0-0v5  libqca2 libqca2-plugins libqt4-designer libqt4-opengl libqt4-qt3support libqt4-svg libqtwebkit4 libsolid4 libstreamanalyzer0v5 libstreams0v5  libthreadweaver4 libxcb-composite0 libxcb-damage0 ntrack-module-libnl-0 oxygen-icon-theme oxygen5-icon-theme phonon phonon-backend-gstreamer  phonon-backend-gstreamer-common plasma-framework plasma-scriptengine-javascript python-gi python-xdg qml-module-org-kde-activities  qml-module-org-kde-kquickcontrols qml-module-org-kde-kquickcontrolsaddons qml-module-qtquick-controls qml-module-qtquick-dialogs  qml-module-qtquick-privatewidgets sgml-data使用'sudo apt autoremove'来卸载它(它们)。将会同时安装下列软件:  augeas-lenses bridge-utils cgmanager ebtables gawk libaugeas0 libboost-random1.58.0 libboost-thread1.58.0 libnetcf1 librados2 librbd1 libsigsegv2  libvirt-bin libvirt0 libxen-4.6 libxenstore3.0 python-bson python-bson-ext python-dumbnet python-gridfs python-markupsafe python-pkg-resources  python-pymongo-ext建议安装:  augeas-doc gawk-doc augeas-tools qemu-kvm | qemu radvd lvm2 python-jinja2-doc python-setuptools python-pymongo-doc下列【新】软件包将被安装:  augeas-lenses bridge-utils cgmanager ebtables gawk libaugeas0 libboost-random1.58.0 libboost-thread1.58.0 libnetcf1 librados2 librbd1 libsigsegv2  libvirt-bin libvirt0 libxen-4.6 libxenstore3.0 python-bottle python-bson python-bson-ext python-dpkt python-dumbnet python-gridfs python-jinja2  python-libvirt python-magic python-markupsafe python-pefile python-pkg-resources python-pymongo python-pymongo-ext ssdeep升级了 0 个软件包,新安装了 31 个软件包,要卸载 0 个软件包,有 29 个软件包未被升级。需要下载 9,535 kB 的归档。解压缩后会消耗 38.0 MB 的额外空间。您希望继续执行吗? [Y/n] y获取:1 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libsigsegv2 amd64 2.10-4 [14.1 kB]获取:2 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 gawk amd64 1:4.1.3+dfsg-0.1 [398 kB]获取:3 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 augeas-lenses all 1.4.0-0ubuntu1 [263 kB]获取:4 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 bridge-utils amd64 1.5-9ubuntu1 [28.6 kB]获取:5 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 cgmanager amd64 0.39-2ubuntu5 [76.4 kB]获取:6 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 ebtables amd64 2.0.10.4-3.4ubuntu1 [79.6 kB]获取:7 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libaugeas0 amd64 1.4.0-0ubuntu1 [154 kB]获取:8 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libboost-random1.58.0 amd64 1.58.0+dfsg-5ubuntu3.1 [11.7 kB]

2.5  install pydeep dependencies in python

   Pydeep: Python/C bindings for the ssdeep library.

sudo apt-get install build-essential git libpcre3 libpcre3-dev libpcre++-dev
执行命令之后的输出:

polo@polo-notebook:~$  sudo apt-get install build-essential git libpcre3 libpcre3-dev libpcre++-dev[sudo] polo 的密码: 正在读取软件包列表... 完成正在分析软件包的依赖关系树       正在读取状态信息... 完成       build-essential 已经是最新版 (12.1ubuntu2)。build-essential 已设置为手动安装。libpcre3 已经是最新版 (2:8.38-3.1)。下列软件包是自动安装的并且现在不需要了:  docbook-xml docbook-xsl fonts-dejavu fonts-dejavu-extra ibus-pinyin icoutils kactivities kate-data katepart kde-l10n-engb kde-l10n-zhcn kde-runtime  kde-runtime-data kde-style-breeze kde-style-breeze-qt4 kdelibs-bin kdelibs5-data kdelibs5-plugins kdoctools kpackagelauncherqml kpackagetool5  libattica0.4 libdlrestrictions1 libgif7 libkactivities6 libkatepartinterfaces4 libkcmutils4 libkde3support4 libkdeclarative5 libkdecore5 libkdesu5  libkdeui5 libkdewebkit5 libkdnssd4 libkemoticons4 libkf5activities5 libkf5calendarevents5 libkf5declarative-data libkf5declarative5  libkf5notifications-data libkf5notifications5 libkf5package-data libkf5package5 libkf5plasma5 libkf5plasmaquick5 libkf5quickaddons5 libkf5style5  libkfile4 libkhtml5 libkio5 libkjsapi4 libkjsembed4 libkmediaplayer4 libknewstuff3-4 libknotifyconfig4 libkntlm4 libkparts4 libkpty4 libkrosscore4  libktexteditor4 libkxmlrpcclient4 libntrack-qt4-1 libntrack0 libopencc1 libphonon4 libphonon4qt5-4 libplasma3 libpolkit-qt-1-1 libpyzy-1.0-0v5  libqca2 libqca2-plugins libqt4-designer libqt4-opengl libqt4-qt3support libqt4-svg libqtwebkit4 libsolid4 libstreamanalyzer0v5 libstreams0v5  libthreadweaver4 libxcb-composite0 libxcb-damage0 ntrack-module-libnl-0 oxygen-icon-theme oxygen5-icon-theme phonon phonon-backend-gstreamer  phonon-backend-gstreamer-common plasma-framework plasma-scriptengine-javascript python-gi python-xdg qml-module-org-kde-activities  qml-module-org-kde-kquickcontrols qml-module-org-kde-kquickcontrolsaddons qml-module-qtquick-controls qml-module-qtquick-dialogs  qml-module-qtquick-privatewidgets sgml-data使用'sudo apt autoremove'来卸载它(它们)。将会同时安装下列软件:  git-man liberror-perl libpcre++0v5 libpcre32-3 libpcrecpp0v5建议安装:  git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn下列【新】软件包将被安装:  git git-man liberror-perl libpcre++-dev libpcre++0v5 libpcre3-dev libpcre32-3 libpcrecpp0v5升级了 0 个软件包,新安装了 8 个软件包,要卸载 0 个软件包,有 29 个软件包未被升级。需要下载 4,499 kB 的归档。解压缩后会消耗 29.0 MB 的额外空间。您希望继续执行吗? [Y/n] y获取:1 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libpcrecpp0v5 amd64 2:8.38-3.1 [15.2 kB]获取:2 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 liberror-perl all 0.17-1.2 [19.6 kB]获取:3 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 git-man all 1:2.7.4-0ubuntu1 [735 kB]获取:4 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 git amd64 1:2.7.4-0ubuntu1 [3,006 kB]获取:5 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libpcre32-3 amd64 2:8.38-3.1 [136 kB]获取:6 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libpcre3-dev amd64 2:8.38-3.1 [525 kB]获取:7 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 libpcre++0v5 amd64 0.9.5-6.1 [14.3 kB]获取:8 http://cn.archive.ubuntu.com/ubuntu xenial/universe amd64 libpcre++-dev amd64 0.9.5-6.1 [47.8 kB]
2.6 build pydeep and install it

   我们将基于源代码来进行编译和安装pydeep。

  download: git clone https://github.com/kbandla/pydeep.git

  然后基于命令来安装:

   sudo python setup.py build

  在安装过程中碰到了一些问题以及具体的解决办法:

错误1:fatal error: Python.h:

polo@polo-notebook:/opt/pydeep$ python setup.py buildrunning buildrunning build_extbuilding 'pydeep' extensionx86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/local/include/ -I/usr/include/python2.7 -c pydeep.c -o build/temp.linux-x86_64-2.7/pydeep.opydeep.c:1:20: fatal error: Python.h: 没有那个文件或目录compilation terminated.error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 
How to fix it ?

  这里的问题是由于没有安装python的开发环境以及开发包,故需要安装新的python-dev包,python2和python3不一样,请注意与喜爱。

sudo apt-get install python-dev
错误2: fatal error: fuzzy.h

具体的错误信息如下:

polo@polo-notebook:/opt/pydeep$ sudo python setup.py installrunning installrunning buildrunning build_extbuilding 'pydeep' extensionx86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/local/include/ -I/usr/include/python2.7 -c pydeep.c -o build/temp.linux-x86_64-2.7/pydeep.opydeep.c:2:19: fatal error: fuzzy.h: 没有那个文件或目录compilation terminated.error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
How to fix it ?

此类的头文件丢失,一般都是对应的开发包缺失。 具体的解决办法如下: 

sudo apt install libfuzzy-dev
2.7 安装编译、版本管理工具

  automake 工具,鼎鼎大名。

Sudo apt install libfuzzy-dev
  subversion, 版本管理工具,上个时代的主流工具:

sudo apt install subversion

后续步骤未完待续。



1 0
原创粉丝点击