SharpViewStateKingとステルスインプラントフレームワークの解剖
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
カナダのサイバーセキュリティセンターは、SharpViewStateKingをASP.NET環境を密かに標的にするために構築されたモジュラーインプラントフレームワークとして特定しました。このフレームワークは、ViewStateパラメータの不正利用により、プラグインを完全にメモリ内で実行し、実質的なステートレス動作を可能にして、従来のファイルベースの検出を回避します。その暗号化されたHTTPおよびHTTPSトラフィックは、正当なWeb通信に溶け込むのに役立ちます。
調査
調査は、公開されているMicrosoft IISサーバーでウェブシェルが発見された後に始まりました。エンドポイントのテレメトリとプロセスメモリの調査により、インプラントがファイルアップロード、リモートコマンド実行、ホスト偵察などのアクションを実行するために動的に生成されたC#プラグインを使用していることが示されました。研究者はAssemblylineプラットフォームを使用してC#バイトコードをデコンパイルし、フレームワークの内部ロジックを露出させました。
緩和策
防御者は、影響を受ける可能性のあるホストを再構築し、ASP.NETアプリケーションに関連する暗号化および検証キーを交換するべきです。報告書で言及されているSharePointに影響を与えるものを含む関連する脆弱性の修正も重要です。IISにより起動された子プロセスのモニタリング w3wp.exe ワーカープロセスにより、インプラントに関連した不正な活動を発見するのに役立ちます。
対応策
SharpViewStateKingの活動が確認された場合、組織は、ツールの展開やSoftEther VPNの使用など、新しいアカウントの作成を含む横方向の移動の兆候をEDRおよびNDRのテレメトリで確認する必要があります。侵害されたシステムに関連付けられたすべてのパスワードと認証情報は漏洩したと見なされ、すぐに回転されるべきです。セキュリティチームは、Microsoft Defenderの除外が無許可で変更されたかどうかも確認するべきです。
攻撃フロー
検出
可能性のあるImpacket SecretDumpリモート活動(zeek経由)
表示
可能性のあるWebサーバーまたはWebアプリのエクスプロイト [Windows](cmdline経由)
表示
疑わしいDefender除外の変更 WMIC経由(cmdline経由)
表示
可能性のあるImpacket SecretDump活動(監査経由)
表示
リモート実行とトレース消去プラグインの検出 [Windows Sysmon]
表示
SharpViewStateKing HTTP要求の異常を検出 [Webサーバー]
表示
隠れたWindowsを介したステルスコマンド実行の検出 [Windowsプロセス作成]
表示
シミュレーション実行
前提条件:テレメトリとベースラインの出発前チェックが完了している必要があります。
根拠:このセクションは、検出ルールをトリガーするために設計された敵の手法(TTP)の正確な実行を詳細に説明します。コマンドと記述は、TTPsを直接反映し、検出ロジックが期待する正確なテレメトリを生成することを目的とする必要があります。抽象的または無関係な例は誤診につながります。
-
攻撃の流れとコマンド: 敵は脆弱なASP.NETアプリケーションを特定し、SharpViewStateKingフレームワークを展開して持続性を維持し、セッションデータを傍受しようとしています。これを行うために、攻撃者はHTTP要求の一連を送信し、それを利用します。
__VIEWSTATEand__SCROLLPATHパラメータを使用してエクスプロイトペイロードを配信します。これらの特定のパラメータを使用することにより、攻撃者は標準のASP.NETトラフィックに溶け込もうとし、従来のウェブシェルパスのみを探すシグネチャベースの検出を回避しようとしています。 -
回帰テストスクリプト:
# SharpViewStateKing検出ルールをトリガーするシミュレーションスクリプト $targetUri = "http://localhost/Login.aspx" # ペイロード1:__VIEWSTATEパラメータの検出テスト Write-Host "[*] __VIEWSTATEでのエクスプロイト試行をシミュレートしています..." $payload1 = "__VIEWSTATE=MZ................[Simulated_Malicious_Payload]" Invoke-WebRequest -Uri "$targetUri?$payload1" -Method Get # ペイロード2:__SCROLLPATHパラメータの検出テスト Write-Host "[*] __SCROLLPATHでのエクスプロイト試行をシミュレートしています..." $payload2 = "__SCROLLPATH=/etc/passwd" Invoke-WebRequest -Uri "$targetUri?$payload2" -Method Get Write-Host "[+] シミュレーション完了。SIEMを確認して警告をチェックしてください。" -
クリーンアップコマンド:
# ステートレスなHTTP GETリクエストであるため、特定のクリーンアップは必要ありません。 # ただし、実際の攻撃中にファイルがドロップされた場合は、それらを削除する必要があります。 Write-Host "[*] シミュレーションクリーンアップ:持続的なアーティファクトは作成されていません。"