W-2からBYOVDへ:税務検索がカーネルモードのAV/EDR無効化に至る経緯
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
広範なマルバタイジング作戦が、Google Adsを悪用して税書類検索に関連する偽のScreenConnectインストーラーを配布しています。そのインストーラーは多段階暗号化ツールを展開し、その後BYOVDユーティリティのHwAudKillerをロードします。このツールは署名付きのHuaweiオーディオドライバーをインストールし、カーネルレベルのアクセスを利用してAVとEDRプロセスを終了させます。一度セキュリティ制御が無効になると、攻撃者はLSASSの資格情報をダンプし、NetExecを使用してネットワーク全体の資格情報を取得します。この活動は、カスタムカーネルドライバーを組み合わせることで、セキュリティを無効化し、ステルスでのアクセスを取得し、永続性を維持することができることを示しています。
調査
Huntressの研究者は、リダイレクト経路を追跡し、 anukitax.com to bringetax.com 偽のScreenConnect MSIパッケージの配信を確認しました。ドロップされたcrypteds.exeは、2GBのメモリアロケーショントリックを使って回避し、timeSetEventを通じて間接的にシェルコードを起動した後にHwAudKillerをロードします。そのペイロードはHavoc.sysを%TEMP%に書き込み、ハードコードされたセキュリティプロセスのリストを終了させるカーネルサービスとしてHavocを登録します。別の侵入では、攻撃者はVPNの脆弱性を利用してアクセスを獲得し、同じドライバーを再利用し、FortiEDRプロセスを含める形でキルリストを拡張し、comsvcs.dllを使用してLSASSをダンプし、NetExecで横移動しました。
緩和策
組織は、正規のScreenConnectデプロイメントをブロックまたは厳格に許可リスト化し、不慣れな試用インスタンス-*リレーホスト名を監視するべきです。セキュリティチームは、一時パスからロードされたカーネルドライバーに注意し、SysmonイベントID 6およびWindowsサービスのインストールアクティビティに対してアラートを発するべきです。厳密な実行コントロールは、C:WindowsSystemTempScreenConnectおよび%TEMP%に書き込まれたファイルに対して実施されるべきです。また、ユーザーの認識向上活動において、Google Ads検索結果が税関連ダウンロードの信頼できるソースであるべきではないことを強調すべきです。
対応策
不正なScreenConnectインストーラーが見つかった場合、直ちにエンドポイントを隔離し、crypteds.exeおよびドロップされたHavoc.sysドライバーを収集し、Havocサービスを停止します。潜在的に侵害されたアカウントの資格情報リセット手続きを開始し、露出したアクセスを取り消します。その後、追加のScreenConnectリレー接続、NetExecの実行、LSASSダンプの兆候を探して環境全体をスキャンします。最後に、発見されたIOCを内部および外部の脅威インテリジェンスチャネルと共有します。
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef driver fill:#ffddaa %% Node definitions initial_access["<b>技術</b> – T1659 コンテンツインジェクション<br/><b>説明</b>: 悪意のあるGoogle Adsが、税書類を検索するユーザーを不正なScreenConnect MSIインストーラーを提供する隠れたランディングページにリダイレクトします。"] class initial_access action tool_google_ads["<b>ツール</b> – 名前: Google Ads<br/><b>目的</b>: ランディングページにリンクする不正広告を提供。"] class tool_google_ads tool malware_screenconnect["<b>マルウェア</b> – 名前: ScreenConnect MSI<br/><b>タイプ</b>: リモートアクセスインストーラー。"] class malware_screenconnect malware user_execution["<b>技術</b> – T1204 ユーザー実行<br/><b>説明</b>: 被害者がダウンロードしたform_w9.msiを実行し、ScreenConnectをインストールします。"] class user_execution action remote_desktop["<b>技術</b> – T1219.002 リモートデスクトップソフトウェア<br/><b>説明</b>: 攻撃者が、侵害されたScreenConnectセッションを介して、双方向リモートコントロールを得ます。"] class remote_desktop action obfuscation["<b>技術</b> – T1027 暗号化されたファイルまたは情報<br/><b>説明</b>: ペイロードはXOR暗号化されたシェルコード、カスタム圧縮、リフレクティブ・ローディングを使用します。"] class obfuscation action compile_after_delivery["<b>技術</b> – T1027.004 配信後のコンパイル<br/><b>説明</b>: ペイロードは静的検出を回避するために、配信後にコンパイルされます。"] class compile_after_delivery action reflective_loader["<b>プロセス</b> – 名前: リフレクティブ・ローダー<br/><b>説明</b>: ランタイムで暗号化されたシェルコードをロードします。"] class reflective_loader process persistence_service["<b>技術</b> – T1543 システムプロセスの作成または修正<br/><b>説明</b>: マルウェアがWindowsサービスを作成し、署名されたHuaweiドライバーをSYSTEMで実行するようにロードします。"] class persistence_service action driver_havoc["<b>ドライバー</b> – 名前: Havoc.sys<br/><b>説明</b>: %TEMP%からロードされた署名されたHuaweiカーネルドライバー。"] class driver_havoc driver credential_dump["<b>技術</b> – T1547.008 LSASS ドライバー<br/><b>説明</b>: ドライバーはrundll32を経由してcomsvcs.dllを使ってLSASSメモリをダンプします。"] class credential_dump action tool_comsvcs["<b>ツール</b> – 名前: comsvcs.dll<br/><b>目的</b>: rundll32によりLSASSダンプのために呼び出されます。"] class tool_comsvcs tool process_rundll["<b>プロセス</b> – 名前: rundll32.exe<br/><b>説明</b>: comsvcs.dllを実行し、資格情報のダンプを実行します。"] class process_rundll process discovery_netscan["<b>技術</b> – T1018 リモートシステムディスカバリー<br/><b>説明</b>: NetScanは内部ホストを列挙します。"] class discovery_netscan action tool_netscan["<b>ツール</b> – 名前: NetScan<br/><b>目的</b>: ネットワークをスキャンしてライブホストを探します。"] class tool_netscan tool lateral_rdp["<b>技術</b> – T1021.001 リモートサービス RDP<br/><b>説明</b>: RDPを使用して横移動します。"] class lateral_rdp action tool_rdp["<b>ツール</b> – 名前: RDP<br/><b>目的</b>: 横移動のためのリモートデスクトッププロトコル。"] class tool_rdp tool lateral_nxc["<b>技術</b> – T1210 リモートサービスのエクスプロイト<br/><b>説明</b>: NetExec (nxc) を使用してリモートマシン上でコマンドを実行します。"] class lateral_nxc action tool_nxc["<b>ツール</b> – 名前: NetExec (nxc)<br/><b>目的</b>: SMBまたはRDP経由でコマンドを実行します。"] class tool_nxc tool defense_terminate["<b>技術</b> – T1027 追加の防御回避<br/><b>説明</b>: カーネルドライバーがDefender、Kaspersky、SentinelOneなどのセキュリティプロセスを終了します。"] class defense_terminate action %% Connections initial_access –>|使用| tool_google_ads tool_google_ads –>|配信| malware_screenconnect malware_screenconnect –>|インストールされる| user_execution user_execution –>|有効にする| remote_desktop remote_desktop –>|チャンネル提供| obfuscation obfuscation –>|使用| compile_after_delivery compile_after_delivery –>|ロード方法| reflective_loader reflective_loader –>|作成| persistence_service persistence_service –>|ドライバーロード| driver_havoc driver_havoc –>|有効にする| credential_dump credential_dump –>|使用| tool_comsvcs tool_comsvcs –>|実行| process_rundll process_rundll –>|促進| discovery_netscan discovery_netscan –>|使用| tool_netscan discovery_netscan –>|有効にする| lateral_rdp lateral_rdp –>|使用| tool_rdp lateral_rdp –>|有効にする| lateral_nxc lateral_nxc –>|使用| tool_nxc driver_havoc –>|実行| defense_terminate "
攻撃のフロー
検出
可能なIPルックアップのドメイン通信試行(経由dns)
表示
可能なBYOVD – 脆弱なドライバー持参型攻撃(経由監査)
表示
可能なデータ侵入 / 流出 / C2経由第三者サービス / ツール(経由dns)
表示
代替リモートアクセス / 管理ソフトウェア(経由プロセス作成)
表示
Comsvcs.dllを使用した可能な資格情報ダンプ(経由cmdline)
表示
可能なBYOVD – 脆弱なドライバー持参型攻撃(経由ファイルイベント)
表示
可能なシステムプロセスの列挙(経由cmdline)
表示
コマンドアンドコントロールチャネルとしての可能なTelegram悪用(経由dns_query)
表示
ドライバーが疑わしい場所にポイントするWindowsサービスが作成された(経由cmdline)
表示
可能なデータ侵入 / 流出 / C2経由第三者サービス / ツール(経由proxy)
表示
ドライバー指向のWindowsサービスが作成された(経由cmdline)
表示
可能なLsassプロセスの列挙(経由cmdline)
表示
IOC(DestinationIP)を検出する:W-2からBYOVDまで:税検索がカーネルモードAV/EDRキルへと導く方法
表示
IOC(HashSha256)を検出する:W-2からBYOVDまで:税検索がカーネルモードAV/EDRキルへと導く方法
表示
IOC(SourceIP)を検出する:W-2からBYOVDまで:税検索がカーネルモードAV/EDRキルへと導く方法
表示
マルバタイジングキャンペーンによる不正ソフトウェア配信および資格情報収集【Windowsプロセス作成】
表示
シミュレーションの実行
前提条件:テレメトリー&ベースラインの事前チェックが合格していること。
理由:このセクションでは、検出ルールをトリガーするために設計された攻撃者の技術(TTP)の正確な実行について説明します。コマンドと物語はTTPで特定された内容を直接反映し、検出ロジックによって期待される正確なテレメトリーを生成することを目的としています。
-
攻撃の物語とコマンド:
- マルバタイジングによる初期アクセス: 被害者は税書類を検索中に悪意のある広告をクリックし、それがドライブバイダウンロードのトリガーとなります
form_w9.msi. - 不正ソフトウェアのインストール: MSIがサイレントでScreenConnectに似たリモートサポートツールをインストールし、以下をドロップします
crypteds.exeandsent.exeを%TEMP%ディレクトリに配置します。 - 資格情報収集:
crypteds.exeLSA Secretsをダンプするために起動します。 - DLLサイドローディング経由rundll32: 静的検出を回避するため、攻撃者は
rundll32.exeをシステムDLLと使用してcomsvcs.dllをエントリポイントとして、埋め込まれたペイロードを実行します。
以下は、テストマシンでシミュレーションされた正確なコマンドです:
# 1. 悪意のあるMSIをデプロイする(シミュレーション) Start-Process -FilePath "C:Tempform_w9.msi" -ArgumentList "/quiet" -Wait # 2. 資格情報ダンプツールを起動する Start-Process -FilePath "$env:TEMPcrypteds.exe" -ArgumentList "/dump" -Wait # 3. コマンドラインのcomsvcs.dllを使用してrundll32経由で悪意のあるペイロードをロードする rundll32.exe "C:windowsSystem32comsvcs.dll",LaunchApplication "$env:TEMPsent.exe" - マルバタイジングによる初期アクセス: 被害者は税書類を検索中に悪意のある広告をクリックし、それがドライブバイダウンロードのトリガーとなります
-
回帰テストスクリプト: 以下のスクリプトは、上記のステップを自動化し、生成されたテレメトリーが検出ルールの期待に一致することを確認します。
# 回帰テストスクリプト – マルバタイジングキャンペーンをシミュレート # ----------------------------------------------------------- # 0. 前提条件:Sysmonがコマンドラインログを有効にして実行していることを確認してください。 # 変数 $msiPath = "$env:TEMPform_w9.msi" $dumpTool = "$env:TEMPcrypteds.exe" $payload = "$env:TEMPsent.exe" $dllPath = "C:windowsSystem32comsvcs.dll" # ヘルパー:マルウェアのバイナリを模倣するダミーファイルを作成します New-Item -Path $msiPath -ItemType File -Force | Out-Null New-Item -Path $dumpTool -ItemType File -Force | Out-Null New-Item -Path $payload -ItemType File -Force | Out-Null Write-Host "[*] 悪意のあるMSIをインストールしています(シミュレーション)..." Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiPath`" /quiet" -Wait Write-Host "[*] 資格情報ダンプツールを実行中..." Start-Process -FilePath $dumpTool -ArgumentList "/dump" -Wait Write-Host "[*] rundll32を介してDLLサイドローディングを実行しています..." rundll32.exe "`"$dllPath`"",LaunchApplication "`"$payload`"" Write-Host "[+] シミュレーション完了。SIEMを通じて検出を確認してください。" -
クリーンアップコマンド: ダミーアーティファクトを削除し、残留プロセスを停止します。
# クリーンアップスクリプト $paths = @("$env:TEMPform_w9.msi","$env:TEMPcrypteds.exe","$env:TEMPsent.exe") foreach ($p in $paths) { if (Test-Path $p) { Remove-Item -Path $p -Force } } # テストで開始されたrundll32プロセスを終了します。 Get-Process -Name rundll32 -ErrorAction SilentlyContinue | Where-Object {$_.Path -eq "$env:SystemRootSystem32rundll32.exe"} | Stop-Process -Force