フィッシング経由で侵入、新型マルウェア「MostereRAT」を確認

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

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

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

本記事はフォーティネットジャパンが提供する「FORTINETブログ」に掲載された「MostereRATがAnyDesk / TightVNCを展開し、秘密裏にフルアクセスを取得」を再編集したものです。

影響を受けるプラットフォーム:Microsoft Windows
影響を受けるユーザー:あらゆる組織
影響:攻撃者が感染システムの制御を取得
深刻度:高

 FortiGuard Labsは最近、複数の高度な回避手法を利用するフィッシングキャンペーンを発見しました。これらの高度な回避手法には、ペイロードを段階的に開発するためのEasy Programming Language(EPL)の使用、不正操作の隠蔽、アラートのトリガーを防ぐためのセキュリティツールの無効化、相互TLS(mTLS)を使用したコマンド&コントロール(C2)通信の保護、追加のペイロードを展開するためのさまざまな手法のサポート、さらに攻撃者が侵害されたシステムの完全な制御を取得するために一般的なリモートアクセスツールをインストールするなどが含まれます。図1は攻撃チェーンを示しています。

図1:攻撃フロー

 このマルウェアの攻撃フローの一部およびそのC2ドメインは、2020年の公開レポートで金融機関を標的にするトロイの木馬と関連していると言及されていましたが、その後リモートアクセス型トロイの木馬(RAT)に進化し、現在はMostereRATと呼ばれています。

初期アクセス

 この攻撃キャンペーンはフィッシングメールから始まり、日本人ユーザーに対して悪意のあるリンクのクリックを誘導するよう設計されています。これらのEメールは、受信者を騙して感染サイトにアクセスさせるために、ビジネス上の問い合わせに偽装するなど正当な発信者からのEメールに見せかけて作成されています(図2を参照)。

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

 Webページにアクセスすると悪意のあるファイルが自動的にダウンロードされます。また、ダウンロードボタンを手動でクリックするためのオプションも表示されます。

図3:ドキュメントをダウンロードするためのWebページ

 アーカイブが埋め込まれたWordドキュメントが被害者のコンピュータにダウンロードされます。ここで日本語を使用したソーシャルエンジニアリングは終わり、代わりに攻撃者の指示が1つ表示されます。被害者はこの指示を受けて、埋め込みアーカイブを開いて中の唯一のファイルを実行するよう案内されます。

図4:このドキュメントには、「OpenTheDocument(ドキュメントを開いてください)」という指示とZIPアーカイブのみ含まれる

document.exe

 この実行可能ファイルは、GitHubリポジトリwxWidgetsのメニューサンプルをベースにしており、後続の段階に必要なツールを展開するために使用されます。ツールセットは、実行可能ファイルのリソース内に暗号化されてバンドルされており、著名な人物の画像が含まれています(図5を参照)。

図5:実行可能ファイルには著名な人物の画像と暗号化ファイルが埋め込まれている

 データを復号化するには、キー値「A」を使った単純なSUB(減算)演算が使用されます。リモート監視および管理(RMM)ツールに関連するすべてのコンポーネント、および次の段階のペイロードは、C:\ProgramData\Windowsに配置されます(図6を参照)。

図6:これらのマルウェアコンポーネントはC:\ProgramData\Windowsディレクトリに配置される

 次の段階に進むにはCreateSvcRpcを使用します。これは名前付きパイプ「ntsvcs」と直接通信してWindowsサービスコントロールマネージャー(SCM)と対話するカスタムRPCクライアントで、OpenSCManagerやCreateService、StartServiceなどの標準APIを迂回します。生成されるサービスは、SYSTEMレベル権限で実行されます。

図7:CreateSvcRpcルーチン内のRpcConnect

 「WpnCoreSvc」がAutomatic Start(自動起動)タイプで作成されるため、システム起動時にService Control Managerによって確実にロードされ、Rubyスクリプトを介して次の段階が実行されます。作成されるもう一つのサービス「WinSvc_」は、Demand Start(手動起動)向けに構成されており、攻撃者が提供するランチャーを直接呼び出すことで、次の段階が開始されます(図8と図9を参照)。

