p.006 pefileを使ってPEフォーマットを分析(マルウェアデータサイエンス)
www.malwaredatascience.com
まず、VMのova(BookVM.ova)を上のページ(Ubuntu Virtual Machine)からダウンロードしておく。
このダウンロードがなかなか出来ない。
BookVM.ovaをVBにインポートする。
そして、VMを起動させ、
上のページにかかれているように、
The username is "osboxes.org" and the password is "osboxes.org".
ということで進める。
まず、デバイスのクリップボード共有を双方向に設定して、
VMをrebootする。
これでターミナルの文字をコピペできるようになる。
$ cat /etc/os-release NAME="Ubuntu" VERSION="17.10 (Artful Aardvark)" # と分かる。 ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 17.10" VERSION_ID="17.10" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=artful UBUNTU_CODENAME=artful
$ pwd /home/osboxes osboxes@osboxes:~$ ls -lF total 12 drwxr-xr-x 2 osboxes osboxes 4096 Oct 22 2017 Desktop/ drwxr-xr-x 2 osboxes osboxes 4096 Oct 22 2017 Downloads/ drwxr-xr-x 12 osboxes osboxes 4096 Sep 3 2018 malware_data_science/ # サンプルコードなどがすでにある。 $ ls -lF malware_data_science/ total 40 drwxr-xr-x 2 osboxes osboxes 4096 Sep 3 2018 ch1/ drwxr-xr-x 4 osboxes osboxes 4096 Sep 3 2018 ch11/ drwxr-xr-x 2 osboxes osboxes 4096 Sep 3 2018 ch2/ drwxr-xr-x 2 osboxes osboxes 4096 Sep 3 2018 ch3/ drwxr-xr-x 4 osboxes osboxes 4096 Sep 3 2018 ch4/ drwxr-xr-x 4 osboxes osboxes 4096 Sep 3 2018 ch5/ drwxr-xr-x 2 osboxes osboxes 4096 Sep 3 2018 ch6/ drwxr-xr-x 2 osboxes osboxes 4096 Sep 3 2018 ch7/ drwxr-xr-x 4 osboxes osboxes 4096 Sep 3 2018 ch8/ drwxr-xr-x 4 osboxes osboxes 4096 Sep 3 2018 ch9/
1.2 pefileを使ってPEフォーマットを分析する
- PythonモジュールのpefileはPEファイルを調べるためのデファクトスタンダードなライブラリ(Ero Carerraによって作成・管理されている)
-
- ch1/ircbot.exeを分析する。
$ pip -V pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7) $ pip list installed | grep pefile DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning. pefile (2017.11.5) $ pip install pefile # VMには既にインストールされているので、これを実行する必要はない。
$ cd ~/malware_data_science/ch $ ls fakepdfmalware.exe fakeword.exe ircbot.exe $ python --version Python 2.7.14 $ python >>> import pefile >>> pe = pefile.PE("ircbot.exe") >>> for section in pe.sections: ... print(section.Name, hex(section.VirtualAddress), hex(section.Misc_VirtualSize), section.SizeOfRawData) ... ('.text\x00\x00\x00', '0x1000', '0x32830', 207360) ('.rdata\x00\x00', '0x34000', '0x427a', 17408) ('.data\x00\x00\x00', '0x39000', '0x5cff8', 10752) ('.idata\x00\x00', '0x96000', '0xbb0', 3072) ('.reloc\x00\x00', '0x97000', '0x211d', 8704)