LOLBins を使いすぎて RAT ペイロードを配信できますか?
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
このレポートは、リモートアクセスツール(Remcos、NetSupport Managerを含む)を取得し実行するためにWindowsの組み込みユーティリティ(LOLBins)を積極的に悪用するマルチステージ感染チェーンを概説します。オペレーターは、forfiles、mshta、PowerShell、curl、tar、WScript、およびターゲットとするレジストリの変更を連鎖させてペイロードをステージングし、持続性を確立し、視認性を低減します。このワークフローはまた、生きている環境内での振る舞いを利用して管理活動に静かに溶け込むものです。Malwarebytesはこの活動を特定し、関連IPアドレスをブロックしました。全体として、どれだけ広範にLOLBinsの悪用がRATsの配信に信頼できるかを強調しています。
調査
研究者は最初にforfiles.exeがmshtaを生成し、悪意のあるHTAを引き込み、PowerShellを実行してTARアーカイブを運ぶPDFデコイを取得するのを確認しました。抽出後、トロイの木馬化されたglaxnimate.exeがProgramDataに断片化されたコンポーネントをドロップし、WScript、バッチスクリプト、補助ファイルを使用して再構成および起動しました。持続性は、HKCUEnvironmentに悪意のあるクライアントバイナリを参照するUserInitMprLogonScript値を作成することで設定されました。
緩和策
特にforfiles、mshta、curl、tar、expand、およびHKCUEnvironment内の疑わしいレジストリエディットに関して、異常なLOLBinsの実行を監視します。アプリケーションのホワイトリストの適用、包括的なPowerShellロギングの有効化、およびProgramDataからのスクリプト実行の防止によりステージングを制約します。未知のIPへの異常なアウトバウンドHTTPをブロックし、初回ダウンロード試行を妨害するためにURLフィルタリングを適用します。
対応
検出時には、ホストを隔離し、フルコマンドラインテレメトリーをキャプチャし、ハッシュ解析用にドロップされたアーティファクトを収集します。悪意のあるレジストリエントリを削除し、ProgramDataに作成されたファイルを削除します。最新のAV署名を使用してエンドポイントスキャンを実行し、攻撃者のIPアドレスと関連ドメインへのネットワークレベルのブロックを実施します。
graph TB %% Class definitions classDef technique fill:#ffcc99 classDef process fill:#c2f0c2 classDef action fill:#99ccff classDef tool fill:#dddddd classDef malware fill:#ff9999 %% Nodes initial_access[“<b>技法</b> – T1218.005: Mshta.exe<br/><b>説明</b> forfiles.exe を使用して mshta を起動し HTA をダウンロード”] class initial_access technique process_mshta[“<b>プロセス</b>: mshta.exe<br/><b>アクション</b> リモート HTA を実行”] class process_mshta process download_htapayload[“<b>アクション</b> – HTA をダウンロード<br/><b>ツール</b> mshta”] class download_htapayload action cmd_execution[“<b>技法</b> – T1059.001: PowerShell<br/><b>説明</b> HTA が cmd.exe を起動”] class cmd_execution technique powershell_one_liner[“<b>技法</b> – T1059.001: PowerShell<br/><b>説明</b> ワンライナーが PDF としてペイロードをダウンロードし、tar で抽出し、glaxnimate.exe を起動”] class powershell_one_liner technique local_staging[“<b>技法</b> – T1074.001: ローカルステージング<br/><b>説明</b> ProgramData に .PART ファイルを作成”] class local_staging technique vbscript_execution[“<b>技法</b> – T1059.005: Visual Basic<br/><b>説明</b> wscript.exe が processor.vbs を実行し、隠し cmd を起動して patcher.bat を実行”] class vbscript_execution technique archive_extraction[“<b>技法</b> – T1560.001: アーカイブ抽出<br/><b>説明</b> expand が setup.cab を抽出、NetSupport RAT を含む”] class archive_extraction technique persistence[“<b>技法</b> – T1547.014: レジストリ Run キー / スタートアップフォルダ<br/><b>説明</b> HKCU\\Environment\\UserInitMprLogonScript を client32.exe に設定”] class persistence technique client32[“<b>マルウェア</b> client32.exe<br/><b>目的</b> ログオン時に実行”] class client32 malware glaxnimate[“<b>マルウェア</b> Trojan化 glaxnimate.exe<br/><b>目的</b> 悪意のあるペイロードを実行”] class glaxnimate malware netsupport[“<b>マルウェア</b> NetSupport RAT<br/><b>目的</b> リモートアクセスペイロード”] class netsupport malware %% Connections initial_access –>|使用| process_mshta process_mshta –>|ダウンロード| download_htapayload download_htapayload –>|実行| cmd_execution cmd_execution –>|トリガー| powershell_one_liner powershell_one_liner –>|ファイルをステージ| local_staging local_staging –>|実行| vbscript_execution vbscript_execution –>|抽出| archive_extraction archive_extraction –>|インストール| glaxnimate glaxnimate –>|インストール| netsupport netsupport –>|導く| persistence persistence –>|実行| client32
攻撃フロー
シミュレーション実行
前提条件:テレメトリー&ベースラインのプレフライトチェックが通過している必要があります。
根拠:このセクションは、検出ルールをトリガーするために設計された敵の技術(TTP)の正確な実行を詳述します。コマンドおよびナラティブは識別されたTTPsを直接反映し、検出ロジックで期待される正確なテレメトリーを生成することを目的とします。
-
攻撃ナラティブとコマンド:
レッドチームのオペレーターは、 Remcos RATを直接実行可能ファイルをダウンロードせずに展開することを目的としています。- 発見とステージング: Use
forfiles.exeを使用してターゲットディレクトリを見つけ出し、mshtaを悪意のあるURLで起動し、HTAペイロードをホストします。 - ファイルレスPowerShellダウンロード: Invoke
powershell.exeを使用して、-NoProfile -Command curlを実行し、C2サーバーからセカンドステージスクリプトを取得します。 - VBScript実行: crafted
processor.vbsviaWScript.exeを展開してRATバイナリを%ProgramData%. - へ書きます。 バッチドロッパー:
非表示のバッチファイル(非表示のバッチファイル()を起動し、)を起動し、を経由して呼び出されるを経由して呼び出される
により持続性を確立します。
- 発見とステージング: Use
-
各ステップは、Sigma選択のいずれかに一致する独自のプロセス作成イベントを生成し、ルールが発生するようにします。
回帰テストスクリプト:以下のスクリプトは、4つの選択を制御されたラボで再現します。それぞれのコマンドを一時ファイルに記録して後で検証します。 -
クリーンアップコマンド:
ホストをクリーンな状態に戻すためにアーティファクトを削除します。# LOLBinシミュレーションアーティファクトをクリーンアップ Remove-Item -Path "$env:ProgramDataprocessor.vbs" -ErrorAction SilentlyContinue Remove-Item -Path "$env:ProgramDataremcos.exe" -ErrorAction SilentlyContinue Remove-Item -Path "$env:ProgramDatapatcher.bat" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPstage.ps1" -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPlolbin_simulation.log" -ErrorAction SilentlyContinue Write-Output "[+] クリーンアップ完了。"