Type 1 Backdoor: Mofu Loaderによって実行されるDRBControlのマルウェア

2025年12月、IIJはDRBControlが使用していたことが報告されているマルウェア、Type 1 Backdoorを新たに観測・分析しました。DRBControlは2020年にトレンドマイクロ社が公開したレポート Uncovering DRBControl: Inside the Cyberespionage Campaign Targeting Gambling Operations にて分析されていたサイバーエスピオナージを目的とするAPTグループです。このグループは使用するマルウェアやコードの特徴からAPT411やAPT272と関係する可能性があると分析されています。

この記事では、今回観測したマルウェアについて、実行フローおよび以前観測されたマルウェアとの差異を中心に解説します。

シェルコードローダ

我々が最初に観測して解析を試みたのは、wlbsctrl.dll という名前で台湾からVirusTotalにアップロードされていた興味深いDLLファイルでした。ファイル名より、このDLLファイルは正規の wlbsctrl.dll に扮して、DLLサイドローディングによって実行されると思われます。

このファイルのエクスポート関数 WlbsCancelConnectionNotify が呼び出されると、まず C:\ProgramData\ntuser.ini 内のデータ (シェルコード) を読み込みます。読み込んだシェルコードは winlogon.exe プロセスに CreateRemoteThread 関数などを用いてコードインジェクションされて、 winlogon.exe のコンテキストで実行されます。

ntuser.ini という名前を持つファイルをVirusTotal上で検索したところ、本DLLファイルと同様に台湾からアップロードされたファイルが見つかりました。

なお、ローダ (wlbsctrl.dll) が2025年11月下旬にアップロードされているのに対して、シェルコード (ntuser.ini) は2025年6月上旬にアップロードされていることから、2つのファイルはそれぞれ異なる攻撃キャンペーンで使用されている可能性があります。また、ローダのコンパイルタイムスタンプは 2024-02-23 09:07:46 UTC 、シェルコードによって実行されるRATのコンパイルタイムスタンプは 2023-07-11 02:27:55 UTC であるため、この記事で取り上げるマルウェアは、いずれも2025年内の攻撃活動で使用されたものだと限らない点にも注意が必要です。

シェルコード (Mofu Loader)

シェルコードが実行されると、まず図2のようにROR11ベースのアルゴリズムを使ったAPI Hashingによって GetProcAddress, LoadLibraryA, VirtualAlloc, memcpy, RtlDecompressBuffer といったWindows API関数のアドレスを動的解決します3

その後、図3に示す処理でシェルコード内に含まれるデータを復号します。

復号後のデータはLZNT1圧縮されており、これは RtlDecompressBuffer 関数を呼び出すことで展開されます。展開されたデータは図4のようなPEヘッダのマジックナンバーが削除されたDLLファイル (Type 1 Backdoor) で、シェルコードによってエントリーポイントが実行されます。

我々はこのシェルコードがMofu Loaderというローダ (あるいはその亜種) である可能性が非常に高いと考えています。API Hashingで使用されるアルゴリズムは異なるものの4、XOR復号処理 (sub + xor + add) の実装が同一であること、使用するWindows API関数が完全に一致していること、展開されるペイロードのPEヘッダのマジックナンバーが削除されていることなど、複数の共通点を確認しました。また、第1ステージがシェルコードローダで、第2ステージとしてMofu Loaderが使用されるという流れも、過去観測されたマルウェアの実行フローと一致しています。
Mofu Loaderは過去にmicDownやRatelSなどのマルウェアをロードする目的で、複数のAPTアクターによって使用されたマルウェアです。Mofu Loaderについては、JSAC2024で実施された講演 The Secret Life of RATs: connecting the dots by dissecting multiple backdoors にて分析されているので、是非ご確認ください。

Type 1 Backdoor

Type 1 BackdoorはC++で開発された高度なマルウェア (RAT) です。今回観測したマルウェアは過去のマルウェアと比較して、以下のような差異を有していました。

スタートアップフォルダを使用して自動実行設定を登録する機能の追加

以前観測されたマルウェアでは Run レジストリキー5を用いて自動実行設定を登録する機能が実装されていましたが、このマルウェアは代わりに C:\ProgramData\Microsoft\chrome.lnk に存在するLNKファイルを感染ホスト上の各ユーザフォルダ内の AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup フォルダにコピーする機能が実装されていました。また、 C:\ProgramData\Microsoft\NTUSER.DAT および C:\ProgramData\ntuser.ini をユーザフォルダ内の ProgramData フォルダにコピーするような実装も確認できました。