図8:作成されるサービス

図9:作成された2つのサービスで実行されるコマンド

 このプログラムは、終了する前に、システムバージョンの互換性がないことを示す中国語(簡体字)の偽のメッセージが表示され、ユーザーは、別のコンピュータでこのプログラムを実行するよう指示されるため、ソーシャルエンジニアリングにより拡散し続けます。

図10:偽のメッセージ

マルウェアはEasy Programming Language(EPL)で記述

 Easy Programming Language(EPL)は中国語(簡体字)を使用するプログラミング言語で、特に中国語話者にとって、初心者にも分かりやすく扱いやすいように設計されています。

 krnln.fnrは、EPLのランタイムライブラリとして機能し、文字列処理、ファイル操作、ウィンドウ管理などのコア機能を提供します。

 「Compile to EPK(EPKにコンパイル)」は、EPLのコンパイルオプションの1つで、コードを.epkファイルにコンパイルします。ファイルを実行するには、EPKランチャーを使用してkrnln.fnrのLoadEPKFromCmdLineを呼び出す必要があります。

 この段階では、EPKランチャー、「svchost.exe」という名前の悪意のあるEPKファイル、および「svchost.db」が関与します。実行を開始するには、コマンドライン引数を取得し、パラメータを評価し、ロードする次の段階のモジュールを決定する必要があります(図11を参照)。

図11:EPK内のFunction IDを解析

 各モジュールは、キー値「A」を使った単純なSUB演算で復号化する必要があります。その後、モジュールがメモリにロードされ、エクスポートされた関数「getVersion」が呼び出されます。

モジュール1:maindll.db

 モジュール「maindll.db」で、channel-8df91be7c24”a”からchannel-8df91be7c24”e”までのパラメータが処理され、実行する必要があるタスクを決定するために使用されます。各タスクは、単一の機能を実行したり、複数の機能を構成して実行することも可能です。これらの機能には以下のものが含まれます。

悪意のあるコードを繰り返し実行して永続化

 スケジュールジョブを定義するXMLファイルが、リソースからロードされます。スケジュールジョブで、ジョブ「Microsoft\Windows\winrshost」と「Microsoft\Windows\winresume」を登録し、サービス「DnsNetwork」を作成し、追加の引数を使用して新しいインスタンスを起動します。これらのインスタンスは、システム起動時はSYSTEMアカウント(SID:S-1-5-18)で、ユーザーログオン時は組み込みのAdministratorsグループ(SID:S-1-5-32-544)で自動的に実行されるよう構成されています(図12を参照)。

図12:タスクスケジューラに作成されたタスク

TrustedInstallerとして実行

 このマルウェアは、Windowsで最も強力なアカウントの1つであるTrustedInstallerアカウントを利用して、昇格したフル権限を持つ新規のインスタンスを作成できます。

 まず、SeDebugPrivilegeを有効化し、昇格した権限を使用して自身のプロセストークンを複製します。次に、図13に示すように、SYSTEMプロセストークンを検索して複製した後、TrustedInstallerサービスを開始してそのトークンを複製します。最後に、TrustedInstallerトークンを使用して、フル権限で新規プロセスを起動します。私たちは、このコードがGitHubのNSudoプロジェクトから取得されていることに気付きました。

図13:SYSTEMプロセストークンの検索と複製

アンチウイルス / EDRソリューションを妨害

 このマルウェアには2つの組み込みリストが含まれており、1つはセキュリティ製品のパスのリストで、もう1つはセキュリティ製品名のリストです。

・セキュリティ製品のパス:
360:

“C:/Program Files/360/360Safe,”
“C:/Program Files/360/360sd,”
“C:/Program Files/360/360zip,”
“C:/Program Files (x86)/360/360Safe,”
“C:/Program Files (x86)/360/360sd,”
“C:/Program Files (x86)/360/360zip,”
“C:/ProgramData/360safe,”
“C:/ProgramData/360SD”

