正常な EXE ファイルの実行を誘導する情報窃取マルウェアが活発に拡散しているため、注意が必要である。
攻撃者は有効な署名を含む正常な EXE ファイルと不正な DLL を同じディレクトリに圧縮して配布している。EXE ファイルはそれ単体では正常なファイルだが、不正な DLL と同じディレクトリで実行される場合、不正な DLL を自動で実行する。このような手法を DLL ハイジャック(DLL Hijacking)といい、マルウェアの配布によく使われる方式である。
商用ソフトウェアの Crack、Keygen 等に偽装したマルウェアの配布も DLL ハイジャック方式のサンプル割合を増やしつつある。本格的な配布は5月頃に観測され始め、再び8月から最近まで活発に拡散が続いている。
検索エンジンで「各種商用プログラム Crack」と検索すると、不正なサイトが上位に表示され、そのサイトで Download ボタンをクリックすると複数回のリダイレクトを経て最終配布元に到達する。ダウンロードされるファイルは暗号化された RAR 形式の圧縮ファイルであり、パスワードはファイル名または配布ページに記載されている。この圧縮ファイルを解凍したあと内部の正常な EXE ファイルを実行すると、マルウェアに感染する。EXE ファイルは大半が setup.exe、Installer.exe という名前になっており、ほとんどが有名なソフトウェアの実行ファイルであるため、有効な署名を持っている。

不正な DLL ファイルは、オリジナルの正常な DLL ファイルの一部を改ざんして製作されている。改ざんされたコードは同じディレクトリ内の特定のデータファイルを読み込み、復号化したあと実行する振る舞いを行う。マルウェアのデータ全体を DLL ファイルに含める場合、ファイルのアウトラインが大きく変更するため、検知が容易になる。そのため、オリジナルの DLL ファイルから最小限の変更だけで不正な振る舞いを実行するために、このような方式を使用したものと推定される。

結果的に、データファイル、正常な EXE、改ざんされた不正な DLL が一つのディレクトリ内に位置することで、マルウェアが動作する。データファイルは PNG 画像ファイルに偽装している。不正な DLL の改ざん領域は EntryPoint 実行フロー上で必ず実行される特定関数の最後の部分と、一部コード領域およびデータ領域の一部である。コードパターンの検知を回避するためすべてのコードは暗号化されており、メモリ上で復号化して実行する。実行後は、不正な DLL を削除して痕跡を消す様子まで見られる。
最近拡散された以下のサンプルを例に、マルウェア実行プロセスを説明する。
正常な EXE | e634616d3b445fc1cd55ee79cf5326ea (vlc.exe) |
不正な DLL | 58ea42289ae52e82ffcfa20071c32d7a (libvlccore.dll) |
最終的なマルウェア | LummaC2 Stealer |
C2 | hxxp://hokagef[.]fun/api |
配布元サイトからダウンロードした暗号圧縮ファイルをファイル名に明示されたパスワード(「2023」)で解凍すると、以下のようなファイルが作成される。

「Setup.exe」と「libvlc.dll」ファイルは有名ソフトウェアの「VLC Media Player」のコンポーネントで有効な署名を持つ正常なファイルであり、「libvlccore.dll」ファイルが捏造された不正な DLL ファイルである。ファイルの一部が捏造されているため、署名が一致しない。demux、lua 等のディレクトリは正常を装うために含めたデータであり、実際のマルウェア実行とは無関係である。


「Setup.exe」ファイルを実行すると、不正な DLL である「libvlccore.dll」が自動で実行される。不正な DLL は、DLL EntryPoint の実行フローに存在する特定の関数の後半部分が改ざんされている。したがって、DLL ロード時に DLL EntryPoint が実行され、結果的に攻撃者が変更したコードが実行される。

このコードは、同じディレクトリの「ironwork.tiff」ファイルを探して読み込んだあと、当該ファイルをロードして復号化し、実行する機能を持つ。このファイルは今後実行するコード情報が含まれたデータファイルであり、ファイルのヘッダは PNG ファイルだが、ファイル中間部分からは暗号化された不正なデータで満たされている。

システムディレクトリ(SysWow64)の「pla.dll」をロードし、その DLL メモリのコード領域に復号化したコードをインジェクションしたあと、その位置に分岐させる。ほとんどのマルウェアが仮想メモリを割り当ててコードを書き込む方式とは対照的である。
その後のプロセスにおいて使用される API は NTDLL リロケーション手法を使用する。cmd.exe を実行したあとコードをインジェクションして実行するが、このときにも一般的なコードインジェクション方式ではなく、目標プロセスに「pla.dll」をロード(DLL インジェクション)させたあと、その DLL のコード領域にマルウェアをインジェクションする方式を使用する。

このとき、%TEMP% パスに不正な振る舞いに必要なデータファイルを作成し、そのファイルのパスは特定の環境変数で登録され、子プロセスである cmd.exe に継承される。

cmd.exe は EntryPoint が「pla.dll」のコード領域に改ざんされる。そのコードは環境変数に登録されたパスのファイルを読み込んで復号化し、LummaC2 マルウェアのバイナリを作成したあと explorer.exe を実行して、そのバイナリをインジェクションして実行する。
- LummaC2 マルウェアのバイナリ:1d1ef4a4155edb56e8f3c8587fde8df0
したがって、全体的なプロセスツリーの構造は以下の通りとなる。

