
1か月前、私の新しい仕事のポータルがハッキングされました。 経営者は「どのように?」と疑問に思いました。 サーバーへの接続の短い検索と分析中に、従業員のPCが見つかり、そこからほぼ同時に接続が確立されました。 従業員はハッキングについて何も知りませんでしたが、会話中に1つのケースを思い出しました;ハッキングの少し前に、彼は開いていない「会社の従業員」から文書を受け取りました。 ファイルはexe形式で、これがストーリー全体の始まりです。
取締役会の管理者は、ファイルを分析し、ファイルの実行内容と攻撃者に残されるデータを把握するタスクを設定しました。 マルウェア分析のトピックに出会ったことはありませんが、最も論理的なことは、Googleで情報を見つけることでした。
数日以内に膨大な数のマルウェア分析マニュアルを見つけて読みました。ほとんどすべてのマニュアルでは、サンドボックスとさまざまなユーティリティを使用してソフトウェアを手動で分析することを提案しましたが、 malwr.comはサンドボックス。 私は登録し、ウイルスをダウンロードし、列に並んで待っていましたが、その1日後にメインページにニュースが表示されました。

7月24日の午後、負荷が増加したためサービスは無期限に機能しなくなりました。
サイトのページと説明を見た後、使用した分析プラットフォーム-Cuckoo Sandbox-に言及し、プログラムの詳細を確認することにしました。
この「カッコウ」はどんな動物ですか?
Cuckoo Sandboxは、マルウェア、エクスプロイト、悪意のあるスクリプト、ドキュメント、アーカイブ、リンクを自動的に調査するためのシステムです。 システムは、pdf、doc、xls、rtfドキュメント、Pythonスクリプト、JS、DLLライブラリ、バイナリ、jarなどをチェックできます。
どのように機能しますか?
Python 2.7は特別に準備された仮想システムにインストールされ、Cuckooエージェントがスタートアップに追加されます。これはサンドボックスと対話し、ネットワークインターフェイスはネットワークトラフィックをインターセプトおよびさらに分析するために特別な方法で構成されます。 すべての操作の後、ファイルシステムのスナップショットが取得されます。これはスナップショットでもあります。 サンドボックスはテストファイルをダウンロードし、そのタイプを決定し、ファイルタイプに従って必要な操作を実行し、サンドボックス内のすべての変更がレポートに記録されます。 作業後、システムはスナップショットを復元し、仮想システムは元の状態に戻ります。
カッコウサンドボックスには次の機能があります。
- win32 API関数呼び出しの監視
- ネットワークアクティビティダンプ
- ダンプおよびメモリ分析
- 分析中にスクリーンショットを撮る
- 検証プロセス中に作成され、ダウンロードされたすべてのファイルのコピーを保存する
- 悪意のあるプロセスによって実行された命令をトレースする
- json、mmdef、maec、html形式で便利なレポートを作成する
- マルウェアが起動される環境の完全な分離
公共の利益を促進することにより、スパムメールに添付された1つのファイルでサンドボックスが特定した署名の小さな画面を投稿します。

