著者: ディクシット・パンチャル & ヴァイバフ・クルシュナ・ビラード
目次:
- 導入:
- 主なターゲット:
- 感染チェーン:
- キャンペーンに関する初期調査結果:
- デコイの分析:
- テクニカル分析:
- ステージ1:LNKファイルの解析。
- ステージ2:HTA/JavaScriptペイロードの分析
- ステージ3:ステージ1ローダーDLLの解析
- ステージ4:ステージ2ローダーDLLとシェルコードの解析
- ステージ5:XenoRATの解析。
- インフラストラクチャのアーティファクトと脅威アクターの特定。
- 結論:オペレーション・ゼノフィスカル?
- Seqrite 適用範囲:
- IOC:
- マイター攻撃&CK:
導入:
Seqrite Labsは世界中でスピアフィッシング攻撃を積極的に監視しており、パキスタンと関連のある脅威グループであるSideCopy APTクラスター(Transparent Tribe / APT36傘下で活動)の追跡実績も豊富です。この追跡活動の一環として、アフガニスタン財務省を標的とした攻撃キャンペーンを特定しました。このキャンペーンの攻撃手法(TTP)は、SideCopyのものと中程度から高い確度で重複しています。
このキャンペーンは、巧妙に作成されたパシュトー語のファイル名を持つ悪意のあるLNKファイルを含むZIPアーカイブの配信という、スピアフィッシング攻撃から始まります。
د_هغو_کارکوونکو_لېست_چې_د_فکري_او_رواني_جګړې_سیمینار_ته_ورپېژندل_شوي_و12.pdf.lnk (「知的・心理戦セミナーのご紹介」)
パシュトー語が選ばれたのは意図的なものだ。パシュトー語はアフガニスタンの政府機関全体で支配的な言語であり、標的とした地方財務官(アフガニスタンの34のムストゥフィアットすべてで活動している)の主要言語でもある。心理戦と知的戦に関するセミナーを誘い文句にすることで、攻撃者は標的の作戦上および行政上の状況を正確に把握していることを示した。
本レポートでは、LNKの実行チェーンからXenoRATインプラントのビーコン発信、そして防弾仕様の欧州インフラに至るまで、キャンペーンの技術的な詳細を徹底的に分析するとともに、インフラの転換、おとり文書の分析、既知のSideCopyのTTPベースラインに対する帰属マッピングについても解説する。
主なターゲット:
- アフガニスタン・イスラム首長国財務省
- 州歳入・財務局(ムストゥフィアト)。
- パシュトー語を話す政府関係者。
- 地方レベルの政府職員であり、中央省庁の職員ではない。
感染チェーン:

キャンペーンに関する初期調査結果:
分析の結果、攻撃者はスピアフィッシングで配信されたZIPアーカイブを介して攻撃を開始し、その中にパシュトー語で作成された悪意のあるLNKファイルが含まれていたことが判明しました。これは、攻撃対象環境に対する深い理解を示す意図的な選択でした。
実行されると、LNKはmshta.exeを密かに利用して、侵害されたアフガニスタンの教育ドメインからリモートHTAペイロードを取得します。このペイロードは、メモリ内で難読化されたJavaScriptをデコードし、Microsoft Edgeエントリとして偽装されたレジストリベースの永続性を確立し、最終的にXenoRAT 1.8.7を展開します。XenoRAT 1.8.7は、配信レイヤーとは完全に分離された堅牢なヨーロッパのホスティングインフラストラクチャに外部ビーコンを送信し、長期的な回復力を確保します。
デコイの分析:
実行時に投下されたおとり文書は、アフガニスタン財務省の地方職員名簿で、全34州を網羅しており、財務部長、歳入責任者、財務担当官、秘書官の氏名と直通の携帯電話番号が記載されている。すべてダリー語とパシュトゥー語で書かれている。