ntuser.ini 以外のファイルはVirusTotal上で発見できなかった為、これらの処理がどのような役割を担っているのか正確に判断することはできませんが、 chrome.lnk はシェルコードローダ wlbsctrl.dll をDLLサイドロードするプログラムのショートカットであり、各ユーザが感染ホストにログオンしたタイミングでマルウェアが実行されるようなメカニズムとなっている可能性が高いと考えられます。

外部からプロミスキャスモードを使用して設定情報を取得する機能の追加

以前観測されたマルウェアではPEファイル内に平文でC2サーバのアドレスといった設定情報が埋め込まれていましたが、このマルウェアは初期化処理の段階で、プロミスキャスモードを用いて以下の条件に合致するパケットをフィルタして、そのペイロードからC2サーバのアドレスや通信方式といった設定情報を取得します。

  1. TCPパケット
  2. 宛先IPアドレスが感染ホストのもの
  3. ペイロードの長さが29バイト
  4. ペイロードの先頭4バイトがマジックナンバー 0x12349876

解析の結果、当該パケットのペイロード部分は以下のような構造となっていることが判明しました。

オフセット説明
0x0マジックナンバー (0x12349876)
0x4通信方式 (1 = TCP, 2 = UDP, 3 = HTTP)
0x5C2サーバ ポート番号
0x7C2サーバ アドレス (32ビット)
0xBプロキシサーバ ポート番号 (空でもOK)
0xDプロキシサーバ アドレス (文字列、空でもOK)

このようなパケットを介して取得した設定情報を使って、マルウェアはC2サーバと通信し、攻撃者からの命令を実行することができます。設定情報をマルウェア内に含めないことで、侵害された組織にとってはもちろん、今回のようにマルウェアがVirusTotal等にアップロードされた際に、セキュリティ研究者がC2サーバを特定しづらくすることを目的とした機能だと考えられます6

正規サービスを悪用して設定情報を取得する機能の追加 (未使用)

前述した方式のほかに、今回観測したマルウェアには social.msdn.microsoft.com 下の (攻撃者が管理するユーザの) プロフィールページから通信先などの設定情報を取得して、使用する機能が追加されていました。このような機能は過去にもAPT41のマルウェア7や一部のShadowPad8に実装されていたことが報告されています。2025年12月時点で当該サービスは既に利用できない状態となっていますが、過去の攻撃キャンペーンにおいて攻撃者が使用していた可能性が高い機能だといえます。

その他の機能の追加/削除

マルウェアの各機能・コマンド等はC++のオブジェクト指向プログラミングを活用して実装されており、PEファイル内のRTTI (Run-Time Type Information) を参照することでクラス名や継承関係などを確認することができます。今回解析したマルウェアでは、以前のマルウェアと比較して以下のクラスの実装が無くなっていました。

  • CHPAvi
  • CHPProcess
  • CHPRegedit
  • CHPService

代わりに以下のクラスの実装が新たに追加されていました。

  • CHPPipe
  • CHPOnline

各クラスは抽象クラス CHPNet あるいは CHPPlugin のサブクラスとして実装されています。CHPNet のサブクラスには通信に関係する機能が実装されていて、 CHPPlugin のサブクラスには攻撃者の命令 (コマンド) を処理するための機能が実装されています。今回のマルウェアで確認できたクラスの一覧は以下の通りです。

CHPNet のサブクラス:

クラス名説明
CHPTcpC2サーバとTCP通信する際に使用されるクラス
CHPUdpC2サーバとUDP通信する際に使用されるクラス
CHPHttpC2サーバとHTTP通信する際に使用されるクラス
CHPPipe (新規)名前付きパイプを用いたスレッド間通信に関連する実装が含まれるクラス

CHPPlugin のサブクラス:

クラス名説明
CHPTelnetTelnetクライアント機能に関連する実装が含まれるクラス
CHPScreenスクリーンショット取得・リモートデスクトップ操作 (新規) に関連する実装が含まれるクラス
CHPProxyプロキシ機能に関連する実装が含まれるクラス
CHPOnline (新規)UDPベースの通信トンネリング機能に関連する実装が含まれるクラス
CHPKeyLogキーロガー・クリップボードモニターに関連する実装が含まれるクラス
CHPExplorerフォルダ・ファイル操作 (一覧取得、移動、コピー、アップロード、ダウンロード、実行など) および自動実行設定に関連する実装が含まれるクラス
CHPCmdリモートシェルに関連する実装が含まれるクラス