これにより、従来のTrojan.Genウイルス対策応答よりもはるかに多くのファイルに関する情報が得られることを認める必要があります(これはシマンテックの「庭の石」と考えることができます)。
ここでは、ファイルをHTML形式で分析し、サンドボックスによってどのように作成されるかを説明しました。
Cuckoo Sandboxは十分に文書化されており、一部のサイトではインストール手順を含むそのインストールがレイアウトされていますが、現時点では記述どおりに動作するインストラクションはありません。 セットアップ中にかなりの数の問題に遭遇した後、ここですべてのニュアンス、追加、修正を含む完全で最新のインストールおよび構成ガイドを書くことにしました。 最も怠laな人のために、サンドボックスを自動的に構成およびインストールするスクリプトを準備しました。始めましょう。
Cuckooをインストールして設定します。すべての複雑さと追加のユーティリティが含まれています。
その後のインストールはすべて、VPS Digitalocean(2GB Ram / 40GB SSD / Ubuntu 14.04 x32)で実行されました。
注:同じホスティングでサンドボックスを構築しようとする場合、ロンドンDCを選択しないでください。一部のリンクにアクセスする際に問題が発生します。
Ubuntuは、サンドボックスが直接テストされるシステムとして開発者の推奨により選択されました。
インストール計画は次のようになります。
- ユーティリティとサンドボックスに必要な依存関係とパッケージのインストール
- ユーティリティとCuckoo Sandboxをインストールする
- カッコウサンドボックスのカスタマイズ
- Virtualboxをインストールして構成する
- 仮想システムのインストールまたはロード、構成
- Webインターフェース
- オートロード
- 追加の「パン」とカッコウの機能
- Cuckooをインストールおよび構成するための既製のスクリプト
- ボーナス
ユーティリティとサンドボックスに必要な依存関係とパッケージのインストール
自分でやるのが面倒な場合は、直接Readyスクリプト項目に移動してください。 このスクリプトはUbuntu 14.04 LTS x32でのみテストおよびビルドされているため、他のオペレーティングシステムでの動作は保証されていません。 あなたが自分でそれを理解することに決めたなら、次の章はあなたのためです。
すべての依存関係をインストールします。
cd /tmp apt-get update apt-get install git automake mongodb mingw32 dkms unzip wget python python-sqlalchemy python-bson python-pip python-dpkt python-jinja2 python-magic python-mysqldb python-gridfs python-libvirt python-bottle python-pefile python-chardet -y apt-get install python-dev libxml2-dev libxslt1-dev libevent-dev libpcre3 libpcre3-dev zlib1g-dev libtool libpcre++-dev –y apt-get install mariadb-server -y
私が書いたように、一度に1つずつ行うには、次の設定が望ましいです。
pip install lxml pip install cybox==2.0.1.4 pip install maec==4.0.1.0 pip install django pip install py3compat pip install pymongo
注:PymongoはPIPからのみインストールします。APTからインストールした場合、Webインターフェースは機能しません。
ユーティリティとCuckoo Sandboxをインストールする
SSDEEP
(ssdeepは、コンテキストの部分ハッシュを再帰的に計算および比較するためのツールであり、ファジーハッシュとして知られています)
apt-get install ssdeep python-pyrex subversion libfuzzy-dev -y svn checkout http://pyssdeep.googlecode.com/svn/trunk/ pyssdeep cd pyssdeep python setup.py build python setup.py install pip install pydeep
やら
(YARAは、ウイルスアナリストがマルウェアの例を特定して分類するのに役立つツールです)
cd /tmp wget https://github.com/plusvic/yara/archive/v2.1.0.tar.gz tar xzf v2.1.0.tar.gz cd yara-2.1.0 chmod +x build.sh ./build.sh make install cd yara-python python setup.py build python setup.py install
Distorm3
(Distorm3-逆アセンブラー)
cd /tmp wget http://distorm.googlecode.com/files/distorm3.zip unzip distorm3.zip cd distorm3 python setup.py build python setup.py install
ボラティリティ
(揮発性は、オペレーティングシステムのメモリダンプを調査するために設計されたPythonフレームワークです)
add-apt-repository ppa:pi-rho/security apt-get update apt-get install volatility
注:ソースからパッケージをコンパイルしないでください(2012-2013の一部のインストールマニュアルで説明されているように)、この記事のようにレポジトリからインストールしないでくださいMongoがなければ、新しいWebインターフェースは機能しません)、リポジトリのバージョンにはそのような問題はありません。
Cuckoo Sandboxをインストールする
まず、ユーザーを追加します。
useradd cuckoo usermod -a -G vboxusers cuckoo id cuckoo
今すぐインストール:
安定した
cd /opt wget http://downloads.cuckoosandbox.org/1.1/cuckoo_1.1.tar.gz tar xzf cuckoo_1.1.tar.gz
開発
cd /opt git clone https://github.com/cuckoobox/cuckoo.git
注:以下の例では、安定バージョンが使用されていますが、安定バージョンの使用もお勧めします。
Cuckoo Sandboxの構成
Cuckooコミュニティの署名を設定する
cd /opt/cuckoo ./utils/community.py --signatures --force
Cuckooデータベースを構成します。
mysql -u root -p > create database cuckoo; > grant all privileges on cuckoo.* to cuckoo@localhost identified by 'cuck00pass' ; > flush privileges; > quit;
カッコウをカスタマイズする
- ファイル/opt/cuckoo/conf/cuckoo.conf
メモリダンプレコードをオンにします。
memory_dump = on
データベースへの接続を構成します。
connection = mysql://cuckoo:cuck00pass\@localhost/cuckoo
サーバーは弱いため、時間制限を増やします。
default = 240 critical = 1200 vm_state = 600
- /opt/cuckoo/conf/memory.confファイル
サーバーには40 GBしかないため、メモリダンプの保存をオフにします。
delete_memdump = yes
- ファイル/opt/cuckoo/conf/processing.conf
RAMの分析をオンにします。
memory = yes
注:keyパラメーターには、独自のvirustotal.comサービスキーAPIを入力できます - vim /opt/cuckoo/conf/virtualbox.conf
Virtualboxの動作モードを変更します。
mode = headless
仮想マシンの名前をcuckoo1からWindowsXPに変更します。
machines = WindowsXP [WindowsXP] label = WindowsXP
- ファイル/opt/cuckoo/conf/reporting.conf
WebインターフェイスのMongoDBでレポートのインポートを有効にします
[mongodb] enabled = yes
これでCuckooのセットアップが完了しました。次に、VirtualboxとゲストOSから始めましょう。
Virtualboxをインストールして構成する
Virtualboxおよび必要なすべてのコンポーネント
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add – sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian trusty contrib" >> /etc/apt/sources.list.d/virtualbox.list' apt-get update apt-get install virtualbox-4.3 cd /tmp VBOX_LATEST_VERSION=$(curl http://download.virtualbox.org/virtualbox/LATEST.TXT) wget http://download.virtualbox.org/virtualbox/${VBOX_LATEST_VERSION}/Oracle_VM_VirtualBox_Extension_Pack-{VBOX_LATEST_VERSION}.vbox-extpack vboxmanage extpack install /tmp/Oracle_VM_VirtualBox_Extension_Pack-${VBOX_LATEST_VERSION}.vbox-extpack cd /opt wget http://dlc.sun.com.edgesuite.net/virtualbox/${VBOX_LATEST_VERSION}/VBoxGuestAdditions_${VBOX_LATEST_VERSION}.iso
仮想システムのインストールまたはロード、構成
OSをインストールするための2つのオプションがあります。
- サイトからダウンロードしてください
- 手動でインストールする
最初のオプションは最速ですが、最も安定していません。 非営利目的でのこのOSの使用は許可されており、ライセンスに問題はありません。
2番目のオプションはより長く、より信頼性が高いため、後者を選択しましたが、両方を順番に説明します。
サイトから仮想OSをダウンロードする
wget https://az412801.vo.msecnd.net/vhd/VMBuild_20131127/VirtualBox/IE6_WinXP/Linux/IE6.WinXP.For.LinuxVirtualBox.sfx chmod +x IE6.WinXP.For.LinuxVirtualBox.sfx ./IE6.WinXP.For.LinuxVirtualBox.sfx vboxmanage import IE6\ -\ WinXP.ova --vsys 0 --unit 10 --disk=/root/VirtualBox\ VMs/WindowsXP/WindowsXP.vmdk --memory 1024 --vmname WindowsXP
手動OSインストール
vboxmanage createvm --name "WindowsXP" --ostype WindowsXP --register vboxmanage modifyvm "WindowsXP" --memory 1000 --acpi on --boot1 dvd vboxmanage createhd --filename "WindowsXP.vdi" --size 20000 vboxmanage storagectl "WindowsXP" --name "IDE" --add ide --controller PIIX4 vboxmanage storageattach "WindowsXP" --storagectl "IDE" --port 0 --device 0 --type hdd --medium "WindowsXP.vdi"
注:次の手順は、両方の方法に等しく適用できます。
ネットワークを設定しました
vboxmanage hostonlyif create vboxmanage modifyvm "WindowsXP" --nic1 hostonly --hostonlyadapter1 vboxnet0 --nicpromisc1 allow-all --hwvirtex off --vtxvpid off
共有フォルダーを構成する
mkdir -p /opt/cuckoo/shares/setup mkdir -p /opt/cuckoo/shares/WindowsXP vboxmanage sharedfolder add "WindowsXP" --name "WindowsXP" --hostpath /opt/cuckoo/shares/WindowsXP --automount vboxmanage sharedfolder add "WindowsXP" --name setup --hostpath /opt/cuckoo/shares/setup --automount --readonly vboxmanage modifyvm "WindowsXP" --nictrace1 on --nictracefile1 /opt/cuckoo/shares/WindowsXP/dump.pcap
RDPアクセスを有効にする
vboxmanage modifyvm "WindowsXP" --vrdeport 5000 --vrde on
任意のポートを指定できます
これで、仮想コンテナの構成は完全に完了し、iptables、tcpdumpを構成し、最初からインストールすることを選択した場合はそのまま-実際にWindowsをインストールします。
iptablesルールとカーネルパラメーターの変更
iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A POSTROUTING -t nat -j MASQUERADE sysctl -w net.ipv4.ip_forward=1
tcpdump
setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump getcap /usr/sbin/tcpdump
インターフェースを上げる
ifconfig vboxnet0 192.168.56.1
次に、ゲストOS自体に直接移動します。
Windowsインストール
イメージをサーバーにアップロードして、仮想マシンに接続します。
vboxmanage storageattach "WindowsXP" --storagectl "IDE" --port 0 --device 1 --type dvddrive --medium /patch/to/licensed/windows.iso
オンにする
vboxmanage startvm "WindowsXP" --type headless
このコマンドの後、ポート5000でRDP経由で仮想OSに接続し、インストールできます。 インストール後、VBoxGuestAdditionsを接続してインストールします。
vboxmanage storageattach "WindowsXP" --storagectl "IDE" --port 0 --device 1 --type dvddrive --medium /opt/VBoxGuestAdditions_4.3.14.iso
注:アドオンのバージョンは異なる場合があります。
既製の仮想システムをダウンロードした場合は、いずれにしても、GuestAdditionsを更新する必要があります。
インストール後、再起動します。
ゲストOSを主張
- 次の方法でネットワーク接続を構成します(任意のDNSを指定できます)。
- システムに接続されているディスクからVboxToolsをインストールします。
- Pyton 2.7をインストールします: http ://python.org/download/
- http://www.activestate.com/activepythonをインストールします
- PIL Pythonモジュールをインストールしてスクリーンショットを撮ります : http : //www.pythonware.com/products/pil/
- Windowsの自動更新をオフにします。
- ファイアウォールをオフにします。
- ネットワークセットアップフォルダーからフォルダーC:\ Python27にエージェントをコピーします。
エージェントを起動時に配置します。このため、レジストリブランチに文字列パラメーターを追加します(start-> execute-> regedit)HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run
名前:「エージェント」
タイプ: 'REG_SZ'
内容:「C:\ Python27 \ agent.pyw」
- IEをオンにし、ホームページを空のタブに設定した設定で、必要に応じて、ブラウザープロパティのすべての保護メカニズムをオフにします。
- SSDPを無効にします:start-> execute-> msconfigとサービスセクションで「SSDP Discovery Service」を無効にして、レポートでこのサービスからのネットワーク要求を防ぎます。
- 再起動し、ロード時に表示されるウィンドウで「再起動時にこのメッセージを表示しない」を選択して「OK」をクリックします。
- ゲストOSを再起動した後、start-> execute-> cmdを実行し、コンソールでnetstat -naと入力して、8000番目のポートにエージェントがあるかどうかを確認します
- 意のままに、古いバージョンのさまざまな脆弱なソフトウェア(ブラウザー、Flashプレーヤー、Java、Acrobat Readerなど)をインストールします: http : //www.oldapps.com
注:オフィスライセンスをお持ちの場合は、インストールすることをお勧めします。とにかく、スカイプ、ICQ、メールクライアントをできるだけ多くインストールするのが最善です。 たとえば、私たちのサイトをハッキングしたハッカーは、ネットワークへのアクセスに何度か失敗した後、脆弱性CVE2012-0158を悪用するウイルスを収集しました。
これでゲストOSのインストールが完了しました。
スナップショットの作成(ゲストOSをオフにしない)
vboxmanage snapshot "WindowsXP" take "WindowsXPSnap01" --pause
オフにします。
vboxmanage controlvm "WindowsXP" poweroff
Webインターフェース
Cuckoo Sandboxには、新旧の2つのWebインターフェイスがあります。 古いものは、新しいものより情報量が少なく、機能が少なく、はるかに便利ではありません。
古いインターフェース:

