RPISEC Malware Lab#01 をやった その2

RPISEC/Malwareとはマルウェア解析について体系的に学ぶことができる教材のこと。 今回はその中のLab_01-2.malwareを解析した。

Lab_01-2.malware

1. これのMD5ハッシュ値は何?

02658bc9801f98dfdf167accf57f6a36

2. インポートされた関数やそれらのまとまりをいくつか取り上げてマルウェアでどのように使われているか説明せよ

  1. ネットワーク関連(特にHTTP)のAPI - HTTPでファイルか何かをやりとりしている予想される
  2. ファイルを読み書きするAPI - ファイルを読み込んだり書き換えたりしていると予想される
  3. Sleep - 一定時間実行を遅らせることで解析を妨害していると予想される

3. ファイルの文字列で手がかりになりそうなものはどれか

  1. cmd /c - コマンドを実行する
  2. wuauclt.exe - 実行されるファイル名
  3. 69.25.50.10 - 接続先

4. このマルウェアを動かした時に予想される挙動はどのようなものか

ネットワーク越しにファイル(おそらくマルウェア)をダウンロードしサービスとして登録する

5. procmonでフィルタをかける際に使う名前とそれを使う理由

実行時のプロセス名。プロセスの挙動を追うため。

6. ホストベースのシグネチャとなりそうなものは何か(ファイルやレジストリキー、プロセスやらサービス、その他)。もしも存在していたらどのようなものか

wuauclt.exe use error! putf [transpeed] [filepath] 他にも文字列を見ているとコマンドを受け取り実行しそうな感じがする。 stringsで見ただけなのであくまで予想。

7. ネットワークベースのシグネチャとなりそうなものは何か(URL, 通信, その他)。もしも存在していたらどのようなものか

69.25.50.10

8. 解析を妨害する機能は存在するか。存在していた場合、どのようにそれを回避するか

sleep これを回避する方法 * sleep に飛ぶ命令をnopで潰す * 実行時にsleep命令を書き換えるを変更する * 実行時に時間計測系APIへの戻り値を書き換える

9. このマルウェアの目的は何か

ネットワークから他のマルウェアをダウンロードしサービスとして登録する

参考

Practical Malware Analysis