古き良き Microsoft Office マクロと同様に、コンパイルされた HTML(CHM)ヘルプファイルは、 悪意のあるダウンローダコードをファイルに潜入させて、発見されることを困難にするために、 マルウェア作成者によって 10 年以上にわたり使われています。CHM は、マイクロソフト独自 のオンラインヘルプファイルで、単一の圧縮ファイル形式にコンパイルされた一連の HTML ペ ージで構成されています。CHM の最も一般的な使用方法は、オフラインのソフトウェアマニュ アルとヘルプガイドです。
最近我々は、ブラジルのある機関を標的とする CHM 添付ファイル付きのスパムメールキャン ペーンを観測しました。
分析
CHM はコンテナファイルであり、非圧縮時には HTML オブジェクトの集合で構成されます。こ のサンプルでは、目的のオブジェクトは Load_HTML_CHM0.html です(下の画像に示されてい ます。これは、CHM ファイルの Secure Email Gateway アンパックツリーです)。この HTML は、 CHM ファイルを開いたときに読み込まれる主なオブジェクトです。
Microsoft Help Viewer(hh.exe)がこの HTML オブジェクトを読み込むと、open()という名前の JavaScript 関数が実行されます。
この関数 open()は、データブロックをデコードし、Base64 と XOR で 2 つのデコードレイヤーを 実行します。
次に、デコードされたデータは、以下の悪質な PowerShell(PS)スクリプトの実行を可能にする ClassID "adb880a6-d8ff-11cf-9377-00aa003b7a11"でオブジェクトを形成します。
攻撃がレーダーをかい潜って飛ぶことができるように、PowerShell コマンドは、「hh.exe」(CHM ファイルを実行するプログラム)のインスタンスを終了し、ウィンドウスタイルを非表示に設定す ることによって、バックグラウンドでサイレントモードで実行されます。その後、Base64 でエンコ ードされたコマンドを呼び出して、Google サイトでホストされている 2 段目の PowerShell スクリ プトをダウンロードします。
2 番目のペイロードは Bancos Trojan バイナリとコンポーネントを%Appdata%\Sysinit フォル ダにダウンロードし、%Appdata%\SysRun にコピーします。
ただし、これらのファイルは感染したシステムにドロップされると、ファイル名がランダムに変更 されます。この例では、ファイル名が次のように変更されています。
Download URL |
Download Path and Renamed To |
hxxps://sites[.]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/server.bin |
C:\Users\<USERNAME>\AppData\Roaming\SysInit\negoexts94.exe |
hxxps://sites].]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/CRYPTUI.bin |
C:\Users\<USERNAME>\AppData\Roaming\SysInit\CRYPTUI.dll |
hxxps://sites].]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/XSysInit.bin |
C:\Users\<USERNAME>\AppData\Roaming\SysInit\profprov.sys |
hxxps://sites].]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/mouse.bin |
C:\Users\<USERNAME>\AppData\Roaming\SysInit\KBDHE220.cur |
hxxps://sites].]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/base.bin |
C:\Users\<USERNAME>\AppData\Roaming\SysInit\dpnhpast.db |
hxxps://sites].]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/cmd.bin |
C:\Users\<USERNAME>\AppData\Roaming\SysInit\cryptui8t.exe |
hxxps://sites].]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/rmv.bin |
C:\Users\<USERNAME>\AppData\Roaming\SysInit\wmidxdv.kdl |
主要コンポーネントの実行可能ファイルは次のとおりです。
Server.bin - DLL から悪質なコードを呼び出す CRYPTUI.DLL から API をインポートする
cmd.bin - このファイルは正当なコマンドラインツールアプリケーション
XSysInit.bin - このバイナリはマウスとキーボードのイベントをキャプチャする
CRYPTUI.DLL - 最初の偵察と追加のペイロードのダウンロードを担当する server.bin ファイ ルによってロードされる
ユーザーがログインしたときにマルウェアを実行するために、3 つのスケジュールされたタスクが作成されます。名前形式のAutoUpdater に続いて 6 つのランダムな英数字(例: AutoUpdater8ga9ek)がタスク名として使用されます。
その後、悪質な PowerShell スクリプトによって強制的に再起動され、マルウェアが確実に実行されます。
タスクスケジューラは、Server.bin(negoexts94.exe に名前が変更された)を実行するためにサ ードパーティのコマンドラインユーティリティを実行します。この実行可能ファイルは、 API CryptUIWizExport をインポートして、コンポーネントファイル CRYPTUI.DLL をロードします。
DLL がロードされると、悪意のあるコードが生成され、iexpress.exe という名前の新しいプロセ スに注入されます。次に、ユーザー名やコンピュータ名などのシステム情報を取得し、制御サ ーバー(200.98.116.239:80)に報告します。
また、Google サイトでホストされている追加のペイロードをダウンロードしようとします。
まとめ
先に述べた攻撃の概要は、トロイの木馬の CHM 添付ファイルを含む電子メールから発生す るマルウェア感染の複数の段階をハイライトして います。ユーザーが CHM を開くと、PowerShell の第 2 段階のスクリプトをダウンロードする小さ な PowerShell コマンドが実行されます。永続性 は、ユーザーがログインしたときにマルウェアを 実行するスケジュールされたタスクを作成するこ とによって達成されます。
攻撃を複数段階に分けて行うのは、攻撃者が AV スキャナのレーダーをかい潜るための典型 的なアプローチです。実際、この記事の執筆時 点では、我々がこのサンプルを発見してから 1 ヶ月以上経つにもかかわらず、60 個の AV スキ ャナのうちたったの 8 個だけしか検出できませ んでした。
侵害証跡(IoCs)
Download URL |
SHA-256 |
hxxps://sites[.]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/server.bin |
6d2dbba7e93600d624f2da77317e87130a25456213ba5a8cadfa90ee82932911 |
hxxps://sites].]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/CRYPTUI.bin |
b171e7aff8cbfc86a45cf7a943bdeb1e42de007bf7e90bc70edebadc476a05ea |
hxxps://sites].]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/XSysInit.bin |
75c3e39dc2a6252a4ed535bd00ec78254313a687f51cb8f5b9f0c5a65d871f40 |
hxxps://sites].]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/mouse.bin |
5c7ab9e90b05804d07e9d803f85462bc1a44d0726256bad28219984ee2b5772f |
hxxps://sites].]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/base.bin |
37b622aee65a0f9996e1d4a65c915629acb44927ecffc70b7c25318866620fcf |
hxxps://sites].]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/cmd.bin |
31b3b228382dc359f22ae97b2602eee81dc743fb21196061eacc6619533881f5 |
hxxps://sites].]google[.]com/site/79s564fg105s6f4gsg56sd4g0s54dg/rmv.bin |
c07f3c06663d350bff3349e09452c989a76c85d5920e3eb9be738f2069c57974 |