新しいインターフェース:

古いインターフェイスは、データベースなしで、Djangoなしで、utilsフォルダーからweb.pyスクリプトを実行するだけで上昇するため、これで十分であれば、それを使用してください。
Apacheをインストールします。
apt-get install apache2
Apacheが選んだのは 私は彼のことをよく知っており、彼ともっと長く仕事をしました。必要に応じて、NginxまたはUnicornを設定できます。
ファイル/etc/apache2/sites-enabled/000-default.confが削除されます
次の内容で/etc/apache2/sites-enabled/cuckoo.confファイルを作成します。
<VirtualHost *:80> ServerName cuckoo.local ServerAdmin webmaster@localhost DocumentRoot /opt/cuckoo/web ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined WSGIScriptAlias / /opt/cuckoo/web/web/wsgi.py <Directory /opt/cuckoo/web/web> <Files wsgi.py> Require all granted </Files> </Directory> Alias /static /opt/cuckoo/web/static <Directory /opt/cuckoo/web/static/> Require all granted </Directory> </VirtualHost>
ファイル/opt/cuckoo/web/web/wsgi.pyには次のものがあります。
import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")
そして次のように変更します:
import os, sys sys.path.append('/opt/cckoo') sys.path.append('/opt/cuckoo/web') os.chdir('/opt/cuckoo/web/') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")
権利を修正します。
chown -R cuckoo:cuckoo /opt/cuckoo/
ファイル/ etc / apache2 / envvarsでapacheを起動するユーザーを変更します
APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data
に
APACHE_RUN_USER=cuckoo APACHE_RUN_GROUP=cuckoo
wsgiサポートモジュールをインストールします。
aptitude install libapache2-mod-wsgi -y
ソフトウェアの起動
インターフェイスの起動
行exit 0の前のファイル/etc/rc.localに、次のように記述します。
VBoxManage list vms > /dev/null ifconfig vboxnet0 192.168.56.1
サンドボックススタートアップ
apt-get install supervisor
次の内容で/etc/supervisor/conf.d/cuckoo.confファイルを作成します。
[program:cuckoo] command=python cuckoo.py directory=/opt/cuckoo [program:cuckoo-api] command=python api.py directory=/opt/cuckoo/utils
私たちは実施します:
supervisord -c /etc/supervisor/supervisord.conf supervisorctl -c /etc/supervisor/supervisord.conf reload
iptablesルールの自動ロード
apt-get install iptables-persistent
完了しました。再起動後、すべてのサービスが開始され、すべてが機能します。
追加の「パン」とカッコウの機能
PEID署名
新しい署名データベースをインストールします。新しいデータベースには2倍の数があります
cd /tmp wget http://research.pandasecurity.com/blogs/images/userdb.txt mv userdb.txt /opt/cuckoo/data/peutils/UserDB.TXT
Yara + AlienVault Labs APT脅威シグネチャのClamAVルール
注:ロンドンのデジタル海洋センターからClamAV-Yaraルール変換スクリプトをダウンロードしようとすると、「あなたの国からのリクエストは許可されていません」というエラーが表示されます。
apt-get install clamav -y wget http://db.local.clamav.net/main.cvd wget http://db.local.clamav.net/daily.cvd sigtool -u main.cvd sigtool -u daily.cvd wget http://malwarecookbook.googlecode.com/svn-history/r5/trunk/3/3/clamav_to_yara.py python clamav_to_yara.py -f main.ndb -o main.yar python clamav_to_yara.py -f daily.ndb -o daily.yar mkdir /opt/cuckoo/data/yara/clamav mv *.yar /opt/cuckoo/data/yara/clamav/
変換されたデータベースは、無効な署名EOL_0_94_2を参照してエラーをスローし、削除します。
行/opt/cuckoo/data/yara/clamav/main.yarから行を削除
«rule EOL_0_94_2 { strings: $a0 = { This ClamAV version has reached End of Life! Please upgrade to version 0.95 or later. For more information see www.clamav.net/eol-clamav-094 and www.clamav.net/download }^M condition: $a0 }»
または、単に次のコマンドを実行します。
RM_EOL=$(sed -n '/EOL_0_94_2/{=}' main.yar) for n in {1..8}; do sed -i "${RM_EOL}d" main.yar; done
次に、AlienVaultsからAPT脅威ルールを設定します。
git clone https://github.com/AlienVault-Labs/AlienVaultLabs.git mv AlienVaultLabs/malware_analysis/ /opt/cuckoo/data/yara/
そして、これらのルールをCuckooに接続します:
ファイル/opt/cuckoo/data/yara/index_binary.yarに次の行を記述します。
include "clamav/main.yar" include "clamav/daily.yar" include "malware_analysis/CommentCrew/apt1.yara" include "malware_analysis/FPU/fpu.yar" include "malware_analysis/Georbot/GeorBotBinary.yara" include "malware_analysis/Georbot/GeorBotMemory.yara" include "malware_analysis/Hangover/hangover.yar" include "malware_analysis/KINS/kins.yar" include "malware_analysis/OSX_Leverage/leverage.yar" include "malware_analysis/TheMask_Careto/mask.yar" include "malware_analysis/Urausy/urausy_skypedat.yar"
Zer0m0nまたはサンドボックスを非表示にする
悪意のあるファイルは、実行前にデバッガーまたは仮想環境をチェックしようとする場合があり、結果は期待はずれです。 以下は、検証のために実行可能ファイルをダウンロードするときにParanoid Fishテストが表示するものです。

