新たなマルウェア「Winos4.0」、国税局なりすましで台湾企業に拡散

文●フォーティネットジャパン 編集●ASCII

提供: フォーティネットジャパン

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はフォーティネットジャパンが提供する「FORTINETブログ」に掲載された「公式メールのなりすましでWinos4.0が台湾ユーザーに拡散」を再編集したものです。

影響を受けるプラットフォーム: Microsoft Windows
影響を受けるユーザー:     Microsoft Windowsユーザー
影響:             窃取された情報が将来の攻撃に利用される
深刻度:            高

 2025年1月、FortiGuard LabsはWinos4.0を使った攻撃を確認しました。これは最近の攻撃でよく使用されている高度なマルウェアフレームワークで、台湾企業を標的にしています。攻撃チェーンの一例を図1に示します。通常は、悪意のあるDLLファイルの読み込みだけに使用されるローダーが存在します。C2サーバーからシェルコードがダウンロードされ、Winos4.0モジュールはそのシェルコードから抽出されます。

図1:攻撃フロー

フィッシング

 2024年11月に発表されたレポートによると、Winos4.0はゲーム関連のアプリケーションを通じて配信されていましたが、2025年1月の攻撃では台湾の国税局を装ったEメールを介して拡散されました。送信者は、添付した不正ファイルを税務調査が予定されている企業のリストであると説明し、受信者にその情報を企業の会計責任者に転送するよう要請していました。

図2:フィッシングメール

 添付ファイルも台湾財政部の公式文書に偽装されています。被害者に対し、添付されている税務調査の対象企業リストをダウンロードするよう促します。しかし、このリストは次の攻撃段階で使用される不正なDLLが含まれたZIPファイルです。

図3:フィッシングメールに添付されたPDFファイル

lastbld2Base.dllとそのシェルコード

 ZIPファイル内のファイルは、20250109.exe、ApowerREC.exe、lastbld2Base.dllの順に実行されます。20250109.exeはランチャーで、本来は./app/ProgramFilesにある本物のAPowerREC.exeを実行するために使用されます。攻撃者はこれと同じフォルダ構造をZIPファイル内に作成し、ローダーを使用してApowerREC.exeを置き換えました。偽のApowerREC.exeは何も実行しませんが、lastbld2Base.dllからインポートされた関数を呼び出します。

 実行ファイルが起動すると、すべての必要なDLLファイルが読み込まれ、エントリ関数が実行されます。その結果、偽のApowerREC.exeが実行されると、不正コードが配置されているlastbld2Base.dllのDLLMain関数が読み込まれます。

図4:偽のApowerREC.exeのエントリポイント

 lastbld2Base.dllはデータを復号し、次の段階で使用するシェルコードを取得します。シェルコードの下部には、C2サーバーのIPアドレス、次の段階の基本レジストリキーの名前、現段階の機能に対応するフラグなどの設定が記述されています。

図5:シェルコード下部の設定

 オプション機能には、権限の評価、現行プロセスのウィンドウの非表示、アンチサンドボックスなどがあります。攻撃に高い権限が必要な場合は、レジストリキーHKEY_LOCAL_MACHINE\SOFTWAREを開き、管理者としてApowerREC.exeを実行することで現在の権限をテストします。

 アンチサンドボックス機能は、2つのスクリーンショットを2秒間隔で取得します。2つ目のスクリーンショットで20,000を超える画素が変化している場合は、そのコンピュータ上でユーザーがアクティブであると判断し、残りのタスクを実行します。そうでない場合は、引き続きスクリーンショットを取得し、最大1時間にわたって1つ目のスクリーンショットとの比較を行います。オプション機能の実行後、マルウェアは暗号化されたシェルコードデータとWinos4.0モジュールをC2サーバーからダウンロードします。暗号化データはHKEY_CURRENT_USER\B118D5E900008F7Aに書き込まれます。これは次の段階で設定に使用する基本レジストリで、値名は「0」です。その後、データを復号してシェルコードを取得し、続いて部分的に復号されたモジュールのデータを取得します。

サーバーから取得したシェルコード

 新しいシェルコードは、別のアルゴリズムでデータを復号してDLLファイルを取得し、エクスポートテーブルを解析して唯一のエクスポート関数のアドレスを取得します。

図6:シェルコードに続くWinos4.0モジュールのデータ