Kingsoft:

“C:/Program Files/kingsoft/kingsoft antivirus,”
“C:/Program Files (x86)/kingsoft/kingsoft antivirus,”
"C:/ProgramData/kdata,”
“C:/ProgramData/kdesk,”
“C:/ProgramData/Kingsoft,”
“C:/ProgramData/KRSHistory”

Tencent PC Manager:

“C:/Program Files/Tencent/QQPCMgr,”
"C:/Program Files (x86)/Tencent/QQPCMgr,”
“C:/ProgramData/Tencent/QQPCMgr”

Huorong Security:

“C:/Program Files/Huorong/Sysdiag,”
“C:/Program Files (x86)/Huorong/Sysdiag,”
“C:/ProgramData/Huorong/Sysdiag”

Windows Defender:

“C:/Program Files/Windows Defender,”
“C:/Program Files (x86)/Windows Defender,”
“C:/ProgramData/Microsoft/Windows Defender”

ESET:

“C:/Program Files/ESET,”
“C:/ProgramData/ESET”

Avira:

“C:/Program Files/Avira,”
“C:/Program Files (x86)/Avira,”
“C:/ProgramData/Avira”

Avast:

“C:/Program Files/Avast Software,”
“C:/ProgramData/Avast Software”

Malwarebytes:

“C:/Program Files/Malwarebytes,”
“C:/ProgramData/Malwarebytes”

AVG:

“C:/Program Files/AVG,”
“C:/Program Files/Common Files/AVG,”
“C:/ProgramData/AVG”

その他:

“C:/Program Files (x86)/2345Soft/2345PCSafe,”
“C:/Program Files (x86)/Lenovo/PCManager,”
“C:/Program Files (x86)/Rising,”
“C:/Program Files/Microsoft PC Manager,”
“C:/Program Files/Common Files/AV”

・セキュリティ製品名:
「360Safe」、「360sd」、「antivirus」、「QQPCMgr」、「Sysdiag」、「Defender」、「Kaspersky」、「ESET Security」、「Security」、「Avira」、「Avast」、「Malwarebytes」、「Antivirus」、「Bitdefender」、「Norton」、「Symantec」、「McAfee」、「2345PCSafe」、「PCManager」、「Rising」、および「Microsoft PC Manager」

 最初に、これらのパス内に実行可能ファイルがないかスキャンして、セキュリティソリューションの存在の有無をチェックします。次に、実行中のプロセスのイメージファイルパスと、これらの実行可能ファイルを比較します。一致が見つかった場合、イメージパスには既知のセキュリティ製品名が含まれており、マルウェアはこれらのトラフィックをブロックします。

 このトラフィックをブロックする手法は既知のレッドチーム(攻撃者)ツールの「EDRSilencer」と類似しており、ネットワーク通信スタックの複数の段階でWindows Filtering Platform(WFP)フィルタを使用することで、セキュリティ製品が自身のサーバーに接続して検知データ、アラート、イベントログ、その他のテレメトリを送信することを効率的に妨害します(図14を参照)。

図14:WFPフィルタを作成してネットワークトラフィックをブロック

Windowsセキュリティの無効化

 このマルウェアは複数の手法を利用して、Windowsアップデートとセキュリティメカニズムを無効化します。本マルウェアは、「SecurityHealthService.exe」や「SecurityHealthSystray.exe」などのプロセスを終了し、「wuauserv」、「UsoSvc」、「uhssvc」、および「WaaSMedicSvc」などのサービスを停止し、「C:\Windows\System32\WaaSMedicSvc.dll」や「C:\Windows\System32\wuaueng.dll」などの重要システムファイルを削除します。

図15:Windowsセキュリティ機能の無効化に関連するアクティビティ