これはZer0m0nで簡単に修正できます。
zer0m0nは、マルウェアの実行中にカーネル分析を実行するCuckoo Sandboxのドライバーです。 OSの「仮想性」をほぼ完全に隠すことができ、Cuckooの悪意のあるファイルの検出をバイパスできます。
インストールしてください:
cd /tmp git clone https://github.com/conix-security/zer0m0n.git cd zer0m0n/bin cp cuckoo.patch /opt/cuckoo cd /opt/cuckoo patch -p1 < ./cuckoo.patch cp /tmp/zer0m0n/bin/logs_dispatcher.exe /opt/cuckoo/analyzer/windows/dll/ cp /tmp/zer0m0n/bin/zer0m0n.sys /opt/cuckoo/analyzer/windows/dll/ cp -rf /tmp/zer0m0n/signatures/* /opt/cuckoo/modules/signatures/
権利を修正します。
chown -R cuckoo:cuckoo /opt/cuckoo/
その後、Webインターフェースで、追加オプションでスキャンを選択できます。デフォルトでは、Userlandまたはzer0m0n Kernellandを使用します。

コンソールでスキャンを実行する場合-kernel_analysis = yesオプションを使用します
チェックを再度実行します。

Cuckooをインストールおよび構成するための既製のスクリプト
約束どおり、完成したスクリプトを投稿します。 ゲストOS以外のすべてを自動的に構成します。 スクリプトの実行後、 ゲストOSのセットアップに関する項目に戻って構成する必要があります。
setup_cuckoo.sh
#!/bin/bash #-------------------------------------------# # Cuckoo Sandbox # Ubuntu 14.04 #-------------------------------------------# # cd /tmp apt-get update apt-get install git automake mongodb mingw32 dkms unzip wget python python-sqlalchemy python-bson python-pip python-dpkt python-jinja2 python-magic python-gridfs python-mysqldb python-libvirt python-bottle python-pefile python-chardet -y apt-get install python-dev libxml2-dev libxslt1-dev libevent-dev libpcre3 libpcre3-dev zlib1g-dev libtool libpcre++-dev -y debconf-set-selections <<< 'mariadb-server-5.5 mysql-server/root_password password supersecretpassw0rd' debconf-set-selections <<< 'mariadb-server-5.5 mysql-server/root_password_again password supersecretpassw0rd' apt-get install mariadb-server -y # pip install lxml pip install cybox==2.0.1.4 pip install maec==4.0.1.0 pip install django pip install py3compat pip install pymongo # SSDEEP apt-get install ssdeep python-pyrex subversion libfuzzy-dev -y svn checkout http://pyssdeep.googlecode.com/svn/trunk/ pyssdeep cd pyssdeep python setup.py build python setup.py install pip install pydeep # Yara cd /tmp wget https://github.com/plusvic/yara/archive/v2.1.0.tar.gz tar xzf v2.1.0.tar.gz cd yara-2.1.0 chmod +x build.sh ./build.sh make install cd yara-python python setup.py build python setup.py install # Distorm3 cd /tmp wget http://distorm.googlecode.com/files/distorm3.zip unzip distorm3.zip cd distorm3/ python setup.py build python setup.py install # Volatility add-apt-repository ppa:pi-rho/security -y apt-get update apt-get install volatility -y # Cuckoo useradd cuckoo usermod -a -G vboxusers cuckoo cd /opt wget http://downloads.cuckoosandbox.org/1.1/cuckoo_1.1.tar.gz tar xzf cuckoo_1.1.tar.gz # Cuckoo (https://github.com/cuckoobox/community) cd /opt/cuckoo ./utils/community.py --signatures --force #-------------------------------------------# # Virtualbox #-------------------------------------------# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add - sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian trusty contrib" >> /etc/apt/sources.list.d/virtualbox.list' apt-get update apt-get install virtualbox-4.3 -y cd /tmp VBOX_LATEST_VERSION=$(curl http://download.virtualbox.org/virtualbox/LATEST.TXT) wget http://download.virtualbox.org/virtualbox/${VBOX_LATEST_VERSION}/Oracle_VM_VirtualBox_Extension_Pack-${VBOX_LATEST_VERSION}.vbox-extpack vboxmanage extpack install /tmp/Oracle_VM_VirtualBox_Extension_Pack-${VBOX_LATEST_VERSION}.vbox-extpack cd /opt wget http://dlc.sun.com.edgesuite.net/virtualbox/${VBOX_LATEST_VERSION}/VBoxGuestAdditions_${VBOX_LATEST_VERSION}.iso # vboxmanage createvm --name "WindowsXP" --ostype WindowsXP --register vboxmanage modifyvm "WindowsXP" --memory 1000 --acpi on --boot1 dvd vboxmanage createhd --filename "WindowsXP.vdi" --size 20000 vboxmanage storagectl "WindowsXP" --name "IDE" --add ide --controller PIIX4 vboxmanage storageattach "WindowsXP" --storagectl "IDE" --port 0 --device 0 --type hdd --medium "WindowsXP.vdi" vboxmanage hostonlyif create vboxmanage modifyvm "WindowsXP" --nic1 hostonly --hostonlyadapter1 vboxnet0 --nicpromisc1 allow-all --hwvirtex off --vtxvpid off # mkdir -p /opt/cuckoo/shares/setup mkdir -p /opt/cuckoo/shares/WindowsXP vboxmanage sharedfolder add "WindowsXP" --name "WindowsXP" --hostpath /opt/cuckoo/shares/WindowsXP --automount vboxmanage sharedfolder add "WindowsXP" --name setup --hostpath /opt/cuckoo/shares/setup --automount --readonly vboxmanage modifyvm "WindowsXP" --nictrace1 on --nictracefile1 /opt/cuckoo/shares/WindowsXP/dump.pcap cp /opt/cuckoo/agent/agent.py /opt/cuckoo/shares/setup/agent.pyw # RDP 5000 vboxmanage modifyvm "WindowsXP" --vrdeport 5000 --vrde on # iptables iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A POSTROUTING -t nat -j MASQUERADE sysctl -w net.ipv4.ip_forward=1 # tcpdump setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump getcap /usr/sbin/tcpdump # Cuckoo mysql -uroot -psupersecretpassw0rd -e "create database cuckoo" mysql -uroot -psupersecretpassw0rd -e "grant all privileges on cuckoo.* to cuckoo@localhost identified by 'cuck00pass'" mysql -u root -psupersecretpassw0rd -e "flush privileges" # Cuckoo sed -i -e "s@connection =@connection = mysql://cuckoo:cuck00pass\@localhost/cuckoo@" /opt/cuckoo/conf/cuckoo.conf sed -i -e "s@memory_dump = off@memory_dump = on@" /opt/cuckoo/conf/cuckoo.conf sed -i -e "s@default = 120@default = 240@" /opt/cuckoo/conf/cuckoo.conf sed -i -e "s@critical = 600@critical = 1200@" /opt/cuckoo/conf/cuckoo.conf sed -i -e "s@vm_state = 300@vm_state = 600@" /opt/cuckoo/conf/cuckoo.conf sed -i -e "s@delete_memdump = no@delete_memdump = yes@" /opt/cuckoo/conf/memory.conf sed -i -e "s@enabled = no@enabled = yes@" /opt/cuckoo/conf/processing.conf sed -i -e "s@enabled = no@enabled = yes@" /opt/cuckoo/conf/reporting.conf sed -i -e "s@enabled = no@enabled = yes@" /opt/cuckoo/conf/processing.conf sed -i -e "s@mode = gui@mode = headless@" /opt/cuckoo/conf/virtualbox.conf sed -i -e "s@cuckoo1@WindowsXP@" /opt/cuckoo/conf/virtualbox.conf # apt-get install apache2 -y mv /etc/apache2/sites-enabled/000-default.conf /etc/apache2/sites-enabled/000-default.conf.bak cat > /etc/apache2/sites-enabled/cuckoo.conf <<DELIM <VirtualHost *:80> ServerName cuckoo.local ServerAdmin webmaster@localhost DocumentRoot /opt/cuckoo/web ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2//access.log combined WSGIScriptAlias / /opt/cuckoo/web/web/wsgi.py <Directory /opt/cuckoo/web/web> <Files wsgi.py> Require all granted </Files> </Directory> Alias /static /opt/cuckoo/web/static <Directory /opt/cuckoo/web/static/> Require all granted </Directory> </VirtualHost> DELIM aptitude install libapache2-mod-wsgi -y mv /opt/cuckoo/web/web/wsgi.py /opt/cuckoo/web/web/wsgi.py.bak cat > /opt/cuckoo/web/web/wsgi.py <<DELIM import os, sys sys.path.append('/opt/cuckoo') sys.path.append('/opt/cuckoo/web') os.chdir('/opt/cuckoo/web/') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application() DELIM chown -R cuckoo:cuckoo /opt/cuckoo/ # vboxnet0 sed -i -e "s@exit 0@@" /etc/rc.local echo 'VBoxManage list vms > /dev/null' >> /etc/rc.local echo 'ifconfig vboxnet0 192.168.56.1' >> /etc/rc.local echo 'exit 0' >> /etc/rc.local # Cuckoo apt-get install supervisor -y cat > /etc/supervisor/conf.d/cuckoo.conf <<DELIM [program:cuckoo] command=python cuckoo.py directory=/opt/cuckoo [program:cuckoo-api] command=python api.py directory=/opt/cuckoo/utils DELIM supervisord -c /etc/supervisor/supervisord.conf supervisorctl -c /etc/supervisor/supervisord.conf reload # Iptables cat > /etc/network/if-up.d/00-iptables <<DELIM #!/bin/sh iptables-restore < /etc/firewall.conf DELIM iptables-save >/etc/firewall.conf # PEiD cd /tmp wget http://research.pandasecurity.com/blogs/images/userdb.txt mv userdb.txt /opt/cuckoo/data/peutils/UserDB.TXT #ClamAV Yara cd /tmp apt-get install clamav -y wget http://db.local.clamav.net/main.cvd wget http://db.local.clamav.net/daily.cvd sigtool -u main.cvd sigtool -u daily.cvd wget https://malwarecookbook.googlecode.com/svn-history/r5/trunk/3/3/clamav_to_yara.py python clamav_to_yara.py -f main.ndb -o main.yar python clamav_to_yara.py -f daily.ndb -o daily.yar #, ClamAV EOL_0_94_2, , Yara RM_EOL=$(sed -n '/EOL_0_94_2/{=}' main.yar) for n in {1..8}; do sed -i "${RM_EOL}d" main.yar; done mkdir /opt/cuckoo/data/yara/clamav mv *.yar /opt/cuckoo/data/yara/clamav/ git clone https://github.com/AlienVault-Labs/AlienVaultLabs.git mv AlienVaultLabs/malware_analysis/ /opt/cuckoo/data/yara/ mv /opt/cuckoo/data/yara/index_binary.yar /opt/cuckoo/data/yara/index_binary.yar.bak cat > /opt/cuckoo/data/yara/index_binary.yar <<DELIM include "signatures/embedded.yar" include "signatures/vmdetect.yar" include "clamav/main.yar" include "clamav/daily.yar" include "malware_analysis/CommentCrew/apt1.yara" include "malware_analysis/FPU/fpu.yar" include "malware_analysis/Georbot/GeorBotBinary.yara" include "malware_analysis/Georbot/GeorBotMemory.yara" include "malware_analysis/Hangover/hangover.yar" include "malware_analysis/KINS/kins.yar" include "malware_analysis/OSX_Leverage/leverage.yar" include "malware_analysis/TheMask_Careto/mask.yar" include "malware_analysis/Urausy/urausy_skypedat.yar" DELIM #Zer0m0n git clone https://github.com/conix-security/zer0m0n.git cd zer0m0n/bin cp cuckoo.patch /opt/cuckoo cd /opt/cuckoo patch -p1 < ./cuckoo.patch cp /tmp/zer0m0n/bin/logs_dispatcher.exe /opt/cuckoo/analyzer/windows/dll/ cp /tmp/zer0m0n/bin/zer0m0n.sys /opt/cuckoo/analyzer/windows/dll/ cp -rf /tmp/zer0m0n/signatures/* /opt/cuckoo/modules/signatures/ chown -R cuckoo:cuckoo /opt/cuckoo/
ボーナス
ボーナスとして、Cuckoo SandboxをMaltegoプログラムと統合する手順を掲載します。
システムをポート8090で実行されるREST APIサンドボックスサービスと統合します。
私はMacで作業し、mac os 10.9.4で次のアクションを実行しましたが、Linuxシステムではすべてが問題なくインストールされ、同じように動作するはずです:
開始するには、サイトからMaltegoをダウンロードし、アプリケーションフォルダーに解凍します。
プログラムを開いた後:

