LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

テクニカルレポート | 

中国圏拠点のMustang Pandaがマルウェア「Claimloader」で標的型攻撃、日本にも影響か

ラックの石川です。
2022年11月、ラックの脅威分析チームは、中国圏を拠点とするMustang Pandaと呼ばれる攻撃者グループがフィリピン政府組織または関連組織を標的としていると考えられる新たな活動を確認しています。この攻撃では、日米比三カ国会議(The U.S.-Japan-Philippines Security Triangle: Enhancing Maritime Security, Shared Strategic Outlooks, and Defense Cooperation)※1に関連する文書を装ったアーカイブファイルが利用されていました。会議の内容から見ても、日本組織にも同様の攻撃が行われている可能性があるため、今回は、このアーカイブファイルから展開される一連の攻撃について紹介します。

※1 JIIA -日本国際問題研究所-

図1は、アーカイブファイル(for PH-JP-US Trilateral Cooperation(11-07-2022).zip)からの一連の攻撃の流れを示した概要図です。

アーカイブファイルからの攻撃の概要図
図1 アーカイブファイルからの攻撃の概要図

このアーカイブファイルには、2つのファイルが含まれており、1つは、"for PH-JP-US Trilateral Cooperation.exe"というファイル名のMicrosoft社が提供する正規ファイル(AccEventツール)です。もう1つのファイルが、"EVENT.dll"というファイル名のマルウェアClaimloaderであり、DLLサイドローディング手法を悪用して、正規のAccEventツールが実行される際に読み込まれます。

Claimloaderについて

Mustang Pandaは、PlugX、Cobalt Strike、Metasploit Framework(Meterpreter)などの様々なツールやマルウェアを攻撃活動に利用することが知られていますが、2021年12月下旬からシェルコードを内包する新しいマルウェアClaimloaderを利用することを確認しました。このマルウェアは、Cisco Talos社が2022年5月に報告したMustang Pandaに関するブログ※2において、"Bespoke stagers(カスタムステージャ)"として紹介されていますが、今回確認した2022年11月の検体ではいくつか機能の追加や変更が行われていました。以降では、ブログでは触れられていない点や変更点、新しく実装された機能について、新旧の機能を比較しつつ紹介します。

※2 Mustang Panda deploys a new wave of malware targeting Europe

主張(メッセージ)

Mustang Pandaは、しばしば自身が作成するマルウェアの中にキーワードやメッセージを埋め込み、MessageBox()関数やOutputDebugString()関数などを利用して、これらの内容を表示する機能を実装しています。2022年8月および11月に確認したClaimloaderでは、米国の選挙に関するキーワードなどが含まれていることがわかります。(図2)

Claimloader内に埋め込まれたメッセージの一部 2022年8月
Claimloader内に埋め込まれたメッセージの一部 2022年11月
図2 Claimloader内に埋め込まれたメッセージの一部(上:2022年8月/下:2022年11月)

アンチデバッグ機能

図3に示すように、実行されると、IsDebuggerPresent()関数およびCheckRemoteDebuggerPresent()関数を呼び出し、自身がデバッカー等を利用して解析されているかどうかをチェックします。この際に1秒以内に処理が進まないと解析が行われていると判断し、処理を終了させます。この機能は、2022年11月のClaimloaderから実装されています。

アンチデバック機能
図3 アンチデバック機能

永続化機能

Claimloaderは、永続化機能として、タスクスケジューラおよびRunレジストリキーを利用します。図4に示すように、Runレジストリキーへの登録がregコマンドを実行する方法から新しい検体では、SHSetValueA()関数を呼び出し、レジストリキーの値を設定する方法に変更されていました。

Runレジストリによる永続化機能(旧)
Runレジストリによる永続化機能(新)
図4 Runレジストリによる永続化機能(上:旧/下:新)

一方、タスクスケジューラへの登録方法については、実行されるファイルやパス名の違いはありますが、実行コマンドには大きな変化はなく、今回の検体では図5のようなコマンドを実行し、1 分おきに自身を実行するスケジュールタスクをシステムに作成します。

タスクスケジューラによる永続化機能
図5 タスクスケジューラによる永続化機能

シェルコードの実行方法

旧Claimloaderでは、CreateThread()関数を利用してメモリ領域上に展開されたシェルコードを実行していましたが、今回の検体では、CryptEnumOIDInfo()関数を利用して、シェルコードを実行します。(図6)
その他の類似検体では、LineDDA()関数、GrayStringW()関数やEnumDateFormatsA()関数を利用しており、攻撃者は、攻撃キャンペーンに応じて、シェルコードの実行方法を様々に変更しているようです。

