WindowsAudit バックドア: Discord に隠れる .NET RAT の内側
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Profero IRT は、.NET 8 バックドア名を識別しました WindowsAudit.exe これは主に Discord をコマンド&コントロールチャネルとして使用し、MQTT と Telegram を代替通信経路としてサポートしています。このマルウェアは Windows サービスとして動作し、自身のバックアップコピーを作成し、複数の永続化メカニズムを確立し、認証情報の窃盗、Active Directory の悪用、回避を行います。また、WireGuard トンネルを設定して、環境内での覆面横方向移動をサポートします。全体的な攻撃手法は、攻撃者が後のランサムウェア段階のために影響を受けたネットワークを準備している可能性を示唆しています。
調査
調査員は WindowsAudit バイナリを入手し、それがモジュール式の C# リモートアクセス型トロイの木馬であることを確認し、埋め込まれた DLL コンポーネントをリバースエンジニアリングしました。解析により、マルウェアの持続性技術、通信アーキテクチャ、認証情報ダンプ能力、および AMSI や ETW パッチングを含む回避手法が詳述されました。 WinSATSvcという関連するドロッパーも調査し、マルウェアが削除された場合に修復するように設計されているようでした。この研究から、研究者はハンティングと検出をサポートする一連の侵害指標を抽出しました。
緩和策
推奨される検出には、サービスの作成の監視や、関連する Run キーエントリ、 WindowsAudit グローバルWindowsAuditSingleInstance GlobalWindowsAuditSingleInstance ミューテックス、および不審な Add-MpPreference 実行の監視が含まれます。ディフェンダーはまた、Discord や HiveMQ インフラへの TLS トラフィックをブロックするか警告を行う必要があります。 bcdedit セーフブート変更や不審なスケジュールされたタスクの作成の監視も行う必要があります。マルウェアに関連付けられた WireGuard トンネル設定は削除されるべきであり、バックドアによって確立されたすべての持続機構は無効化されるべきです。
対応策
組織は、公開された侵害指標を直ちに検索し、影響を受けたシステムを隔離し、サービスを停止するべきです。法医学的レビューのためにメモリとディスクのイメージを収集し、悪意のあるバイナリは削除され、妥協した認証情報はリセットされる必要があります。セキュリティチームはまた、許可されていない EDR 除外が削除されたことを確認し、セーフモード設定の変更が元に戻されたことを確認し、マルウェアコンポーネントの再インストールまたは再作成を引き続き監視するべきです。 WindowsAudit service. Memory and disk images should be collected for forensic review, malicious binaries should be removed, and any compromised credentials should be reset. Security teams should also verify that unauthorized EDR exclusions have been removed, confirm that Safe Mode configuration changes have been reversed, and continue monitoring for reinstallation or recreation of the malware components.
"graph TB %% クラス定義 classDef technique fill:#ffcc99 classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#99ff99 classDef operator fill:#ff9900 %% ノード u2013 技術とツール exploit_remote_services["<b>技術</b> – <b>T1210 リモートサービスの悪用</b><br/>悪意のあるバイナリを SMB 経由でリモートホストにコピーし、sc.exe で起動"] class exploit_remote_services technique lateral_smb["<b>技術</b> – <b>T1080 共有コンテンツを介した横移動</b><br/>SMB シェアを使用して拡散およびリモートコマンドの実行"] class lateral_smb technique wmi_event_sub["<b>技術</b> – <b>T1546.003 Windows 管理インスツルメンテーションイベントサブスクリプション</b><br/>持続性のためにペイロードをトリガーする WMI イベントを登録"] class wmi_event_sub technique scheduled_task["<b>技術</b> – <b>T1053 スケジュールタスク/ジョブ</b><br/>再起動後に EDR を削除し、マルウェアを再武装するためにセーフモードで実行されるタスクを作成"] class scheduled_task technique defender_exclusion["<b>技術</b> – <b>T1564.012 隠しアーティファクト: ファイルパス除外</b><br/>インストールパスと実行可能ファイルの Windows Defender 除外を追加"] class defender_exclusion technique safe_mode_boot["<b>技術</b> – <b>T1562.009 セーフモードブート</b><br/>コンポーネントを再インストールするためにセーフモードで起動"] class safe_mode_boot technique vpn_proxy["<b>技術</b> – <b>T1090 プロキシ</b> と <b>T1572 プロトコルトンネル</b><br/>WireGuard VPN と SOCKS5 プロキシを展開してトラフィックをトンネル"] class vpn_proxy technique c2_discord["<b>技術</b> – <b>T1102.002 ウェブサービス: Discord</b><br/>Discord を主要コマンド&コントロールチャネルとして使用"] class c2_discord technique c2_mqtt["<b>技術</b> – <b>T1102 ウェブサービス (MQTT)</b><br/>MQTT ブローカーを介した二次 C2"] class c2_mqtt technique c2_fallback["<b>技術</b> – <b>T1008 フォールバックチャネル</b><br/>Discord が使用できないときに MQTT や Telegram に切り替え"] class c2_fallback technique rat["<b>マルウェア</b> – リモートアクセスツール (RAT)"] class rat malware os_cred_dump["<b>技術</b> – <b>T1003 OS 認証情報ダンプ</b><br/>MiniDumpWriteDump を使用して LSASS メモリをダンプ"] class os_cred_dump technique shadow_copy["<b>技術</b> – <b>T1003.007 ボリュームシャドウコピー</b><br/>SAM と SYSTEM ハイブをシャドウコピーで抽出"] class shadow_copy technique browser_passwords["<b>技術</b> – <b>T1555.003 ウェブブラウザからの認証情報</b><br/>DPAPI を使用して保存されたパスワードを復号化"] class browser_passwords technique cred_manager["<b>技術</b> – <b>T1555.004 Windows 認証情報マネージャからの認証情報</b><br/>保存されている認証情報を抽出"] class cred_manager technique golden_ticket["<b>技術</b> – <b>T1558.001 ゴールデンチケット</b><br/>ドメイン管理者用の偽造された Kerberos TGT を作成"] class golden_ticket technique silver_ticket["<b>技術</b> – <b>T1558.002 シルバーチケット</b><br/>ターゲットサービス用のサービスチケットを偽造"] class silver_ticket technique pass_hash["<b>技術</b> – <b>T1550.002 ハッシュのパス</b><br/>NTLM ハッシュを再利用して認証"] class pass_hash technique pass_ticket["<b>技術</b> – <b>T1550.003 チケットのパス</b><br/>横方向移動のための Kerberos チケットを再利用"] class pass_ticket technique dc_sync["<b>技術</b> – <b>T1003.006 DCSync</b><br/>ドメインコントローラーにパスワードデータをレプリケートさせる"] class dc_sync technique dc_auth["<b>技術</b> – <b>T1556.001 ドメインコントローラー認証</b><br/>DC 上の認証プロセスを変更"] class dc_auth technique process_hollowing["<b>技術</b> – <b>T1055.012 プロセスホロウィング</b><br/>昇格されたプロセスにコードを注入"] class process_hollowing technique apc_injection["<b>技術</b> – <b>T1055.004 非同期プロシージャ呼び出し</b><br/>APC を介してコードを注入"] class apc_injection technique clear_event_logs["<b>技術</b> – <b>T1070.001 Windows イベントログ消去</b><br/>活動の証拠を削除"] class clear_event_logs technique screen_capture["<b>技術</b> – <b>T1113 スクリーンキャプチャ</b><br/>スクリーンショットをキャプチャ"] class screen_capture technique video_capture["<b>技術</b> – <b>T1125 ビデオキャプチャ</b><br/>デスクトップのビデオを記録"] class video_capture technique audio_capture["<b>技術</b> – <b>T1123 オーディオキャプチャ</b><br/>マイクのオーディオを記録"] class audio_capture technique keylogging["<b>技術</b> – <b>T1056.001 キーロギング</b><br/>キーストロークをキャプチャ"] class keylogging technique exfil_discord["<b>技術</b> – <b>T1041 コマンド&コントロールチャネル経由の抽出</b><br/>Discord 添付ファイルとしてデータをアップロード"] class exfil_discord technique exfil_mqtt["<b>技術</b> – <b>T1041 コマンド&コントロールチャネル経由の抽出</b><br/>MQTT メッセージを介してデータを送信"] class exfil_mqtt technique %% 論理演算子(オプション) op_and1(("AND")) class op_and1 operator %% 接続 u2013 攻撃フロー exploit_remote_services –>|SMB 経由でバイナリをコピー| lateral_smb lateral_smb –>|sc.exe を使用してリモートコマンドを実行| wmi_event_sub wmi_event_sub –>|持続性を提供| scheduled_task scheduled_task –>|セーフモードで実行| safe_mode_boot safe_mode_boot –>|マルウェアを再武装| vpn_proxy vpn_proxy –>|トラフィックをトンネル| c2_discord c2_discord –>|主要C2チャネル| rat rat –>|認証情報を集める| os_cred_dump os_cred_dump –>|LSASSダンプを取得| shadow_copy os_cred_dump –>|供給| browser_passwords os_cred_dump –>|供給| cred_manager os_cred_dump –>|許可| golden_ticket os_cred_dump –>|許可| silver_ticket golden_ticket –>|ドメイン管理者アクセスを提供| pass_hash silver_ticket –>|サービスアクセスを提供| pass_ticket rat –>|使用| pass_hash rat –>|使用| pass_ticket rat –>|使用| dc_sync rat –>|使用| dc_auth rat –>|を介して高める| process_hollowing rat –>|を介して高める| apc_injection rat –>|ログをクリア| clear_event_logs rat –>|キャプチャ| screen_capture rat –>|キャプチャ| video_capture rat –>|キャプチャ| audio_capture rat –>|キャプチャ| keylogging screen_capture –>|を介して抽出| exfil_discord video_capture –>|を介して抽出| exfil_discord audio_capture –>|を介して抽出| exfil_discord keylogging –>|を介して抽出| exfil_discord exfil_discord –>|フォールバックとして| exfil_mqtt c2_discord –>|フォールバックとして| c2_fallback c2_fallback –>|使用| c2_mqtt c2_mqtt –>|抽出されたデータを受信| exfil_mqtt "
攻撃フロー
検出
可能性のある持続ポイント [ASEPs – Software/NTUSER ハイブ] (via registry_event)
表示
可能性のある IP ルックアップドメイン通信が試行されました (via dns)
表示
不審な Bcdedit の実行 (via cmdline)
表示
Windows Defender の設定の不審な変更 (via powershell)
表示
C2 チャネルとして Discord の不正使用の可能性 (via dns_query)
表示
WindowsAudit RAT シングルインスタンスミューテックスの検出 [Windows Sysmon]
表示
WindowsAudit バックドア コマンド&コントロール通信 [Windows ネットワーク接続]
表示
WindowsAudit バックドアおよび関連する活動の検出 [Windows プロセス作成]
表示
Simulation Execution
Prerequisite: The Telemetry & Baseline Pre‑flight Check must have passed.
Rationale: This section details the precise execution of the adversary technique (TTP) designed to trigger the detection rule. The commands and narrative MUST directly reflect the TTPs identified and aim to generate the exact telemetry expected by the detection logic. Abstract or unrelated examples will lead to misdiagnosis.
-
Attack Narrative & Commands:
An attacker has deployed the WindowsAudit backdoor on the victim host. To retrieve commands, the backdoor performs DNS lookups to the Discord CDN (gateway.discord.gg) and to a malicious MQTT broker hosted on*.hivemq.cloud. These lookups are issued via native Windows APIs (no external tools) to stay low‑profile. The DNS queries are the sole observable artifact used by the Sigma rule for detection. -
Regression Test Script:
# WindowsAudit C2 DNS beacon simulation # Generates the exact DNS queries the Sigma rule watches for. $c2Endpoints = @( "gateway.discord.gg", "malicious1.hivemq.cloud", "malicious2.hivemq.cloud" ) foreach ($fqdn in $c2Endpoints) { try { # Use the native Windows DNS resolver Resolve-DnsName -Name $fqdn -Type A -ErrorAction Stop | Out-Null Write-Host "[+] Queried $fqdn" } catch { Write-Warning "Failed to resolve $fqdn (simulated C2)" } Start-Sleep -Seconds 5 # mimic realistic beacon interval } -
Cleanup Commands:
# Flush the DNS cache to remove traces of the simulated queries ipconfig /flushdns Write-Host "[*] DNS cache cleared."