登录模块.dll(ログインモジュール)

 この攻撃では、C2サーバーから取得したモジュールによって、異なるタスクを実行する8つのスレッド、すなわちMainThread、CloseWindow、Screenshot、Keylog、Clipboard、USB、ReadReg、Anti-AVが作成されます。

MainThread

ミューテックス:Global\MainThreadB118D5E900008F7A

 MainThreadは、残りの7つのスレッドを作成します。さらに、以下のアクションを実行します。

・永続化
 親プロセスがservice.exeの場合、そのコピーをC:\ProgramData\BITTS2.exeとしてドロップします。

・スクリーンセーバーの無効化
 特定の定数を使用して以下のAPIを呼び出し、コンピュータが稼働している状態を維持します。

・UACのバイパス
 以下のレジストリキー値を指定された値に変更し、UAC(ユーザー アカウント制御)プロンプトをバイパスします。

・DLLの実行
 HKEY_CURRENT_USER\B118D5E900008F7A\PLUG\0\{キー名}の値に格納されたデータを復号します。結果は{キー名}.dllというファイルに書き込むか、メモリに読み込むことができます。

図7:C2サーバーから取得した暗号化データ

・ユーザー情報の収集
 コンピュータ名、アーキテクチャ、バージョン、アンチウイルスソフトウェア、ビデオキャプチャデバイス、タイムスタンプを収集します。

CloseWindow

ミューテックス:Global\ClosewWindow

 EnumWindows関数を呼び出して、表示可能なウィンドウをすべて列挙し、kxecenter(Kingsoft Security)とHipsTray(Huorong)のウィンドウを探します。ウィンドウの幅をチェックし、それがセキュリティプロンプトウィンドウであることを確認します。目的のウィンドウが見つかったら、プロンプトウィンドウで[Permit(許可)]ボタンをクリックします。

図8:Huorongのプロンプトウィンドウ

Screenshot

ミューテックス:Global\ScreenShotB118D5E900008F7A

 HKEY_CURRENT_USER\B118D5E900008F7Aの値picshotdataに格納されたキーワードが含まれるアプリケーションのスクリーンショットを取得します。スクリーンショットはC:\ProgramData\B118D5E900008F7A\{キーワード}\{日付}に保存されます。

 picshotdataが存在しない場合、このスレッドは実行されません。

図9:フォルダ構造の例

Keylog

ミューテックス:Global\KeylogB118D5E900008F7A

 HKEY_CURRENT_USER\B118D5E900008F7AでKEYLOGの値を継続的にチェックします。この値が1の場合は、ミューテックスC:\ProgramData\B118D5E900008F7A\Regedit.logを作成し、ユーザーのキーストロークとクリップボード内のコンテンツの記録を開始します。このデータはC:\ProgramData\B118D5E900008F7A\Regedit.logに書き込まれます。

図10:Regedit.logの例

Clipboard

ミューテックス:Global\ClipboardB118D5E900008F7A

 クリップボード内のキーワードを、HKEY_CURRENT_USER\B118D5E900008F7Aのレジストリ値「clipboarddata」に保存されたテキストに置き換えます。この値にはMode、Expression、Replaceの3つのプロパティが含まれます。Modeが「Modify」の場合、Expressionはクリップボード内で検索するパターンを指定し、Replaceは置換を指定します。
clipboarddataが存在しない場合、このスレッドは実行されません。

USB

ミューテックス:Global\UsbB118D5E900008F7A

 接続されているUSBデバイスの名前を3秒ごとに収集します。ただし、mouse、keyboard、wlan、lenovo、sanmsung(samsungのスペルミス)をキーワードとして含むデバイスは除外されます。新しいUSBデバイスの着脱があった場合はデバイスリストを更新し、「USBデバイスの挿入」または「USBデバイスの取り外し」を意味する中国語の注釈を付けます。

図11:中国語による接続デバイスリストの変更記録

ReadReg

 HKCU\Consoleから値「B118D5E900008F7A0」を読み取り、シェルコードを取得し、それを5秒間隔で実行します。

Anti-AV

 まず、MainThreadのセクションで前述したレジストリキーの値を変更し、UACプロンプトをバイパスします。次に、GetTcpTable2を呼び出して、有効なTCP接続を取得します。TCP接続が360Safe、Kingsoft、またはHuorongプロセスによって所有されている場合は、その接続を無効にします。