LummaC2 は情報窃取型のマルウェアで、C2 の応答によって窃取対象を指定し、さらなるマルウェアのインストールが可能なマルウェアである。暗号通貨ウォレット、ブラウザの保存情報、Steam 等のアプリケーション情報、電子メールクライアント情報、特定フォルダーおよび拡張子のファイル等、様々な個人データを窃取することができる。
C2 の応答は XOR キーとデータで構成されており、当該レスポンスを復号化すると、以下のような JSON 形式のデータとなる。C2 の応答は定期的に変わり、これによって詳細な振る舞いも異なってくる。

このような方式の配布は有名なソフトウェアの正常な EXE の実行によって感染し、不正な DLL はオリジナルの DLL ファイルとアウトラインが非常に類似しているため、単純に EXE で配布されるマルウェアとは異なり、発生初期でアンチウイルス製品ベンダーの検知率が非常に少ない方であるため、注意が必要である。
一方、ASEC ではこのような方式のマルウェアの配布に対する自動収集システムによってモニタリングを続けており、変形の発生に素早く対応している。

本文の例示サンプル以外にも様々な正常なファイルと DLL が悪用されており、配布に悪用された正常な EXE ファイルと不正な DLL ファイルに関する情報は以下の通りである。
[IOC 情報]
PSPad.exe | Jan Fiala | 4ec1a433d0c1e6b58da254b506e3444f | libeay32.dll | a3a0395dc0f15e2e92a55dcb7c3a7735 |
WizTree.exe | Antibody Software Limited | cce7eaa082751bdd6780707a9444964d | winmm.dll | c474b9effe72f11e73bfd8e2d5235108 |
WizTree64.exe | Antibody Software Limited | 50a40274ffe963e1f214f9f19746e29e | winmm.dll | 4474e26725db0e84d8418b25137d275b |
InstallShield SetupSuite.exe | Flexera Software LLC | 696e066c4f3d52d5766e724afbdb3594 | xmllite.dll | 483ad6a57ea6cae5696841f07f1177f0 |
TSConfig.exe | Flexera Software LLC | 48c9a0c76b44a5f2729c876085adba4e | FNP_Act_Installer.dll | 89618931cf9487370542ca40509795a4 |
VBoxSVC.exe | Oracle Corporation | c8a2de7077f97d4bce1a44317b49ef41 | VBoxRT.dll | a860b368e9e2aa5cb4e7cb73607d18b1 |
SenseCE.exe | – | 8f0717916432e1e4f3313c8ebde55210 | MpGear.dll | f362e88dd656c5512dbee66efffae107 |
palemoon.exe | Mark Straver | 64e3c6d6a396836e3c57b81e4c7c8f3b | mozglue.dll | 200499eacae55905e27d0b96314cb0c7 |
topoedit.exe | Microsoft Corporation | 88691dbfa349db78f96e3278d1afc943 | tedutil.dll | 8096e5aacfe4dc4ea1afe03ca254982a |
vlc.exe | VideoLAN | e634616d3b445fc1cd55ee79cf5326ea | libvlccore.dll | 61762b4a21b0b7b479d2eac80b630c2e |
Mergecap.exe | Wireshark Foundation | 23ba27d352305f29d201ac5e43fc4583 | libglib-2.0-0.dll | 4b8ac7aab387e01cfa2c53cad3ef69b1 |
AcroBroker.exe | Adobe Systems, Incorporated | a13bfe522abc659704965388ad4581ee | sqlite.dll | e74fb90de19d7cc0b01155f29e6c306f |
VBoxTestOGL.exe | Oracle Corporation | ba99b11a84a19051eca441320af22f4e | QtCoreVBox4.dll | 4f688e1c75cbee5949af010cbc5d4057 |
vlc.exe | VideoLAN | e634616d3b445fc1cd55ee79cf5326ea | libvlccore.dll | 58ea42289ae52e82ffcfa20071c32d7a |
TPAutoConnect.exe | Cortado AG | 1377ef7319507a10d135d5128ac9fbc8 | TPSvc.dll | 12e5c5c08049ecaa5e15d51bbe58fd41 |
C2
- hxxp://go-vvv[.]com/hittest.php
- hxxp://cloudsaled[.]xyz/
- hxxp://cloudsaled[.]xyz/c2conf
- hxxp://warnger[.]xyz/
- hxxp://warnger[.]xyz/c2conf
- hxxp://warnger[.]xyz/
- hxxp://warnger[.]xyz/c2conf
- hxxp://5.42.66[.]17/
- hxxp://nursepridespan[.]fun/
- hxxp://nursepridespan[.]fun/api
- hxxp://paintpeasmou[.]fun/
- hxxp://paintpeasmou[.]fun/api
- hxxp://spreadbytile[.]fun/
- hxxp://spreadbytile[.]fun/api
- hxxp://willywilk[.]fun/api
- hxxp://tfestv[.]fun/api
- hxxp://hokagef[.]fun/api
- hxxp://gonberusha[.]fun/api
関連 IOC および詳細な解析情報は、AhnLab の次世代脅威インテリジェンスプラットフォーム「AhnLab TIP」サブスクリプションサービスを通して確認できる。
Categories:マルウェアの情報