彼女は、ログインするか、登録、登録、ログイン(キャプチャを操作しないで、何も入力しない、機能しない)を提案し、開発者のリポジトリからSandboxをMaltegoと統合するために必要なファイルをダウンロードしてインストールします。
sudo -s git clone https://github.com/bostonlink/cuckooforcanari.git cd cuckooforcanari python setup.py install canari create-profile cuckooforcanari
cuckoo設定をMatlegoにインポートする必要があります。
左上隅のプログラムアイコンをクリックし、[インポート]、[構成のインポート]の順にクリックして、githubからダウンロードしたフォルダーから構成を選択します。

すべてをインポートします。

完了、構成ファイルを開いて、マルウェアを配置するホスト、ポート、フォルダーを入力します。
vim ~/.canari/cuckooforcanari.conf
プログラムで新しいスケジュールを作成し、Cuckoo Malware Sampleアイコンをチャートにドラッグし、ファイルの名前をウイルスの名前に変更し、Analysysにファイルを送信してアップロードします。

ダウンロード後、ジョブ番号が表示されます:

スキャンが完了すると、グラフ形式のデータを受け取ることができます。

開発者からの公式ビデオでこれについての詳細を見ることができます:
別のボーナス、ネットで見つけた本は、Cuckoo Sandboxを使用して悪意のあるファイルを分析するための良いガイドです。
また、Symantec Endpoint Protection 12.1アンチウイルスを職場で使用している場合、シマンテックが公式にサポートしていないWindows SEPQuarantineTool.zipのコンソールユーティリティを使用できますが、サポートへのリンクが見つかりました。このユーティリティを使用すると、同じユーティリティで検疫からファイルを引き出して復元し、REST APIを使用してWindowsのcurlを使用してサーバーにファイルをアップロードし、ファイルを検疫に戻すことができます。したがって、脅威の分析を自動化し、ウイルスが侵入するサイトとサーバーのブラックリストを作成します。
結論として、このツールはすべてのタスクを完了するのに役立ち、記事の冒頭で言及したハッカーのログと悪意のあるファイルは文字通り数分で分析され、ハッカーが使用するマルウェアの全体像を理解できるようになりました:
ご清聴ありがとうございました。
使用されたソースのリスト
docs.cuckoosandbox.org
xakep.ru/articles/57409
lanswer.blogspot.ru/2012/11/add-cucksandbox-to-ubuntu-service.html
reverselab.info/page/cuckoo-sandbox
www.alienvault.com/blogs/tag/yara
www.securitylab.ru/analytics/441524.php
www.modern.ie/ru-ru
www.aldeid.com/wiki/PEiD
blog.prowling.nu/2014/08/cuckoo-sandbox-django-interface-with.html
github.com/conix-security/zer0m0n
github.com/bostonlink/cuckooforcanari
santi-bassett.blogspot.ru/2013/01/installing-cuckoo-sandbox-on-virtualbox.html