図16:リソースに埋め込まれたレジストリスクリプト

 メカニズムの自動開始を防止するために、ITaskFolder::DeleteTaskとITaskFolder::DeleteFolderを使用して特定のタスクフォルダからスケジュールタスクを削除します。

新規プログラム / モジュールのアップグレードと起動

 コマンド&コントロール(C2)サーバーとHTTP経由でポート9001と9002を使用して通信するために、2つのスレッドが作成されます。また、サーバー上で新しいバージョンの構成ファイルが利用可能になり、ダウンロードの準備が完了した旨のシグナルが出されると、このプログラムは、RSA秘密鍵を利用してその構成ファイルを復号化します。

http://{C2 Domain}:9001/9001.conf
http://{C2 Domain}:9002/9002.conf

次に、INI形式の構成ファイルを解析し、バージョン番号を比較して、新しいペイロードのダウンロードが必要かどうか判断します。ダウンロードされたペイロードは、SHA-256ハッシュを使用して検証した後、新しいバージョンが実行されます。ポート9001はEXEのペイロードを担当します。また、ポート9002はEPKのペイロードを処理します。

図17:アップグレードモジュールで使用される文字列

モジュール2:elsedll.db

 モジュール「elsedll.db」により、パラメータchannel-8df91be7c24”f”が処理されます。このモジュールは複雑なリモートアクセス機能を備えており、複数のスレッドを利用してコマンド&コントロールの操作を処理し、Alibabaの販売者ツールであるQianniu(千牛)に関連するフォアグランドウィンドウのアクティビティを監視し、キーストロークを記録し、ハートビートシグナルを送信します。

 このモジュールは、モジュール1と同じサーバーリストを使用してコマンド&コントロールサーバーと通信し、TCPポート8000を介して接続を確立します。通信は、相互TLS(mTLS)を通じて保護され、組み込みのクライアントキー、クライアント認証情報、およびCA証明書を使用して相互認証を強制的に行い、なりすましを防止します。

 C2パケットはマジックナンバー「1234567890 (0x499602D2)」で始まり、その後にパケット長を示す4バイト、および実行するアクションを指定するコマンドIDが続きます。最大37の機能をサポートし、一般的なリモートアクセスツールを被害者のシステムに展開することで、システムを通常使用しているように完全な制御が可能です。以下のリストは、コマンド、および具体的な機能および明白な機能を示しています。

データ収集

 このコマンドは、プログラムによって生成されたファイルデータである、作成されたGUID、インストール日、およびその他の関連詳細などを抽出できます。また、システム情報も収集し、これにはコンピュータ名、Windows OS製品の詳細、システムの起動時間、最後のユーザー入力からの時間、ビデオキャプチャドライバの数、およびアクティブユーザーアカウントなどが含まれます。さらに、画面キャプチャも作成できます。

プラグインのダウンロードと実行

 図1に示すように、モジュール2は幅広いメソッドを利用して、さまざまな方法でペイロードをダウンロードし実行します。ペイロードの取得は、現在のC2接続、またはlibcurlを使用して特定のURLから行うことが可能で、シェルコード、EPK、DLL、およびEXE形式をサポートしています。

 EXEペイロードの場合、例えばEarly Bird Injectionを利用してメモリ内で実行するか、ディスクに読み込んでスタンドアロンプロセスとして実行することができます。DLLペイロードの場合、通常はディスクに保存され、rundll32.exeを介して実行され、getVersionエクスポート関数が呼び出されます。EPKのペイロードの場合はEPKランチャーによって起動され、ShellCodeペイロードの場合は、割り当てられたメモリに書き込まれた後に実行されます。

図18:ダウンロードデータはtmpフォルダに保存され、GetTickCount64から生成されたファイル名が付く

ファイル操作

 ファイル操作に関しては、このマルウェアは作業ディレクトリの下の「/database」内のファイルのみを対象とし、読み込み、書き込み、および削除操作をサポートします。

 また、ファイルIDを使用してフォルダ内のファイルを識別します。範囲は1001(0x3E9)~1009(0x3F1)で、01.db~09.dbまでのファイル名に対応します。

