ミニキャンプ沖縄・仮想化技術を用いたマルウェア解析-Revenge(環境構築編)
12/19~12/20にかけて開催された"セキュリティ・ミニキャンプ in 沖縄 2015"に参加してきました.
講義中には時間が足りずに出来なかった
"仮想化技術を用いたマルウェア解析"のリベンジをしてみたいと思います.
実はこの講義,一番難しかったけど,一番楽しかった.
もっと理解したら絶対楽しい.
前置きはこのくらいにして,環境構築に入っていきたいと思います.
Virtual Boxを使ってます.メモリは2GB.
ちなみにホストOSはメモリ4GBです.
VMにUbuntuインストールするくらいは自分で調べてくださいw(めんどくさい)
$ uname -a
Linux tsun-ubuntu 3.16.0-30-generic #40~14.04.1-Ubuntu SMP Thu Jan 15 17:43:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
こんな感じです.
Ubuntu 14.04 LTS 64bitです.
これにDECAFを導入していきます.
HDDに十分に空き領域がある事に注意してください.
Windows XPのイメージなどで結構喰われる(10GB~あれば余裕かな)
What is DECAF??
DECAF(short for Dynamic Executable Code Analysis Framework) is a binary analysis platform based on QEMU. This is also the home of the DroidScope dynamic Android malware analysis platform.
簡単にいうと,QEMUをベースに開発されているマルウェア解析プラットフォーム.
ていう解釈であってるかな.
DECAFのインストール
DECAFのビルド
$ sudo apt-get update $ sudo apt-get install qemu binutils-dev libboost-all-dev $ sudo apt-get build-dep qemu
$ git clone https://github.com/sycurelab/DECAF
$ cd DECAF/decaf $ ./configure $ make
makeが終わるまで待ちます.
ゲストOSのインストール
ここからイメージをダウンロードしてください.
30日間だけ使えるやつを無料で配布しています.
あ,あと僕のユーザ名がtsunなので今から作業でPATH指定するときには
コピペしないで自分で適宜変更をお願いします.
$ pwd
/home/tsun/DECAF
$ mkdir VM
$ mv IE8.XP.For.Windows.VirtualBox.zip VM/
$ cd VM
$ unzip IE8.XP.For.Windows.VirtualBox.zip
unzipしてでてくる
なんちゃら.vmdkの名前が長かったのでwinxp.vmdkにしました.
$ qemu-img convert -f qcow2 winxp.vmdk -O qcow2 pre_ie8.qcow2
$ qemu-img convert -p -f qcow2 -O qcow2 compat=0.10 pre_ie8.qcow2 ie8.qcow2
QEMUを立ち上げてWindows XPが起動するか確かめます.
$ cd ~/DECAF/decaf/i386-softemmu
$ ./qemu-system-i386 -monitor stdio -m 1024 ../../VM/ie8.qcow2
$ export SDL_VIDEO_X11_DGAMOUSE=0
export SDL_VIDEO_X11_DGAMOUSE=0
はマウスポインタが暴走する時にやるといいです.
[CTRL + ALT + U]をすると画面が(たぶん)見やすくなると思います.
Windosが立ち上がったらターミナル上で[Enter]を押します.
すると,(qemu)というのが出てくるので
(qemu) quit
で一旦Windowsを終了します.
問題のプログラムをWindowsにコピーしていきます.
$ cd ~/DECAF
$ git clone https://github.com/ntddk/blue.git $ sudo modprobe nbd $ sudo qemu-nbd -c /dev/nbd0 ie8.qcow2 $ sudo /sbin/fdisk -l /dev/nbd0 $ sudo mount -o loop,offset=$((63*512)) /dev/nbd0 /mnt $ sudo cp -r blue /mnt/Documents and Settings/All Users/Desktop $ sudo umount /mnt $ sudo qemu-nbd -d /dev/nbd0 $ sudo rmmod nbd
プラグインもコンパイルしておきます.
$ cd ../decaf/plugins $ git clone https://github.com/ntddk/geteip $ cd geteip $ ./configure --decaf-path=/home/tsun/DECAF/decaf $ make
pluginのload,unloadや使い方
(qemu) load_plugin /home/tsun/DECAF/geteip/geteip.so (qemu) geteip blue.exe
編集したgeteip.cをに反映させたい場合はmakeしたあとにunloadします
この際,geteip.cを編集するターミナルとQEMUを起動しているターミナルは別にしておいてください.
編集ターミナルでmakeコマンドを実行した後にQEMUターミナルの方で次のコマンドを打ちます.
(qemu) unload_plugin (qemu) load_plugin /home/tsun/DECAF/geteip/geteip.so (qemu) geteip blue.exe
これでblue.exeに編集したのが反映されます.
おわり
これで環境構築はおわりました.
次はいよいよプラグイン開発です.