その他の攻撃チェーン

 この攻撃に使用される攻撃チェーンは他にもあります。

図12:別の攻撃フロー

 查看10.exe(view10)は、Nuitkaを使ってPythonスクリプトからコンパイルされたもので、不正ファイルのPython311.dllを読み込みます。Python311.dllのシェルコードは自身のデータを復号してDLLファイルを取得し、このDLLファイルが別のシェルコードをHKCU\Console\のhrqnmlb{XXXXXX}のレジストリ値に書き込みます。このシェルコードは、bb.jpgとしてC:\Users\Public\Downloadにも保存されます。このシェルコードは、前述したlastbld2Base.dllのシェルコードと同じ役割を果たします。ただし、そのマーカー文字列は、2024年11月に発表されたレポートに記載されているものよりも前のバージョンで使用されています。

図13:レジストリキーとbb.jpgのシェルコード

 もう一つの注目点は、DLLに図13と同じシェルコードのスニペット(C2ドメインを除く)が複数含まれていることです。この攻撃では9010[.]360sdgg[.]comのみが使用されていますが、それ以外のドメインもさまざまな攻撃で観測されています。

図14:DLLファイルで確認された複数のシェルコードのスニペット

 上线模块.dll(オンラインモジュール)は、WeChatとオンラインバンクのスクリーンショットを取得するために使用されており、akagi.exeはUACMeのモジュールです。

結論

 Winos4.0はレジストリキーを巧みに利用します。C2サーバーはオプション機能の大半の設定を書き込み、データを基本レジストリキーとそのサブキーの値に暗号化します。これにより、オプション機能に柔軟性が加わります。ただし、これはフォレンジック分析にとっても有効な手掛かりとなります。私たちは、データからファイルを再作成し、さらに分析を進めました。FortiGuard Labsは引き続きこれらの攻撃を監視し、必要に応じて適切な防御を提供します。

フォーティネットのソリューション

 FortiGuardアンチウイルスは、このブログで解説したマルウェアを以下の不正プログラムとして検知しブロックします。

PDF/Agent.A6DC!tr.dldr
W32/Agent.7BBA!tr
W64/UACMe.O!tr
W64/ValleyRat.A!tr.spy

 FortiGate、FortiMail、FortiClient、FortiEDRは、FortiGuardアンチウイルスサービスをサポートしています。これらの各ソリューションには、FortiGuardアンチウイルスエンジンが含まれています。したがって、最新の保護機能を備えたこれらの製品をお使いのお客様は、脅威から保護されています。

 FortiGuard CDR(コンテンツ無害化)サービスは、FortiGateとFortiMailの両方で動作し、ドキュメント内の不正なマクロを無効化できます。

 フォーティネットでは、無償でご利用いただけるNSEトレーニングモジュール:FCF Fortinet Certified Fundamentalsの受講もお勧めしています。このモジュールは、エンドユーザーがフィッシング攻撃を特定して自らを保護する方法を習得することを目的としています。

 FortiGuard IPレピュテーションおよびアンチボットセキュリティサービスは、フォーティネット分散ネットワークから入手した不正送信元IPデータを集約し、攻撃を事前にブロックします。この分散ネットワークでは、脅威センサー、CERT、MITER、協力関係にある他社、その他のグローバルソースが連携し、悪意ある送信元に関する最新の脅威インテリジェンスを提供しています。

 組織がWinos4.0やその他のサイバーセキュリティ攻撃を受けていると思われる場合は、フォーティネットのグローバルFortiGuardインシデントレスポンスチームまでご連絡ください。

IOC(Indicators of Compromise:侵害指標)

IP
43[.]137[.]42[.]254
206[.]238[.]221[.]60
206[.]238[.]221[.]240
124[.]156[.]100[.]172
206[.]238[.]221[.]244

