🙀

【2024年版】Cuckoo Sandboxを入れて見た!

2024/03/22に公開

今回入れるもの

Cuckoo Sandboxを入れます。

https://cuckoo.sh/docs/

実は、このCuckoo公式に書かれている方法だけでは上手く行きません。
最後のCuckooの更新からだいぶ時間が経っており、aptやpipで入るバージョン高すぎたり、aptには既に存在しないというのが起きています。
ということで、それに対して対策した上で、インストールしてみましょう。

前提

OS : Ubuntu 18.04.6 LTS

※ OSバージョンが高いと、virtualboxが起動しない。

SSHでXYCオプションが使える環境

※ WSLならば、外部ツール入れず動くのでおすすめ。

※ 直接GUI環境触れるならば、SHH話無視してOK

最初のおまじない

sudo apt update

apt自動アップデートを止める

sudo vi /etc/apt/apt.conf.d/20auto-upgradesをして、下記の通りに、ファイルを書き換える。

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

今回、わざと低いバージョンのパッケージなどを入れているので、自動アップデート止めないと、勝手に最新になってしまいエラーが出て困ってしまうので

python2 インストール

sudo apt list | grep python | less

で、pythonパッケージで、バージョンが2系であることを確認した上で、下記のコマンドを打つ

sudo apt install python

python2 pipインストール

wget https://files.pythonhosted.org/packages/27/79/8a850fe3496446ff0d584327ae44e7500daf6764ca1a382d2d02789accf7/pip-20.3.4-py2.py3-none-any.whl
python pip-20.3.4-py2.py3-none-any.whl/pip install --no-index pip-20.3.4-py2.py3-none-any.whl

virtualboxインストール

細かい説明はこっち見てね。

https://zenn.dev/test_myname/articles/old_virtualbox_install

wget https://download.virtualbox.org/virtualbox/5.2.44/virtualbox-5.2_5.2.44-139111~Ubuntu~bionic_amd64.deb
sudo apt install g++ iasl xsltproc libxml2-dev libidl-dev libvpx-dev libopus-dev libpng-dev libsdl1.2-dev libxmu-dev libdevmapper-dev libcap-dev libc6-dev-i386 libssl-dev libssh2-1-dev libxinerama-dev libxrandr-dev qt5-default makeself libpam0g-dev
sudo apt install ./virtualbox-5.2_5.2.44-139111~Ubuntu~bionic_amd64.deb

念のため動作確認する。

VBoxManage list vms

エラーが出てこなければOK!

python pip

sudo apt install python-pil
python -m pip install setuptools==44.1.1 setuptools_scm==5.0.2
python -m pip install configparser==4.0.2 zipp==1.2.0 importlib_metadata==2.1.3 importlib_resources==3.3.1 platformdirs==2.0.2 filelock==3.2.1 virtualenv==20.15.1

mongodb

sudo apt install mongodb
sudo service mongodb start

※ 本当は、mongodbの対応MAXバージョンは、5までだが、ubuntuのaptにめっちゃ古いのしか入ってないので、これでOK!

postgressql

sudo apt install libpq-dev postgresql

cuckoo

sudo adduser cuckoo
sudo usermod -a -G vboxusers cuckoo
sudo usermod -a -G libvirtd cuckoo

virtualenv venv

sudo apt install libjpeg-dev python-dev zlib-devel
python2.7 -m pip install Pillow==3.2.0
python2.7 -m pip install cuckoo

tcpdump

sudo apt install tcpdump apparmor-utils
sudo aa-disable /usr/sbin/tcpdump

sudo groupadd pcap
sudo usermod -a -G pcap cuckoo
sudo chgrp pcap /usr/sbin/tcpdump
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

sudo apt install libcap2-bin
getcap /usr/sbin/tcpdump

guacd

sudo apt install libguac-client-rdp0 libguac-client-vnc0 libguac-client-ssh0 guacd

M2Crypto

wget https://launchpad.net/ubuntu/+source/m2crypto/0.24.0-2/+build/13109848/+files/python-m2crypto_0.24.0-2_amd64.deb
sudo apt install swig 
sudo apt install ./python-m2crypto_0.24.0-2_amd64.deb

Cuckoo起動

Webで確かめる

~/.cuckoo/conf/reporting.confを下記のようにmongodbのenabledをyesにする。

[mongodb]
enabled = yes

下記コマンドをするとサーバーが起動、**IPアドレス**:8000にアクセスすればよい。

cuckoo web runserver **IPアドレス**:8000

仮想環境内でのcuckoo設定

  1. ~/.cuckoo/agent/にあるpythonプログラムを、仮想環境内で起動しておく。
    ※ 仮想環境にpythonが入ってなければpython2を入れておく。
  2. スナップショットを撮る。
  3. ~/.cuckoo/conf/virtualbox.confのsnapshot項目を任意の文字に書き換える。
# (Optional) Specify the snapshot name to use. If you do not specify a snapshot
# name, the VirtualBox MachineManager will use the current snapshot.
# Example (Snapshot1 is the snapshot name):
snapshot = **設定したスナップショット名**

ヘルプ

cuckooやvirtualenvのコマンドが効かない

cuckooやvirtualenvのコマンドが効かない場合は、一度、SSHを再ログインする。

※ パスが更新されていないため。sourceでもいいけど、分かりにくいので再ログインおすすめ。

Discussion