組織的な詳細さから、攻撃者は事前に情報収集を行っていたことがうかがえる。攻撃におけるその役割は単純明快だ。被害者が一見すると通常の政府内部文書を読んでいる間に、マルウェアはすでにバックグラウンドで密かにインストールを完了している。
テクニカル分析:
ステージ1:LNKファイルの解析。
LNKファイルは、攻撃チェーンにおける最初の感染経路および実行トリガーとして機能します。PDFアイコンと紛らわしいファイル名で正規の文書に見せかけていますが、ショートカットのプロパティを調べると、C:\Windows\System32にあるWindowsユーティリティmshta.exeを起動することがわかります。ショートカットに埋め込まれたコマンドは、HTTPSでホストされているリモートの悪意のあるPHPリソースを指しています。 (hxxp[:]//abimj.edu.af>/index.php), 攻撃者は、実行ファイルをディスクに書き込むことなく、外部ホストされているスクリプトコンテンツをメモリ上で直接実行できるようになります。これは、HTMLアプリケーション(HTA)の実行によく使用される正規のMicrosoftバイナリであるmshta.exeを悪用することによって行われます。

攻撃者は、従来の検出メカニズムを回避し、ユーザーの疑念をかわすために、Living-off-the-Land Binary(LOLBIN)という手法を利用しています。URL構造内で過剰なカンマによる難読化が用いられていることは、静的解析やシグネチャベースの検出を妨害しようとする試みを示しています。
ステージ2:HTA/JavaScriptペイロードの分析
mshta.exe を介して取得されたリモート PHP ペイロードには、HTA エンジンのコンテキスト内で悪意のあるロジックを実行するように設計された、高度に難読化された JavaScript コードが含まれています。初期調査では、_$_f1bf=[“\x55\x33\x6…”] のようなエンコードされた文字列配列が存在することが確認されました。これは、関数名、URL、コマンド、またはセカンダリ ペイロードをアナリストやセキュリティ ツールから隠蔽するために使用される一般的な難読化手法です。このスクリプトはまた、「Windows ファイル エラー」などの欺瞞的なウィンドウ テキストを定義し、正当なシステム動作を模倣して、実行中に被害者の注意をそらす可能性があります。この段階は、キャンペーンの主要な実行および配信レイヤーとして機能し、難読化された JavaScript が動的にデコードされて、ペイロードの取得、コマンドの実行、永続化の確立、またはデータの漏洩などの後続アクションが実行されると考えられます。

難読化されたJScriptの解析
分析の結果、.js ファイルは、Windows Script Host (WSH) または ActiveX サポートが有効になっている従来の Internet Explorer 環境で実行されることを目的とした、高度に難読化された JScript ベースのマルウェア ローダーであることが判明しました。このスクリプトには、ActiveX ベースの実行、カスタム Base64 ペイロードのデコード、.NET など、複数の悪意のある手法が組み込まれています。 バイナリフォーマッタ 逆シリアル化、およびメモリ内ペイロード実行。
マルウェアの最初の段階は、通常 _$_f1bf のような変数として定義される、難読化された大きな JavaScript 配列から始まります。この配列には、埋め込まれたペイロードを表す多数の 16 進数エンコードされた文字列断片が含まれています。これらの断片は後で連結され、カスタムのデコード関数に渡されます。スクリプトは、ネイティブの Base64 デコード API に依存する代わりに、独自の Base64 デコードルーチンを実装してペイロードを隠蔽し、解析を妨害します。

このカスタム関数は、String.fromCharCodeを使用して標準のBase64文字セット(A~Z、a~z、0~9、+、/)を動的に再構築し、エンコードされたデータをチャンクごとに処理しながら、一連のビット演算によって元のバイトストリームを再構築します。デコード処理を手動で行うことで、このマルウェアはatob()や一般的なデコードライブラリといった疑わしい指標を回避し、静的検出やシグネチャベースの分析を著しく困難にしています。

.NET COMオブジェクトを使用したペイロードの再構築
第2段階では、マルウェアはActiveXObjectを介してインスタンス化された複数の.NETクラスを利用して、デコードされたペイロードを実行可能なインメモリオブジェクトに変換します。スクリプトは System.Text.ASCIIEncoding デコードされた文字列をバイト配列に変換し、 System.Security.Cryptography.FromBase64Transform ペイロードに対して追加のBase64変換を実行します。結果として得られるバイトストリームはSystem.IO.MemoryStreamオブジェクトに書き込まれ、ディスクにアクセスすることなく、シリアル化されたペイロード全体をメモリ上で効果的に再構築します。この段階的なアプローチは、ファイルレスマルウェアでよく使用されます。攻撃者は、フォレンジックアーティファクトを最小限に抑え、従来のファイルベースのセキュリティ製品による検出の可能性を低減しながら、悪意のある.NETオブジェクトを実行用に準備できるからです。

埋め込みペイロードをデコードした後、スクリプトは実行フェーズに入り、 WScript.Shell アクティブエックス オブジェクトは、レジストリ操作、環境変数、およびその他のシステムレベルの機能へのアクセスを可能にします。次に、スクリプトは、 .NET Framework バージョン v4.0.30319 レジストリパスを照会してインストールします HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319新しいランタイムが利用できない場合は、.NET v2.0.50727 にフォールバックします。マルウェアはその後、 プラスバージョン 環境変数を使用して、プロセスに特定のCLRランタイムバージョンを強制的にロードさせ、組み込みの.NET DLLペイロードとの互換性を確保します。
実行時、このマルウェアは、ObjectDataProviderやResourceDictionaryなどのWPF XAMLガジェット、およびAxHostやPropertyBagBinaryなどのWindows Formsシリアル化オブジェクトを含む、信頼性の高い.NET逆シリアル化コンポーネントを悪用します。これらのコンポーネントは、逆シリアル化ガジェットチェーンの維持と、オブジェクト再構築時の実行トリガーに役立ちます。
最後に、MemoryStream オブジェクト内に格納された悪意のあるシリアル化オブジェクトは、 .NET BinaryFormatter.Deserialize_2()これにより、フォレンジックアーティファクトを最小限に抑え、従来のファイルベースの検出メカニズムを回避しながら、メモリ内でのDLLのステルス実行が可能になります。
ステージ3:ステージ1ローダーDLL(初期ローダー)の解析
これは、攻撃チェーンの次の段階のペイロードの実行、永続化、およびメモリ内での次のコンポーネントの準備を担当する.NETローダーDLLです。

開始時に、 ファイルを開く() URLからダミーのPDFドキュメントをダウンロードして開く役割を担う関数 hxxp[:]//abimj.edu.af/institute/cloudiyaf/document.pdf。 この関数はまずURLからファイル名を抽出し、WebClient.DownloadFile()を使用してダウンロードしたファイルをWindowsの一時ディレクトリに保存します。ダウンロードを開始する前に、マルウェアはServicePointManager.SecurityProtocolを介してTLS 1.2通信を明示的に有効にし、安全なHTTPS/TLS接続との互換性を確保します。ドキュメントのダウンロード後、マルウェアは5秒間実行を一時停止し、その後、隠されたコマンド実行ルーチンを介してダウンロードしたPDFファイルを起動します。

RunProcessWithHiddenCmd() 関数は、cmd.exe を介してファイルまたはコマンドを実行するために使用されます。この関数は、/c オプションを使用してコマンドライン引数を構築します。この引数は、cmd.exe に対して指定されたファイルパスを実行し、その後終了するように指示します。関数は新しいプロセスインスタンスを初期化し、cmd.exe を起動する実行可能ファイルとして割り当て、生成された引数文字列をプロセスに渡します。起動後、コマンドインタープリタは指定されたファイルまたはコマンドを実行し、完了後に自動的に終了します。

偽のドキュメントを開いた後、マルウェアは C:\Users\Public\ の下に USOShared-1de48789-1285 という名前のディレクトリを作成し、次の段階の HTA ペイロード (zuidrt.hta) を保存します。次に、 RegWorkExePathFromPublic() Base64エンコードされたレジストリコマンドを含む関数。実行時にデコードされる。 BSDSD94() base64デコードルーチン。デコード後、コマンドは新しいエントリを作成します。 HKCU\Software\Microsoft\Windows\CurrentVersion\Run 値名がEdgreのレジストリキー。レジストリエントリは以下を実行します。
cmd /C start C:\Users\Public\USOShared-1de48789-1285\zuidrt.hta
ステルス性と永続性をさらに高めるため、マルウェアは復号化されたコマンドをユーザーの一時ディレクトリにある noway.bat という名前のバッチファイルに書き込み、隠しプロセスを介して実行します。この実行は、すべての表示ウィンドウを抑制するように設定されており、ユーザーにコマンドプロンプトが表示されないようにします。これにより、HTA ペイロードはユーザーのログオン時に自動的に起動され、システム上での永続性が維持されます。

CopyExeToUsersPublic() 関数は、ディレクトリ C:\Users\Public\USOShared-1de48789-1285\ から次の段階の HTA ペイロード (zuidrt.hta) を取得して再構築する役割を担います。まず、ターゲット ディレクトリが存在するかどうかを確認し、存在しない場合は Directory.CreateDirectory() を使用して作成します。次に、エンコードされたペイロードを次の場所からダウンロードします。
hxxp[:]//abimj.edu.af/institute/cloudiya/

ダウンロードされた zuidrt.hta ペイロードは、検出を回避するために圧縮され Base64 エンコードされた形式で保存されます。マルウェアは後でデータを解凍およびデコードして最終的な HTA ペイロードを再構築し、内部で RunProcessWithHiddenCmd() を介して実行されます。 cmd.exe /c start C:\Users\Public\USOShared-1de48789-1285\zuidrt.htaWindowsのファイル関連付けを利用してさらに呼び出す mshta.exe HTA実行のため。
HTAペイロード(zuidrt.hta)の実行
zuidrt.htaファイルは、初期のHTAペイロードと同様の構造を持ちますが、埋め込みコンポーネントが変更され、実行ロジックが更新されています。難読化およびデコードルーチンを再利用することで、その機能を隠蔽し、解析を回避することにより、攻撃チェーンを継続します。スクリプトは、ActiveXベースの実行パスを再初期化してHTA環境内での実行を維持し、メモリ内に埋め込まれたシリアル化されたペイロードを再構築します。
初期のHTA段階と同様に、ペイロードは.NETの逆シリアル化コンポーネントとガジェットチェーンを利用して、組み込みのステージ2ローダーDLLのメモリ内実行をトリガーします。このステージは感染チェーン内の二次実行レイヤーとして機能し、攻撃ワークフローの持続性を確保するとともに、最終的なペイロードの配信と実行を担う次のステージDLLへの移行を容易にします。
ステージ4:ステージ2ローダーDLLとシェルコードの解析
実行時復号後、実行フローは悪意のあるDLLに渡されます。

このDLLは.NETベースのシェルコードローダーであり、次の段階のペイロードをすべてメモリ上で取得、デコード、解凍、実行する役割を担います。マルウェアは、複数のステージング層とランタイム実行層を利用して、従来のセキュリティメカニズムを回避し、ディスク上の痕跡を削減します。
DLLは、JavaScriptベースのHTAステージと最終的なXeno RATペイロードとの間の中間ローダーとして機能します。
環境設定とペイロード回収
実行時に、DLL は疑念を最小限に抑えながら次の段階のペイロードを保存および処理するように設計されたステージング環境を初期化します。マルウェアはまず Base64 エンコードされた文字列をデコードします (ZmlyZWZ4LTFkZTg3ZWVjOC0xMjQx)カスタムを使用する BSDSD94() このルーチンを実行すると、ディレクトリ名 firefx-1de87eec8-1241 が生成されます。次に、公開アクセス可能な Windows パスの下に作業ディレクトリが作成されます。
- C:\Users\Public\firefx-1de87eec8-1241

C:\Users\Public\ を使用することで、マルウェアは権限関連の書き込み制限を回避しつつ、正当なファイルシステムアクティビティに紛れ込むことができます。ディレクトリの命名規則は、アプリケーションが生成するキャッシュフォルダやプロファイルフォルダを模倣しており、ユーザーの疑念を軽減し、基本的な IOC ベースの検出を回避するのに役立ちます。マルウェアはさらに、次のような一時的なペイロードファイル名を定義します。 ayui.vmxx (NAIST) と ayhui.vmxxこれらは、実行可能コンテンツとして即座に識別されないように、非標準の拡張子を使用して意図的に偽装されています。
ステージングディレクトリを確立した後、DLLは攻撃者が制御するインフラストラクチャとの間でアウトバウンド通信を開始し、次の段階のペイロードを取得します。マルウェアには、以下を含む複数のハードコードされたURLが含まれています。
- hxxps[:]//abimj[.]edu[.]af/institute/10/
- hxxps[:]//abimj[.]edu[.]af/institute/7/
そして、攻撃対象のオペレーティングシステムのバージョンに基づいて、ダウンロードエンドポイントを動的に選択します。Windows 7(バージョン6.1)と識別されたシステムは、別のペイロード場所にリダイレクトされ、互換性を考慮したペイロード配信が行われていることを示します。

.NET を使用する WebClient.DownloadFile() この方法は、明示的に有効になっているTLS/TLS1.1/TLS1.2プロトコルと併用して、マルウェアが暗号化されたペイロードをダウンロードし、ローカルに保存します。 ayui.vmxxダウンロードされたコンテンツは直接実行可能ではなく、エンコードおよび圧縮されたステージングブロブとして機能し、メモリ内でシェルコードの実行が開始される前に、さらにBase64デコードとGZIP解凍が行われます。
ペイロードの復号とシェルコードの再構築
第2段階のペイロードのダウンロードに成功すると、DLLは取得したデータをステージングディレクトリ内にayui.vmxxという名前の偽装ファイルとして保存します。マルウェアは、ポータブル実行可能ファイル(PE)を直接ディスクに展開するのではなく、階層化されたエンコードおよび圧縮メカニズムを使用して実際のペイロードの内容を隠蔽し、静的検出エンジンを回避します。このファイルには、表面的な検査では実行不可能に見えるBase64エンコードおよびGZIP圧縮されたデータが含まれています。この手法により、アンチウイルス製品のシグネチャの可視性が大幅に低下し、アナリストがペイロード形式をすぐに特定できなくなるため、手動分析が複雑になります。マルウェアはその後、ファイル全体をメモリに読み込みます。 File.ReadAllBytes() そして、実行時に埋め込まれたペイロードを動的に再構築し始めます。

再建プロセスはカスタムを通じて処理されます データを解凍する() 関数は、複数のデコードおよび解凍操作を完全にメモリ内で実行します。このルーチンは、まず Base64 ブロブをデコードし、解凍されたサイズ ヘッダーを抽出し、 .NET GZipStream 元のペイロードバッファを復元するクラス。解凍が完了すると、結果のデータは再び渡されます。 Convert.FromBase64String() 生のシェルコードバイトを復元します。完全に再構築されたペイロードは、ローカルに次のように書き込まれます。 ayhui.vmxxこれは、実行前のシェルコードの中間コンテナとして機能します。段階的なデコード、圧縮、および実行時ペイロードの再構築を組み合わせることで、マルウェアは最終的なシェルコードをディスク上に平文で公開することを回避し、従来のファイルスキャンやコンテンツベースの検出メカニズムを回避しながら、メモリ内での反射実行のためにペイロードを準備します。

シェルコードの実行:
ペイロードの再構築後、DLLはメモリ内シェルコードローダーとして機能し、最終実行フェーズに移行します。マルウェアは、従来のディスクから実行可能ファイルを起動する代わりに、Windows APIを使用して現在のプロセス内で実行可能メモリを直接割り当てます。 VirtualAlloc(). 割り当て要求では、MEM_COMMITフラグを併用します。 PAGE_EXECUTE_READWRITE (RWX) メモリ権限を使用して、任意のコードを格納および実行できるメモリ領域を作成します。この RWX 割り当てパターンは、シェルコード実行とリフレクティブマルウェアのロードのよく知られた指標です。メモリ割り当て後、マルウェアは再構築されたシェルコードバッファを割り当てられた領域にコピーします。 マーシャル.コピー()ペイロードをWindows PEローダーに頼ることなく、プロセスメモリ内に完全に配置することで、効果的にペイロードをステージングします。

シェルコードが実行可能メモリにマッピングされると、マルウェアは、注入されたバッファに実行を転送します。 CreateThread() API は、割り当てられたメモリのベース アドレスをスレッド エントリ ポイントとして使用します。この手法により、シェルコードはメモリから直接実行され、従来のディスク ベースの実行監視を回避し、フォレンジック アーティファクトを大幅に削減します。DLL は次に呼び出します。 WaitForSingleObject() スレッド同期を維持し、シェルコードの実行が中断されないようにするため、タイムアウト値は無制限に設定されています。この実行方法は、ペイロードがメモリ内で動的に復号化され、起動されることでシグネチャベースのアンチウイルスエンジン、アプリケーション制御メカニズム、静的スキャン技術を回避する、現代のファイルレスマルウェアの手法と一致しています。シェルコードはその後、最終的なXeno RATペイロードのローダーとして機能し、侵害されたシステム上での永続性、コマンド&コントロール通信、およびリモート攻撃者アクセスを可能にします。
シェルコードは、最終的なXeno RATペイロードを準備して起動する役割を担う、メモリ内ローダーとして機能する。

実行中、通常は次のような API を使用して環境検証、動的 API 解決、メモリ権限の変更を実行します。 仮想保護() (NAIST) と GetProcAddress()Donutローダーでは、シェルコードは次のような関数をパッチすることでセキュリティメカニズムを回避します。 AmsiScanBuffer() AMSIスキャンを無効にし、動的に読み込まれるコンテンツの可視性を低減します。
最終的なペイロードはマネージド .NET アセンブリであるため、シェルコードは clr.dll や mscoree.dll などのコンポーネントをロードして .NET 共通言語ランタイム (CLR) を初期化します。その後、埋め込まれたペイロードは、次のようなリフレクティブ技術を使用してメモリから直接復号化されロードされます。 Assembly.Load(byte[])これにより、ディスクベースの展開を完全に回避できます。ロードされると、Xeno RATペイロードはメモリ上で実行され、コマンド&コントロール通信、永続性、および侵害されたシステムへのリモート攻撃者アクセスを可能にします。

ステージ5:XenoRATの解析。
感染連鎖で特定された最終ペイロードは ゼノラットこれは、GitHubで公開されているオープンソースのリモートアクセス型トロイの木馬(RAT)であり、脅威アクターが永続的なリモートアクセス、監視、および攻撃後の活動によく使用しています。

実行時に、安全なコマンドおよび制御(C2)通信チャネルを初期化します。 ハードコードされたIPアドレス(185.235.137.106) 攻撃者が制御するインフラストラクチャへの直接接続を可能にするポート構成も使用します。単一インスタンス実行を維持し、複数起動を防止するために、マルウェアはさらに、 ミューテックス(「クラウド」)これにより、感染したシステム上でクライアントのインスタンスが一度に1つだけ実行されることが保証されます。これらの初期化手順に続いて、永続化と継続的な再接続ロジックが実行され、侵害されたホストへの長期的なアクセスが維持されます。

それでは、興味深い機能のいくつかを取り上げ、その機能について分析してみましょう。
ConnectAndSetupAsync この関数は、クライアントとリモートサーバー間のTCPベースのコマンド&コントロール(C2)接続を確立および初期化する役割を担います。指定されたソケットと暗号化キーで構成されたSocketHandlerを使用して新しいNodeインスタンスを作成し、接続を介した暗号化通信を可能にします。初期化後、この関数はAuthenticateAsyncを使用して非同期認証ハンドシェイクを実行し、指定されたタイプとID値に基づいて接続を検証します。認証が失敗した場合、またはセットアップ中に例外が発生した場合は、C2通信チャネルが正常に確立できなかったことを示すnullを返します。それ以外の場合は、完全に初期化され認証されたNodeオブジェクトが返され、安全なデータ交換の準備が整います。

DllNodeHandler この関数は、リモート Node 接続を介して受信した外部 DLL モジュールの動的ロードと実行を管理します。まず、接続されたクライアントから DLL 名を受け取り、アセンブリが既にメモリにロードされているかどうかを確認します。DLL が存在しない場合は、リモート側からバイナリ データを要求し、動的にロードします。 アセンブリ.ロードDLL をロードした後、この関数はリフレクションを使用してアセンブリから指定されたクラスのインスタンスを作成し、アクティブな Node 接続を引数として渡して、そのパブリックな Run メソッドを非同期で呼び出します。

SendAsync メソッドは、ソケット ハンドラを介してデータを非同期的に送信し、送信が成功したかどうかを検証し、送信操作が失敗した場合はノードを切断します。同様に、 ReceiveAsync このメソッドは、基となるソケットハンドラから暗号化およびフォーマットされたデータを取得し、処理済みのバイトストリームを呼び出し元に返します。操作が失敗した場合、またはnullが返された場合、有効な接続状態を維持するためにノードは自動的に切断されます。これらのメソッドを組み合わせることで、接続管理機能と送信エラー時の自動クリーンアップ機能を備えた、信頼性の高いTCPベースのC2通信が実現します。
さらに、ペイロードデータは送信前にWindowsネイティブRTL圧縮API(RtlCompressBuffer)を使用して圧縮され、受信時には元のサイズヘッダーに基づいてRtlDecompressBufferを使用して解凍されるため、データの整合性を維持しながら転送効率が向上します。また、データセキュリティはAES暗号化によって強化され、生データはCryptoStreamを介して共有キーと固定IVで暗号化されるため、送信中の安全な通信が保証されます。

クラス内の追加メソッドは、ソケットの切断(Disconnect)、二次サブ接続の確立(ConnectSubSockAsync)、アクティブな接続状態の検証(Connected)、子ノード関係の維持(AddSubNode)など、その他のネットワーク操作を管理します。
AddToStartupAdmin 関数は、Windows スケジュール タスクを作成します。 XenoUpdateManager 指定された実行可能ファイルを、ユーザーが利用可能な最高権限(管理者権限)でシステムにログインするたびに自動的に実行します。XMLタスク定義を作成し、一時ファイルに書き込み、schtasks.exeを使用してWindowsタスクスケジューラにタスクを登録します。コマンドの実行後、出力結果を確認してタスクが正常に作成されたかどうかを判断し、結果を返します。

AddToStartupNonAdmin 関数は、実行可能ファイルを現在のユーザーの Windows スタートアップに追加します。 HKCU\Software\Microsoft\Windows\CurrentVersion\Run レジストリキーに基づいて実行されるため、管理者権限なしでログイン時に自動的に実行され、操作が成功したかどうかを返します。

アンチウイルスを入手 この関数は、root\SecurityCenter2 配下の AntivirusProduct クラスにクエリを実行することで、Windows Management Instrumentation (WMI) を使用してシステムからウイルス対策情報を取得します。このクエリによって返される displayName 値を収集します。これらの値は、システム識別に使用されるインストール済みのウイルス対策製品を表します。

RemoveStartup この関数は、スケジュールされたタスク (schtasks.exe を使用) とレジストリ キー HKCU\Software\Microsoft\Windows\CurrentVersion\Run の両方から一致するエントリを削除することで、Windows の起動時にアプリケーションを削除します。まず、スケジュールされたタスクを削除するための管理者権限があるかどうかを確認し、次に、指定された実行可能ファイルのパスを指すタスクをスキャンして削除します。最後に、現在のユーザーに対応するレジストリの起動エントリを削除します。

アンインストール この関数は、アプリケーションの永続化メカニズムを削除し、プログラムを自己終了します。まず、RemoveStartup を呼び出して、現在の実行可能ファイルに関連付けられているスタートアップエントリ (スケジュールされたタスクまたはレジストリ) を削除します。

この関数は、Base64デコードされたコマンド(/C choice /CY /N /DY /T 3 & Del)を使用して、非表示のcmd.exeプロセスを起動します。このプロセスは数秒待機した後、実行中の実行可能ファイルをディスクから削除します。最後に、現在のプロセスを強制終了することで、クリーンアップ後すぐにアプリケーションが終了するようにします。
ゼノラットの能力
Xeno RATは、その動作特性と攻撃後の機能に関する重要な知見を明らかにしました。分析されたコード、観測された活動、およびオープンソースのGitHubプロジェクトで公開されている機能に基づくと、このマルウェアは高度なリモートアクセス型トロイの木馬(RAT)によく見られる幅広い機能を備えていることが分かります。
- 被害者の活動を監視し、ホストの偵察情報を収集する。
- 暗号化されたTCPベースのコマンド&コントロール(C2)通信を確立します。
- SOCKS5プロキシベースのネットワークトンネルをサポートします。
- Assembly.Load を使用して、外部アセンブリをメモリに動的にロードします。
- 攻撃者が発行した任意のコマンドをリモートで実行する。
- ファイルのアップロード、ダウンロード、削除などのファイル管理機能を提供します。
- キーロギング、画面キャプチャ、クリップボード監視、ウェブカメラ/マイク監視を実行します。
- C2サーバーに定期的にステータスとハートビートの更新情報を送信します。
- 暗号化および圧縮されたネットワークトラフィックを使用して、分析を妨害する。
- スケジュールされたタスクとレジストリの実行キーを使用して永続性を維持します。
- Windowsの起動場所に追加したり削除したりできます。
- 長期にわたる不正アクセスを維持するために、秘密裏に活動する。
- 実行後のクリーンアップのために、自己アンインストール機能と自己削除機能が含まれています。
インフラストラクチャのアーティファクトと脅威アクターの帰属:
このチェーンと TPP の分析と追跡履歴に基づき、前述のとおり、このキャンペーンは SideCopy のクラスターに属し、中~高の信頼度レベルであると判断されました。インフラストラクチャ分析中、配信ドメイン abimj[.]edu[.]af は 2 つの IP アドレス (103.132.98.224 と 103.132.98.226) に解決されました。どちらも、アフガニスタン通信情報技術省 (AS58469) に割り当てられた 103.132.98.0/23 ブロック内にあります。

このIPブロック全体にわたるパッシブDNSピボットにより、200を超える正当なアフガニスタン政府および教育機関のドメインが同じインフラストラクチャ上で共存していることが明らかになり、攻撃者が意図的にアフガニスタンの主権インターネットインフラストラクチャ内に配信レイヤーを設置していたことが確認されました。これは、悪意のあるトラフィックを正当な政府通信に紛れ込ませ、ネットワークレベルの検出を回避するための計算された行動です。


RATのC2サーバー185.235.137.106をさらに詳しく調べたところ、HTTP、HTTPS、および非標準のRDPポートを実行しているWindowsホストが見つかりました。これは、オペレーターが管理する専用のC2ボックスと一致しています。

サーバーは、フランクフルトに物理的な拠点を持つブルガリア登録プロバイダーであるAS59711(HZ Hosting Ltd)でホストされており、以前にSideCopyインフラストラクチャレポートで文書化されています。 Seqrite.

分析時点で、このIPアドレスに解決されたドメインクラスターは3つあり、その中には.xyz、.live、.onlineといったTLDにまたがる攻撃者が登録した使い捨てドメインと、完全に構成されたメールインフラストラクチャドメインが含まれていました。これは、同じサーバーがRAT通信とフィッシング配信の両方を同時に処理していたことを示しています。

攻撃チェーン(LNKがmshta.exeを実行してindex.phpエンドポイント経由でリモートHTAを取得する)は、2019年以来一貫して文書化されているシグネチャーSideCopy TTPであり、グループの最も信頼できる識別方法の1つです。特にXenoRATの使用は、この帰属をさらに強化します。 Seqrite ラボは2024年12月に、SideCopyがアップデートされたツールセットの一部としてカスタマイズされたXenoRATの亜種を正式に採用したことを確認した。これは、以前AsyncRATで見られたオープンソースRATの採用パターンと同様である。正規のWindowsアプリケーションにタイプミスしたプロセス名を持つRunキーを介したレジストリベースの永続化は、文書化されたSideCopyのポストエクスプロイト動作と完全に一致する。
インフラレベルでは、配信ドメインはAFGNICを通じて登録され、正規のアフガニスタン政府のインフラと同じIPブロック上に配置されました。これは、SideCopyの既知のパターンと一致する意図的な混在手法です。HZ Hosting(AS59711)上のRAT C2はこれをさらに裏付けており、同じプロバイダーが以前にSideCopyのインフラクラスターで追跡された際にも出現していました。 Seqrite特に、配信パス(cloudiyaf)とRATのハードコードされた起動名(clouda)の命名規則の一貫性は、インフラストラクチャ層の両方を管理する単一のオペレーターの存在を示唆しており、配信層とポストエクスプロイト層を同一の主体に結びつけている。
結論:なぜオペレーション・ゼノフィスカルなのか?
この名称は、今回のキャンペーンを特徴づける2つの要素、すなわち最終ペイロードとして展開されたオープンソースのリモートアクセスツール「XenoRAT」と、アフガニスタン財務省の地方ネットワークを標的とした攻撃を反映した「Fiscal」に由来しています。これら2つを組み合わせることで、攻撃対象と標的の両方を1つの単語で表現するコードネームが誕生しました。攻撃者が意図的に財務省を標的とした金融関連の罠を仕掛け、さらに長期間にわたるサイレント監視が可能なRATを使用したことで、この組み合わせは必然的なものとなりました。XENOFISCALは単なる名称ではなく、作戦全体を8文字で要約したものです。
Seqrite 適用範囲:
- リンク.ダウンローダー50744.GC
- Script.Netloader.50745.GC
- Trojan.LoaderCiR
- Trojan.YakbeexMSIL.ZZ4
- cld.script.trojan.1779477414
IOC:
| ファイル名 | SHA256 |
| 〒 | 194B912C242604D6F9A79369F22338C58A13CE0CC2ED280CE505075808BC2F14 |
| LNK | 3B4194BDFE40D94031A94B30397FFD8A4B09D0A4057668E897B8BDCD1703DD01 |
| デコイPDF | DF9173A28C0B0B878C10A53D35CD7CE6F6ED66D207B6B7C4FF723721F1C027AB |
| ugayt.hta | A63E90EE57A1F213A8FE76EF1A6CFF5AE9ED7EBCEDA258431533825E648C0C67 |
| noway.bat | 5833917BD137804F5A021D2CB37ADFE5C4B7B67DBB06D59C3B9C5CF393835E45 |
| zuidrt.hta | 99127C8C67D90E2776BEEB85281F9C68399BF4567B07A6B638D68B760212E88D |
| WayBroad.dll | 8F2D979EF33B2900351C94C7335275A9342C75189E1A901998E90A539E944A1A |
| Aotestpass.dll | 0019212F25EB04BBB33BB194879C095265DB7855D6003BDD777CF0CBB90EB772 |
| ゼノラット | 9AE3D785486022AF82EA92E51B26E3F55C1BBA88A7BE2AD9790F4240E8499D14 |
マイター攻撃&CK:
| 戦略 | 技名 | テクニックID |
| 初期アクセス | スピアフィッシング添付ファイル | T1566.001 |
| 実行 | Trusted Developer Utilities プロキシ実行: mshta | T1218.005 |
| コマンドおよびスクリプトインタープリター:Windowsコマンドシェル | T1059.003 | |
| コマンドおよびスクリプト インタープリター: JavaScript | T1059.007 | |
| 共有モジュール | T1129 | |
| ネイティブAPI | T1106 | |
| 固執 | レジストリ実行キー / スタートアップ フォルダー | T1547.001 |
| スケジュールされたタスク | T1053.005 | |
| 権限昇格 | スケジュールされたタスク | |
| 防衛回避 | 難読化されたファイルまたは情報 | T1053.005 |
| ファイルまたは情報の難読化/デコード | T1027 | |
| ファイルレスストレージ/実行 | T1140 | |
| リフレクションコードの読み込み | T1027.011 | |
| 土地に根ざした生活を送るための二項対立と脚本(LOLBAS) | T1620 | |
| 隠しファイルとディレクトリ | T1218 | |
| プロセスインジェクション/インメモリ実行 | T1564.001 | |
| AMSIバイパス | T1055 | |
| ホストでのインジケーターの削除:ファイルの削除 | T1562.001 | |
| プーケットの魅力 | クエリレジストリ | T1070.004 |
| システム情報の発見 | T1012 | |
| ソフトウェアディスカバリー | T1082 | |
| セキュリティソフトウェアの検出 | T1518 | |
| 収集 | キーロギング | T1518.001 |
| スクリーンキャプチャ | T1056.001 | |
| クリップボードデータ | T1113 | |
| オーディオキャプチャ | T1115 | |
| ビデオキャプチャを選択します。 | T1123 | |
| コマンドおよび制御 | アプリケーション層プロトコル:Webプロトコル | T1125 |
| 非アプリケーション層プロトコル | T1071.001 | |
| 暗号化されたチャネル | T1095 | |
| プロキシ: 外部プロキシ | T1573 | |
| ダイナミック解像度 | T1090.002 | |
| リソース開発 | インフラストラクチャの取得:ドメイン | T1568 |
| インフラストラクチャの侵害 | T1583.001 |