ドメイン
1234[.]360sdgg[.]com
9001[.]360sdgg[.]com
9002[.]360sdgg[.]com
9003[.]360sdgg[.]com
9005[.]360sdgg[.]com
9006[.]360sdgg[.]com
9007[.]360sdgg[.]com
9009[.]360sdgg[.]com
9010[.]360sdgg[.]com
ffggssa-1329400280[.]cos[.]ap-guangzhou[.]myqcloud[.]com
fuued5-1329400280[.]cos[.]ap-guangzhou[.]myqcloud[.]com
0107-1333855056[.]cos[.]ap-guangzhou[.]myqcloud[.]com
rgghrt1140120-1336065333[.]cos[.]ap-guangzhou[.]myqcloud[.]com
hei-1333855056[.]cos[.]ap-guangzhou[.]myqcloud[.]com
chakan202501-1329400280[.]cos[.]ap-guangzhou[.]myqcloud[.]com
wrwyrdujtw114117-1336065333[.]cos[.]ap-guangzhou[.]myqcloud[.]com
fdsjg114-1336065333[.]cos[.]ap-guangzhou[.]myqcloud[.]com
sjujfde-1329400280[.]cos[.]ap-guangzhou[.]myqcloud[.]com
htrfe4-1329400280[.]cos[.]ap-guangzhou[.]myqcloud[.]com
0611-1333855056[.]cos[.]ap-guangzhou[.]myqcloud[.]com
twzfw[.]vip

フィッシングメール
36afc6d5dfb0257b3b053373e91c9a0a726c7d269211bc937704349a6b4be9b9
0e3c9af7066ec72406eac25cca0b312894f02d6d08245a3ccef5c029bc297bd2
67395af91263f71cd600961a1fd33ddc222958e83094afdde916190a0dd5d79c
f4d3477a19ff468d234a5e39652157b2181c8b51c754b900bcfa13339f577e7c
c9a8db23d089aa71466b4bde51a51a8cfdcc28e8df33b4c63ce867bd381e5fe5

PDF
e2b75baeb7ed21fb8f27984f941286770d1c3c0b60fce8d7fa5b167bd24ba6dc
dffbeefc632b20d2ef867553684e9971ab76e1223e743604a5275713423b6168
20c34b5f0983021414b168913c3da267caf298d8f0f5e3ec0ce97db5f4f48316
6c33715a14fdc917b5b09b6e1b5dad07bb769493eafbf7ca1023830b4059e003
75a4d75c35724140149c9c5056c1bcbd328bbe1e5d1d1ef34205ed5442d2b348
fed394a3653b7c6fcc1b277eda6e18eb0983a7e024be5b51e5188b3cfb9512e8
a067d848f099e6d1e465f9761a5b85392d550303bfa75fac920d444fd980c949
c55757075259fa4be6941dd273c4a4a2fcc29e6ba427dec124b25b299b3505fe
64a876e6cb3cf3122febc84a00ec3e0740c054cff955164971c470e1b5e5f1bb
d4ac82de8dda9796579cd8ea0f84b43c7a980cdb0e9cdb8abe8981a2d215ed2f
(20c34b5f0983021414b168913c3da267caf298d8f0f5e3ec0ce97db5f4f48316 Corrupt)

DLL
268c72f5482374660a132d1b91cac0c04b4724a214db4f052eb421e36c282921
0a4bbb998bd3a3bcc72cf759689a5656dc74590b731d0affbfc317cf484ed28b
79c64d2e77acdbcdbd35cbb29497941335d7e3ab6ebb474064f095e745f0d643
7f22305679e46e1fd5043beb136108197c0921643ce0d680f990a3018ade485b
594d907855d35ee7689a568e4ac43e4e0ed90de047d91b0253ef79da71ecbc08
1f3b041eee1ece8cf6aa5c742aeb8c0ac2266cccecca7888772509227c4f8669
514933468ac1dd9f7db4e2693f1be7f84deb35c33f8f9934fad32caaae9ef611
7a5b26f6dd7b8e0d648e9804ec932603b7d7a5f76c7a8c537ab0c2be54f51fa9
8b1b9a789136ca3abe25938204845c351aaf0c97c0708ade8d4d8ba4ded95ba7
1ad1f2eec961bc7a35abeac486f843b7caece0929b13f1dab47fbdc0406ac4e3
4c1ea827713f1eb57cc0e8e9d171d4e21d116f846b174bc05114eef5674c9653
1a342426d59e7fdc4abfb74c2225f68382172e03b0f8d496a57ae647411f0fbd
2ce73cbfab0beb3663c0151ba7c310e4dbf69f295d8a18114435506483d774ac
0a4bbb998bd3a3bcc72cf759689a5656dc74590b731d0affbfc317cf484ed28b
514933468ac1dd9f7db4e2693f1be7f84deb35c33f8f9934fad32caaae9ef611
76ac08358f230bca3e8b8448b3c177094aeac25402b929f5f73869ec77173a44

■関連サイト