管理者アクセスによって公開されたWindowsサービス
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
脅威アクターは、コードを高い権限で実行し、侵害されたシステム上で永続性を確立するためにWindowsサービスを悪用します。一般的な方法には、 sc.exe またはPowerShellを使用して新しいサービスを作成すること、既存のサービスのバイナリパスを変更すること、SDDLを通じてサービスの権限を変更すること、サービスの回復設定を悪用してサービスが失敗したときに悪意のあるコマンドを起動することが含まれます。より高度な方法には、コマンドラインの可視性を避けるためにWindows APIを使用したり、カーネルモードのドライバーをインストールしたりすることが含まれます。
調査
このレポートでは、Windowsサービスを操作するための複数の技術をまとめ、攻撃者が sc.exe、PowerShell、およびレジストリ変更などのネイティブツールに依存できる方法を示しています。サービス回復オプションをハイジャックしてペイロードを実行する方法や、カーネルモードドライバーがより深いシステムアクセスのために導入される可能性について説明しています。この調査では、この行動を検出するための有用なテレメトリを提供する重要なWindowsイベントIDおよびレジストリの場所も特定しています。
緩和策
組織は、サービス関連レジストリの場所に対して監査を有効にすることによって、レイヤードディフェンスを適用するべきです、特に Services ハイブと関連する回復設定キーを含めます。WindowsイベントIDを監視することも重要です。 7045, 、, 4657、および 4663 も含めます。これらはサービスの作成または変更を検出するのに不可欠です。ディフェンダーはまた、サービス権限の改ざんに対する防御策を講じ、無許可のカーネルドライバーインストール活動を追跡するべきです。
対応
疑わしいサービス活動が検出された場合、応答者は起動プロセスとその親子チェーンを調査するべきです、特に services.exe が予期しないシェルプロセスを開始した場合です。レジストリの変更は、 CreateServiceWのようなAPI活動と相関させるべきです。また、無許可のドライバーロードに対してシステムをレビューし、サービスバイナリパスと回復設定の整合性も環境全体で検証されるべきです。
攻撃フロー
この部分はまだ更新中です。通知を受け取るためには登録してください
通知してください検出
レジストリを通じた疑わしいサービス作成(cmdline経由)
表示
疑わしいサービス作成(powershell経由)
表示
永続性のための手動サービスまたはドライバーインストールの可能性(cmdline経由)
表示
UNC共有上のバイナリと共にサービス作成の可能性(cmdline経由)
表示
永続性のための疑わしいサービス作成(system経由)
表示
PowerShell新規サービスコマンドによる永続的サービスの作成 [Windows Powershell]
表示
悪意のあるサービス検出および回復機能の悪用 [Windows System]
表示
sc.exeを経由した悪意のあるWindowsサービス作成および設定の検出 [Windowsプロセスの作成]
表示
シミュレーションの実行
前提条件:テレメトリとベースライン事前フライトチェックが合格していること。
根拠:このセクションでは、検出ルールをトリガーするように設計された対敵技術(TTP)の正確な実行を詳細に説明します。コマンドと説明部分は、特定されたTTPを直接反映し、検出ロジックで期待される正確なテレメトリを生成することを目指す必要があります。抽象的または関係のない例は、誤診につながります。
-
攻撃の物語およびコマンド: 対敵者は初期アクセスを得て、足場を維持しようとしています。シンプルなファイルベースのウイルス対策による検出を避けるために、「WindowsUpdateSvc」という新しいWindowsサービスを作成するLiving-off-the-Landアプローチを選択しました(欺瞞的な名前)。このサービスは悪意のあるPowerShellエンコードコマンドを実行するように設定されています。このサービスの作成は、検出ルールの主なトリガーであるWindows System Event ID 7045を生成します。
-
回帰テストスクリプト:
# T1543.003をシミュレート:イベントID 7045をトリガーする悪意のあるサービスの作成 $ServiceName = "WindowsUpdateSvc" $Payload = "powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -Command 'Write-Output "永続性が確立されました" | Out-File C:temppwned.txt'" # サービスを作成 # 注:管理者権限が必要です New-Service -Name $ServiceName -BinaryPathName $Payload -DisplayName "Windows Update Service" -StartupType Automatic Write-Host "サービス$ServiceNameが作成されました。システムイベントログでイベントID 7045を確認してください。" -
クリーンアップコマンド:
# クリーンアップ:悪意のあるサービスと作成されたファイルを削除 $ServiceName = "WindowsUpdateSvc" Stop-Service -Name $ServiceName -ErrorAction SilentlyContinue sc.exe delete $ServiceName if (Test-Path "C:temppwned.txt") { Remove-Item "C:temppwned.txt" } Write-Host "クリーンアップが完了しました。"