図19:データ書き込みの対象ファイルを決定するファイルIDを示す例

リモートアクセスツールの展開

 このプログラムは、リソース内に埋め込まれた構成ファイルを使用して、リモートアクセスツールとプロキシツールを実行できます。攻撃時には、AnyDesk、Xray、およびTigerVNCが使用され、攻撃者に対して排他的アクセスを付与するよう構成されています。

 このコマンドは、サードパーティのRDPツールの「RDP Wrapper」および構成変更もサポートしており、レジストリ編集による複数セッションログインの有効化や無効化など、RDP設定を迅速に変更することが可能で、レジストリの元のRDP設定を復元することもできます。

非表示アカウントによる永続性

 新規ユーザーを作成するコマンドで、パスワードの有効期限を持たないアカウントを管理者グループに追加することが可能で、WindowsログインUIにはアカウントは表示されません。これは、レジストリのパスHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserListを変更し、ユーザー名が付けられたREG_DWORDエントリを作成し、エントリ値を0に設定することで実現します。ただし、このコード実装では、エントリ名には実際のユーザー名を使用する代わりに、「V」がハードコードされています。

図20:コマンド「0x7B9EE6」を送信してアカウント「hello」を作成する例

結論

 この攻撃キャンペーンはソーシャルエンジニアリングを初期の攻撃ベクトルとして使用し、複数の伝播方法を使用して脅威の拡散を促します。また、MostereRATは非常に高度で巧妙な手法を利用しており、これには、キャンペーンの1段階としてEPLプログラムを統合する、サービス作成メソッドを隠す、アンチウイルスソリューションのトラフィックをブロックする、TrustedInstallerとして実行する、mTLSを使用する、正規のリモートツールであるAnyDesk、tightVNC、および被害者のシステムを制御するRDP Wrapperを使用するなどが含まれます。

 これらの戦術より、検知、予防、および分析の困難さが大幅に高まっています。ご利用のソリューションを最新状態に保つだけでなく、ソーシャルエンジニアリングの危険性に関する継続的なユーザー教育も不可欠です。

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

 本レポートで説明されているマルウェアは、FortiGuardアンチウイルスで次の名称で検知されブロックされます。

W32/Agent.MTR!tr
W32/Agent.295C!tr
W32/Agent.9C1D!tr

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

FortiGuard CDR(コンテンツ無害化)サービスにより、ドキュメント内の悪意のあるマクロを無害化することができます。

また、各組織は、フォーティネットが無償で提供するサイバーセキュリティトレーニング「Fortinet Certified Fundamentals(FCF)」を受講することをお勧めします。このトレーニングは、今日の脅威の状況を学習するユーザーをサポートするよう設計されており、基本的なサイバーセキュリティの概念およびテクノロジーを紹介しています。

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

 お客様の組織が、本件やその他のサイバーセキュリティ脅威の影響を受けていると思われる場合は、当社のグローバルインシデントレスポンスチームまでお問い合わせください。

IOC(Indicators of Compromise:侵害指標)

ドメイン:
www[.]efu66[.]com
mostere[.]com
huanyu3333[.]com
idkua93dkh9590764478t18822056bck[.]com
osjfd923bk78735547771x3690026ddl[.]com
zzzzzzz0379098305467195353458278[.]com
xxxxxx25433693728080140850916444[.]com

ファイル:
d281e41521ea88f923cf11389943a046557a2d73c20d30b64e02af1c04c64ed1
4e3cdeba19e5749aa88329bc3ac67acd777ea7925ba0825a421cada083706a4e
546a3418a26f2a83a2619d6c808985c149a0a1e22656553ce8172ca15622fd9b
3c621b0c91b758767f883cbd041c8ef701b9806a78f2ae1e08f932b43fb433bb
926b2b9349dbd4704e117304c2f0edfd266e4c91fb9325ecb11ba83fe17bc383

■関連サイト