1. 程式人生 > >Cuckoo安裝指南(一)

Cuckoo安裝指南(一)

引言: Cuckoo是一個非常流行的惡意軟體或者攻擊分析系統,通過cuckoo可以方便地幫助安全研究人員驗證惡意程式的特徵資訊,本文將詳細描述其執行環境的搭建過程。由於整個過程比較龐雜,故將分為4篇來詳細描述其搭建過程。此為第一篇。

1.  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

  Ubuntu使用16.04, 64位的系統,具體版本可以參照其官網。在安裝完成之後,我們來看其版本資訊:

polo@polo-notebook:~$ cat /proc/version
Linux 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 linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

基於結果可以發現,其Python為2.7.12;眾所周知,Python分為2,3兩個大的分支,這裡使用python 2這個分支。

2.3   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 build
running build
running build_ext
building 'pydeep' extension
x86_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.o
pydeep.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 install
running install
running build
running build_ext
building 'pydeep' extension
x86_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.o
pydeep.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

後續步驟未完待續。