クラス以外にも、Dropbox APIを使用してC2通信を行う機能の削除など、今回観測したマルウェアと過去のマルウェアの間には単純なバージョンアップでは説明できない複数の差異が存在します。抽象クラス名の CHPPlugin が示す通り、このマルウェアは攻撃者が必要なプラグイン (機能群) を指定してビルドできるような設計になっている可能性があります。

キーロガー・クリップボードモニターの出力先ファイルパスやエンコード方式が異なる

以前観測されたマルウェアでは以下のファイルパスにキーロガー・クリップボードモニターの出力が書き込まれていました。

  • キーロガー: %USERPROFILE%\AppData\Roaming\(IID).log
  • クリップボードモニター: %USERPROFILE%\AppData\Roaming\(IID).pas

これに対して、今回観測したマルウェアでは以下のファイルパスが使用されていました。

  • キーロガー: %USERPROFILE%\NTUSER.DAT{B556D310-E11D-4140-86A2-C9C9D5BA5BE0}.KM
  • クリップボードモニター: %USERPROFILE%\NTUSER.DAT{B556D310-E11D-4140-86A2-C9C9D5BA5BE0}.PM

また、これらの出力ファイルは図7のような独自方式でエンコードされます。

感染ホスト上のファイルをデコードすると、以下のようにタイムスタンプ、ユーザ名、アプリケーションのファイルパス、ウィンドウタイトル、キー入力内容などが確認できます。

[09:16:35 2025-12-09 ] |user001 | C:\Program Files\WindowsApps\Microsoft.WindowsNotepad_11.2504.62.0_x64__8wekyb3d8bbwe\Notepad\Notepad.exe | *iij.ad.jp - Notepad

iij.ad.jp
internet initiative japan

おわりに

DRBControlは最初に活動が報告された2020年以降も継続的に攻撃活動を実施している可能性があります。また、今回観測したType 1 Backdoorは、今後の攻撃でも使用される可能性があるため、引き続き警戒が必要だといえるでしょう。
記事末尾のAppendixに関連するファイルのSHA256ハッシュ値を記載しています。攻撃活動の検知や対策にお役立てください。

Appendix: IoCs

SHA256説明
9320b3f31c5a57fe7978741ea42f3a20c19564556218a88d3b71cf8af589d9a2wlbsctrl.dll (ローダ)
2b3e7bf360fb89df77fec3e8dd034319ac37d40d19bb80db80c2b20b252c506antuser.ini (シェルコード)
  1. WinntiやAmoebaとしても知られるAPTグループ。サイバーエスピオナージを目的とした攻撃活動のほか、金銭を得ることを目的とした攻撃活動を実施していることが報告されている。
    APT41, A Dual Espionage and Cyber Crime Operation – Mandiant
    https://services.google.com/fh/files/misc/apt41-a-dual-espionage-and-cyber-crime-operation.pdf ↩︎
  2. Emissary PandaやLuckyMouseとしても知られるAPTグループ。情報窃取を目的とした攻撃活動を実施していることが報告されている。
    District of Columbia | Chinese Nationals with Ties to the PRC Government and “APT27” Charged in a Computer Hacking Campaign for Profit, Targeting Numerous U.S. Companies, Institutions, and Municipalities | United States Department of Justice
    https://www.justice.gov/usao-dc/pr/chinese-nationals-ties-prc-government-and-apt27-charged-computer-hacking-campaign-profit ↩︎
  3. API関数名に対応するハッシュ値を含む列挙型を生成・ロードするためのIDAPythonスクリプトを筆者のGitHubリポジトリ上で公開しています。脅威解析にお役立ていただければ幸いです。
    https://github.com/mopisec/research/blob/main/mofuloader_ror11_apihash_resolver.py ↩︎
  4. 報告されているMofu LoaderはROR12ベースのアルゴリズムでAPI Hashingを実装している。  ↩︎
  5. HKEY_CURRENT_USER\Software\Microsoft Windows\CurrentVersion\Run ↩︎
  6. このようなマルウェアに対抗するためにも、マルウェア感染が発覚した際には、ディスクだけでなくメモリも必ず保全・解析する必要があるといえます。 ↩︎
  7. CONNECTING THE DOTS: Exposing the arsenal and methods of the Winnti Group – ESET
    https://web-assets.esetstatic.com/wls/2019/10/ESET_Winnti.pdf ↩︎
  8. Possible Supply Chain Attack Targeting Pakistani Government Delivers Shadowpad | Trend Micro
    https://www.trendmicro.com/en_us/research/23/g/supply-chain-attack-targeting-pakistani-government-delivers-shad.html ↩︎

シェアする