Cuckoo Sandbox @Ubuntu18.04(Virtualbox)

#概要
Windows10のVirtualBoxにubuntu18.04を入れて、さらにubuntu18.04上にVirtualBox環境でCuckoo Sandboxを入れる手順のメモ

#環境
・Windows 10 
・Cuckooを動かすGuestOSはWindows7
～スペック追記～
・CPU Corei7-7500
・メモリ 16GB
（GuestOSのメモリは4GB コアは２割り当て）

#手順メモ
##事前作業
###GUIを導入
```bash
$ sudo apt-get install tasksel
$ sudo tasksel install ubuntu-mate-core
$ sudo service lightdm start
```
###VirtualBoxのインストール
```bash
$ sudo add-apt-repository "deb http://download.virtualbox.org/virtualbox/debian bionic contrib"
$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install virtualbox
```
###VirtualBox関連の設定
```bash
$ sudo vboxmanage hostonlyif create

```
###ユーザ設定等々
```bash
$ sudo apt-get install dkms
$ sudo apt-get install python-pip
$ sudo pip3 install -U pip setuptools
$ sudo adduser cuckoo
$ sudo usermod -a -G vboxusers cuckoo
```
###公式のRequirementsに記載のあるモジュールをインストール
```bash

$ sudo apt-get install python python-pip python-dev libffi-dev libssl-dev
$ sudo apt-get install python-virtualenv python-setuptools
$ sudo apt-get install libjpeg-dev zlib1g-dev swig
```
###MongoDBを使うので（Postgresを使う場合は別のコマンド・・・）
```bash
$sudo apt-get install mongodb
```
###Yaraをインストール
```bash
$ sudo apt-get install automake libtool make gcc
$ sudo apt-get install flex bison
$ sudo apt-get install libjansson-dev
$ wget https://github.com/VirusTotal/yara/archive/v3.7.1.tar.gz
$ tar -zxf yara-3.7.1.tar.gz
$ cd yara-3.7.1
$ ./bootstrap.sh
$ ./configure --enable-cuckoo
$ make 
$ sudo make install
$ sudo pip install yara-python
```
###pydeepをインストール
```bash
$ sudo apt-get install ssdeep python-pyrex libfuzzy-dev
$ sudo pip install pydeep
```
###distorm3をインストール
```
$ sudo pip install distorm3
```
###tcpdumpをインストール
```bash
$ sudo apt-get install tcpdump apparmor-utils
$ sudo aa-disable /usr/sbin/tcpdump
```
###volatility
```bash
$ sudo apt-get install pcregrep libpcre++-dev
$ sudo pip install pycrypto
$ git clone https://github.com/volatilityfoundation/volatility
$ cd volatility
$ python setup.py build
$ sudo python setup.py build install
```
###M2Cryptoのインストール
```
$ sudo apt-get install swig
$ sudo pip install m2crypto
```

###Cuckooインストール
```bash
//不要かもしれない・・・
$sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk
$ pip install -U cuckoo
```

###Reporting機能の有効化
```bash
//~/root/.cuckoo/conf/reporting.confの次の個所に記載されています。
# The various modes describe which information should be submitted to MISP,
# separated by whitespace. Available modes: maldoc ipaddr hashes url.
mode = maldoc ipaddr hashes url

[mongodb]
enabled = yes
host = 127.0.0.1
port = 27017
db = cuckoo
store_memdump = yes
paginate = 100
# MongoDB authen
```

###GuestOSの作成
〇 VirtualBoxを起動して、Windows7をセットアップ（ここは省略）
※イメージ名はデフォルトでしようされるcuckoo1とすること。

```bash
//~/root/.cuckoo/conf/virtualbox.confの次の個所に記載されています。
# Specify a comma-separated list of available machines to be used. For each
# specified ID you have to define a dedicated section containing the details
# on the respective machine. (E.g. cuckoo1,cuckoo2,cuckoo3)
machines = cuckoo1
```

〇 GuestOSの設定で次の項目が必須。
・VirtualboxGuestAdditionのインストール
・Firewallの無効化
・Python2.7をインストール(https://www.python.org/)
・PythonPILをインストール(http://www.pythonware.com/products/pil/)
・IPアドレスはデフォルトでcuckooが使用しようとするNetworkアドレスを使用するため192.168.56.100に設定
・DefaultGatewayは192.168.56.1
・UACの無効化（やらなくてもcuckooは動くのですが、正しく解析ができない）
　コントロールパネル⇒ユーザアカウントと家族のための安全設定⇒ユーザアカウント⇒ユーザアカウント制御の設定⇒通知しない（一番下）に設定
・起動時にagent.pyが自動起動するように設定
　ubuntu上の/root/.cuckoo/agent/agent.pyをwindows上のスタートアップフォルダに設置。

以上の設定が終わったらWindowsOSを再起動してスナップショットを作成。

###cuckooの起動
```
$ cuckoo
```
こんな感じの画面がでればＯＫ
![cuckoo2.png](https://qiita-image-store.s3.amazonaws.com/0/251555/c04da562-66e6-9b9b-bb9d-6f53747bc5e3.png)

###Webインタフェースの起動
```
$ cuckoo web
```
こんなメッセージが出ればＯＫ
![3.png](https://qiita-image-store.s3.amazonaws.com/0/251555/51572fd5-5441-7064-c9f2-52e526cab0af.png)

http://127.0.0.1:8000へアクセスするとこんな画面がでます。
![4.png](https://qiita-image-store.s3.amazonaws.com/0/251555/c9d0fd64-5432-2d92-f114-43df1221a36c.png)

ここからアップロードすると、Recentに解析結果が出ます。
一度にたくさんUploadするとPendingに入り待ち状態となります。

以上メモでした。