シェルコードの実行方法(旧)
シェルコードの実行方法(新)
図6 シェルコードの実行方法(上:旧/下:新)

また、この実行されるシェルコードは、0x20バイトごとに分割されて格納されており、それぞれカスタムAES(鍵スケジュール関数やAddRoundKey関数などが標準と異なる)で暗号化されています。図7は、格納されたコードの一例であり、このケースでは、青線枠が暗号化されたシェルコードの一部、赤線枠が暗号鍵です。

Claimloaderに含まれる暗号化されたシェルコード(一部)
図7 Claimloaderに含まれる暗号化されたシェルコード(一部)

シェルコードについて

シェルコードは、新たなシェルコードをC2サーバからダウンロードし、実行するダウンローダのような役割を持ちます。シェルコードが呼び出すAPI名は、ror13AddHash32でハッシュ化されており、また、通信先のC2サーバは、リトルエンディアンでハードコードされています。(図8)

ハードコードされた通信先
図8 ハードコードされた通信先

このシェルコードもCisco Talos社が報告する検体から変更が加えられ、今回の検体ではC2サーバへの通信方法が異なっていました。旧検体は、図9に示すようにソケット通信で80/TCPを利用し、C2サーバへリクエストを送信していましたが、新検体では、HTTP POST通信が利用されていました。(図10)

ソケット通信
図9 ソケット通信
HTTP POST通信
図10 HTTP POST通信

POST通信の送信データは、図11で示すように"ボリュームシリアル番号、システム起動後の経過時間(一部)、ホスト名およびユーザー名"が含まれており、RC4で暗号化されています。なお、暗号鍵は" 0x785a124d751414116c0271155a7305087014653b644222232000000000000000"であり、旧検体と同じキーが継続して利用されています。

C2サーバに送信するデータ
図11 C2サーバに送信するデータ

最後に、改めてPOST通信を確認してみると、Hostヘッダには"www.asia.microsoft.com"が指定されていますが、この検体のC2サーバは、図8の示すように"158.255.2[.]63"であり、Hostヘッダが攻撃者によって偽装されていることがわかります。

このような通信が発生した場合、セキュリティ機器によっては、C2サーバへの通信が"microsoft.com"へアクセスしているように記録されてしまう可能性があるため、通常通信と誤認しないように注意が必要です。

まとめ

Mustang Pandaは、アジア諸国、欧州連合、米国など、世界各地の政府機関や関連組織を標的とし、積極的に活動していることが報告されています。特に、昨今はミャンマー、フィリピン、タイといったアジア諸国へのClaimloaderを利用した攻撃が散見されています。日本組織においても、その攻撃活動の影響を確認しており、弊社では、2021年3月頃にPlugXを利用された事案を確認しています。今後、本格的に日本組織をターゲットとしてくる可能性も考えられますので、その活動を注視していく必要があると考えます。

ラックの脅威分析チームでは、今後もこの攻撃者グループについて継続的に調査し、広く情報を提供していきますので、ご活用いただければ幸いです。

IOC(Indicator Of Compromised)

Claimloaderハッシュ値(MD5)

10cd7afd580ee9c222b0a87ff241d306
694b7966a6919372ca0cf8cf49c867d9
11689d791ed4c36fdc62b3d1bcf085b1
6391ab75ac20f2f59179092446ed5052
27ebc3afcca85151326c4428e795d21d
268d61837aa248c1d49a973612a129ce
a84958c32cd9884a052be62bdbe929cf
f826e9e84b5690725b5f5a0cd12ed125
4a2992b4c7a1573bf7c74065e3bf5b0d
e7d91f187ff9037d52458e2085929409
793d0e610ecac2da4a8b07ff2ff306ac
f6aa6056a4c26ab02494dfaa7e362219
8f539d19929fdaa145edd8f7536ec9c9
d78e0a4a691077a29e62d767730b42bf

アーカイブファイル ハッシュ値(MD5)

d1ec01ff605a64ab8c12e2f3ca2414a4
69b40a4dbca10fe6b6353f3553785080
19f22b4c9add7d91a18b2e3de76757a3
a0e268be651237d247b00de5054d46ef
ae358c1915e794671a1d710d9359146d
fcd6691fc59610a50740a170a8a5a76f
a1c010659ea4b06461d5a99d16a91f24
951233cbe6bb02b548daf71cc53f7896
b9327186666fd00ae01bc776006b85ae

通信先

103.15.28[.]208
103.15.29[.]179
158.255.2[.]63
202.53.148[.]24
202.58.105[.]38
89.38.225[.]151

この記事は役に立ちましたか?

はい いいえ