マルウェア解析奮闘記: コマンド実行のエラー文が日本語でないと動作しないマルウェア
- Windows
- このマルウェアの日本語設定の確認方法として、コマンドのエラー文を用いるという過去見られなかった手口が利用されていました。
マルウェア概要
図 「領収書.doc」を開いたところ
図 「領収書.doc」のマクロを有効にした際のエラーダイアログ
- 昇格された権限でpack.exeを実行
- Ammyy Adminのサービス登録とファイアウォール設定変更後に、Ammyy Admin等の実行
最終的にリモートアクセスツールのAmmyy Adminが実行されることで攻撃者からリモートアクセスが実行される状態になります。
Ammyy Adminはロシアのソフトウェア会社が公開している正規のリモートアクセスツールですが、近年の標的型攻撃ではこのツールをRATとして利用して情報窃取や破壊活動に利用されることが報告されています。
図 動作の流れが異なるdata.exeのプロセスツリー
OSの言語設定が日本語の場合の「test.txt」のMD5ハッシュ値
$ md5 test_ja.txt
MD5 (test_ja.txt) = 22dcce989306ec47da684017ff08a186
OSの言語設定が英語の場合の「test.txt」のMD5ハッシュ値
$ md5 test_en.txt
MD5 (test_en.txt) = cfac7eab59907a0ad4333a2e09abba47
日本語の場合の「test.txt」は、次のように日本語のエラー文が書き込まれています。
図 日本語設定での「test.txt」の内容
対して、英語の場合のtest.txtは、次のように英語のエラー文が書き込まれていました。
図 英語設定での「test.txt」の内容
流れ3.の”cmd /c \”はエラーが発生するコマンドですが、そのエラー文が日本語設定の出力でないと対象のハッシュ値になりません。つまり、日本語設定以外のOSでは、rarファイルが展開できず次のステージの攻撃が発動しないようになっていました。
このMD5ハッシュ値の計算をデバッガで調査したところ、data.exeが同時に作成していたmd5dll.dllのGetMD5File関数を用いてtest.txtのハッシュ値を実行していました。
図 GetMD5File関数を実行する前 test.txtのパスが渡されている
図 GetMD5File関数を実行した後 test.txtのMD5ハッシュ値が計算されている
日本語設定のOSでのみ攻撃が発動する点から、攻撃者が日本の組織のみを狙っていることは間違いないかと言えます。
結論
OSのキーボード設定や言語設定をWindows APIを用いて取得して、その結果によって動作を変えるマルウェアは知られていますが、エラー文の言語が異なることを利用して動作を変えるマルウェアは弊社では初めて観測した手口です。また、確実に日本の組織を狙っている手口である点も非常に興味深い点です。
そのため今後、今回観測された手口及び応用した手口が発生する可能性があるため、内容を皆様に共有いたします。
- 領収書.doc
- SHA256:
- data.exe
- SHA256: 2fc55cdeb7e223938e588ee86605f14f87f1ae1c7b238dc16c93b3374c2182ba
- pack.exe
- SHA256: f10f7f929066e18b0793d46e950bc0ef636058bf5ed61726b43eb341c531f830
- svrpvs.exe (Ammyy Admin)
- SHA256: 1831806fc27d496f0f9dcfd8402724189deaeb5f8bcf0118f3d6484d0bdee9ed
- mobupd.exe
- SHA256: 468d8dad41a88a6792db93bf4b1354effaa6f97fff049f05e41fa246aacf5aa9
- data.exe ダウンロードURL
- http[:]//caritadigesu[.]jp/news/news.php
- マルウェアC2アドレス
- http[:]//mo-sa-ic[.]com/news/data/id.php
- http[:]//www[.]astorerobot.co[.]jp/cart/data/comment/news.php