概要:Patchwork APTの新たな攻撃手法
Patchwork APT(別名:Dropping Elephant、Monsoon、Hangover Group)が、Windowsのスケジュールタスクを悪用して最終ペイロードを実行する、新しいPowerShellベースのローダーを展開していることが確認されました。2015年頃から活動しているこのAPTグループは、南アジアおよび東南アジアにおける政治・軍事情報の収集に焦点を当てており、その執拗な攻撃、ソーシャルエンジニアリングの巧妙さ、そして既存ツールの再利用とカスタマイズで知られています。
最新の攻撃キャンペーンの詳細
最新のキャンペーンでは、標的は悪意のあるマクロを含むMicrosoft Officeドキュメントを受け取ります。このマクロが有効化されると、LNKショートカットファイルがダウンロードされ、これが開かれるとPowerShellスクリプトが実行されます。
PowerShellスクリプトの実行内容
- 正規のVLCメディアプレイヤーを模倣し、
vlc.exe
と偽装した実行ファイルをC:\Windows\Tasks\lama
にダウンロードします。 vlc.exe
と共にサイドロードされる可能性のある、偽のライブラリlibvlc.dll
を取得します。- 悪意のあるURLからデコイ(おとり)のPDFファイルをフェッチし、パブリックドキュメントフォルダに配置します。
WindowsErrorReport
という名前のスケジュールタスクを作成し、定期的にvlc.exe
を起動するように設定します。- 最終的に、MSILでコンパイルされた.NETベースの実行ファイルであるAPTの最終ペイロードをダウンロードして保存します。
多段階C2通信の確立
スケジュールタスクがvlc.exe
を起動すると、ローダーのfStage
メソッドが攻撃者のC2サーバー(Program.muri
)とのセキュアなチャネルを開始します。この段階で、システム情報が収集され、以下の手順でC2サーバーに送信されます。
- 被害者のクライアントIDをハードコードされたキー(
eOvstoxSBbZGWsTtknc
)でXOR処理し、Base64エンコードします。 - カスタムのProtean関数を介して追加の難読化を適用します。
- TLS 1.2を使用したHTTPS経由で、POSTフォーム(
sosid
およびslid
パラメータ)としてデータを送信します。 - サーバーからの応答はBase64デコードされ、セッションキーでXOR復号化されて
acc.xkey
が生成され、将来の暗号化のために保存されます。
fStage
が失敗した場合、5秒ごとに最大20回のリトライが実行されます。
ホスト情報の収集(SStageメソッド)
次に、SStage
メソッドはホストの情報をインベントリします。収集される情報には以下が含まれます。
ipd()
を介したパブリックIPアドレス- OSバージョン
- MACアドレスとユーザー名
- 作業ディレクトリパス
- プロセスIDと管理者権限ステータス
- 一意のセッションID
これらのデータはそれぞれXOR難読化、Base64エンコード、Proteanによるスクランブル処理が施された後、送信されます。
追加データ収集(bkjメソッド)
同時に、bkj
メソッドは以下の情報を収集します。
dsffds()
がWMI(Win32_Product
)を介してインストールされているアプリケーションを収集します。ghjk()
がSecurityCenter2
名前空間からアンチウイルス製品を列挙します。
収集されたすべてのデータは同様に難読化され、C2にPOSTされます。成功すると、永続性が確認され、エラーカウンターがリセットされます。
コマンドの取得とデータ流出
_getCommand
関数は、正規のウェブフォームPOST(sltrg=pap
)としてトラフィックを偽装し、攻撃者の指示を取得します。実行後、結合された出力とエラーは応答文字列に追加され、_sendResult
メソッドを使用して攻撃者のコマンド&コントロールサーバーに送り返されます。
応答は正規表現によるクリーンアップ、多層のCharm()による難読化解除、二重のBase64デコード、セッションキーによるXOR復号化を経て、プレーンテキストのコマンドが生成されます。失敗した場合は、ステルス性を維持するために最大20回の再試行ループがトリガーされます。
コマンドの出力を流出させるために、マルウェアはScourgifyエンコーディングを使用し、一意の被害者IDを添付して、POST経由で結果を送信します。最大20サイクルの再試行により、アラートを発生させることなく信頼性の高い配信が保証されます。
その他の機能
その後のメソッドは以下の機能を提供します。
dfile
:補助ファイルをダウンロードし、一時ディレクトリにデコードします。ufile
:大容量ファイルを1MBのセグメントに分割し、Base64エンコードして、ステルスかつ再開可能な方法でC2にストリーミングします。v_alloc
:実行可能なメモリを割り当て、ペイロードバイトをコピーし、ディスクアーティファクトなしでインメモリコードを実行するための新しいスレッドを生成します。scrt
:フルスクリーンショットをキャプチャし、サーバーにアップロードし、成功後にローカルコピーをクリーンアップします。
緩和策
Patchworkのモジュール式で多層的なアプローチは、堅牢なエンドポイント防御の重要性を示しています。マクロを信頼できるソースからのみ有効にすること、WindowsErrorReport
のような異常なスケジュールタスクを監視すること、およびアプリケーションのホワイトリストを強制することは、ローダーの実行チェーンを妨害することができます。さらに、K7 Total Securityのようなセキュリティソリューションを最新のシグネチャと振る舞いベースの検出機能で展開することで、これらのPowerShellベースの技術が大規模なデータ流出を引き起こす前に特定し、隔離することができます。警戒を怠らず、オペレーティングシステムとセキュリティソフトウェアの両方を更新し続けることが、Patchworkの進化する攻撃に対抗するために不可欠です。
元記事: https://gbhackers.com/patchwork-apt-powershell-scheduled-tasks/