拡張頭蓋 | Extended Cranium

もしかすると誰かの役に立つかもしれないことを書き留めておく

マルウェア解析者向け: TNEF ファイルを解析する Python ライブラリ tnefparse とメール内の MIME パートの内容をダンプする emldump

TNEF ファイルを解析する Python ツール

TNEF ファイルとは何か

tnefparse Python ライブラリの入手場所

サンプルの解析手順

  1. 同ライブラリの tnefparse-script.py で TNEF ファイルの中身を確認。元記事のサンプルでは .ISO が含まれていることがわかる*1

    tnefparse-script.py -o <スキャン対象の TNEF ファイル>

  2. .ISO ファイルを tnefparse で TNEF から抽出し ISO ファイルとして書き出す

    tnefparse-script.py -a <スキャン対象の TNEF ファイル>

  3. さらに 7-Zip で ISO の中身を確認すると、.ISO の中身が .exe であることが確認できる

    7z.exe l <抽出された ISO ファイル名>

  4. さらに 7-Zip で当該 .exe ファイル抽出

    7z.exe -so e <抽出された ISO ファイル名> <書き出す exe のファイル名*2>

  5. 抽出した exe ファイルの先頭部分を pecheck.py で解析すると、Visual Basic v5.0 / v6.0 で作成された PE ファイルであることがわかる

    pecheck.py <抽出された PE ファイル> | headtail.py

同手順で抽出された .ISO の実際の解析*3

元記事 2 で紹介されているメールから添付ファイルを抽出するツール emldump.py

  • emldump.py: メール内の MIME 構造を解析して確認する blog.didierstevens.com
  • emldump.py で抽出する場合のコマンド: 指定した MIME パートを抽出する

    emldump.py -s <確認した MIME パートの番号> -d <添付ファイル名> > <抽出した後書き出すファイル名>

この後の手順は元記事 1 と同じ

*1:.ISO は CD や DVD などのイメージファイル

*2:保存するファイル名は拡張子を exe ではなく exe.var などとして誤ってダブルクリックして起動しないようにする

*3:元記事 2 では tnefparse ではなく emldump を使って抽出しています。解析対象メールの形式が OUTLOOK のような MS プロプライエタリ形式ではなく、通常のテキスト形式であったためと思われます。解析対象のメール形式にあわせてツールを選べばよいようです