ミニキャンプ沖縄・仮想化技術を用いたマルウェア解析-Revenge(環境構築編)

12/19~12/20にかけて開催された"セキュリティ・ミニキャンプ in 沖縄 2015"に参加してきました.

  

講義中には時間が足りずに出来なかった

"仮想化技術を用いたマルウェア解析"のリベンジをしてみたいと思います.

 

実はこの講義,一番難しかったけど,一番楽しかった.

もっと理解したら絶対楽しい.

 

前置きはこのくらいにして,環境構築に入っていきたいと思います.

Virtual Boxを使ってます.メモリは2GB.

ちなみにホストOSはメモリ4GBです.

VMUbuntuインストールするくらいは自分で調べてください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のインストール

https://az412801.vo.msecnd.net/vhd/VMBuild_20141027/VirtualBox/IE8/Windows/IE8.XP.For.Windows.VirtualBox.zip

ここからイメージをダウンロードしてください.

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に編集したのが反映されます.

おわり

これで環境構築はおわりました.

次はいよいよプラグイン開発です.

 

Ref:

ntddk.github.io

poppycompass.hatenablog.jp