NotDoor インサイト: Outlook マクロとその先への深堀り
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
この記事では、持続性を維持し、コマンド&コントロールを提供するために悪意のあるOutlook VBAマクロを利用するNotDoorバックドアについて検討しています。ペイロードは、改ざんされたSSPICLI.dllのDLLサイドローディングを通じて配信され、 SSPICLI.dll 正規のOneDrive.exeバイナリを偽装しています。難読化されたPowerShellスクリプトが、Webhookサービスを介してデータの流出を処理し、Outlookのレジストリ設定を変更してマクロの実行を強制します。検出ガイダンスは、疑わしいファイル作成、DLLのロード活動、レジストリの変更、エンコードされたPowerShellコマンドの追跡に焦点を当てています。 OneDrive.exe binary. Obfuscated PowerShell scripts handle data exfiltration via webhook services and tweak Outlook registry settings to force macro execution. Detection guidance centers on tracking suspicious file creation, DLL loading activity, registry changes, and encoded PowerShell commands.
NotDoorバックドアの分析
さらに分析を進めると、不正なDLLが一時ディレクトリを作成し、Outlook VBAProject.OTMファイルにペイロードを書き込み、すべてのマクロを許可するようにレジストリキーを設定することがわかります。その後、DNSおよびHTTPコールバックをwebhook.site、dnshook.siteに発行するBase64形式のエンコードされたPowerShell命令を実行します。レジストリの変更には、LoadMacroProviderOnBootの有効化、Outlookセキュリティレベルの低下、PONT_STRINGの変更によるセキュリティプロンプトの抑制が含まれます。 VBAProject.OTM ファイル、すべてのマクロを許可するようにレジストリキーを設定します。その後、Base64でエンコードされたPowerShellコマンドを実行し、DNSおよびHTTPコールバックをwebhook.site、dnshook.siteに送信します。レジストリの変更には、LoadMacroProviderOnBootの有効化、Outlookセキュリティレベルの低下、およびPONT_STRINGでのセキュリティプロンプトの抑制が含まれます。 webhook.site and dnshook.siteレジストリの変更には、LoadMacroProviderOnBootの有効化、Outlookセキュリティレベルの低下、 LoadMacroProviderOnBootの有効化、Outlookセキュリティレベルの低下、およびPONT_STRINGの変更が含まれます。 PONT_STRING でセキュリティプロンプトを抑制します。
緩和策
重要な緩和策には、DLLサイドローディングの機会を制限すること、実行ファイルに対してコード署名要件を強制すること、非OutlookプロセスによるVBAProject.OTMの作成を監視すること、特定されたWebhookドメインへのアウトバウンド接続をブロックすることが含まれます。さらに、チームはレジストリ変更に対して最小特権の原則を適用し、可能な限り自動マクロ読み込みを無効にすることができます。 VBAProject.OTM VBAProject.OTM
対応
NotDoorの活動が検出された場合、妥協されたエンドポイントを隔離し、悪意のあるDLLと関連するペイロードを取得し、レジストリエディットとネットワークトレースのフォレンジックレビューを実施します。関連ドメインとIPをブロックし、類似のDLLサイドローディングの行動を広範囲で探し、Outlookのマクロポリシーをリセットし、すべてのユーザーのセキュリティ設定が強化された状態に戻されていることを確認します。
攻撃フロー
検出
NotDoorマルウェアによる悪意のあるレジストリ変更の検出 [Windowsレジストリイベント]
表示
エンコードされたPowershellコマンドの実行 [Windows Powershell]
表示
検出用IOCs (HashSha256): NotDoor Insights: Outlookマクロとその他についての詳細な調査
表示
ファイルイベントを通じたメールベースの永続性に関するOutlook
表示
Outlookの悪用の可能性/セキュリティのダウングレード(レジストリイベントを通じて)
表示
シミュレーション実行
前提条件: テレメトリ&ベースラインの事前チェックが完了していること。
理由: このセクションは、検出ルールをトリガーするために設計された敵対者の手法(TTP)の正確な実行を詳細に説明します。コマンドと説明は、識別されたTTPsを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。
-
攻撃の概要&コマンド:
ユーザーレベルの実行権を得た攻撃者が、被害者のマシンにNotDoorマルウェアを配備します。このマルウェアの目的は、Outlookがシステム起動時に自動的に悪意のあるマクロを読み込み、セキュリティ警告を無効にしてダイアログポップアップを抑制することです。これを達成するために、攻撃者はOutlookハイブの下に3つの特定のレジストリ値を書き込みます。LoadMacroProviderOnBoot「HKCUSoftwareMicrosoftOutlook」1に設定され、HKCUSoftwareMicrosoftOutlookにあります – Outlookが起動時にマクロプロバイダを毎回ロードするよう強制します。レベル「HKCUSoftwareMicrosoftOutlook」1に設定され、「HKCUSoftwareMicrosoftOutlookSecurity」にあります – マクロセキュリティレベルを下げます。PONT_STRING「HKCUSoftwareMicrosoftOutlookOptionsGeneral」にある悪意のあるCLSIDに設定され– Outlookを悪意のあるマクロDLLに向けます。
これらの書き込みは、Sigmaルールのselection1, selection2, selection3のイベントを生成し、アラートが発火します。
selection1and (selection2orselection3) in the Sigma rule, causing the alert to fire. -
回帰テストスクリプト:
# NotDoorレジストリ変更のシミュレーション – PowerShell function Set-NotDoorOutlookRegistry { # 1. 起動時にマクロプロバイダを有効化 New-ItemProperty -Path "HKCU:SoftwareMicrosoftOutlook" ` -Name "LoadMacroProviderOnBoot" -Value 1 -PropertyType DWORD -Force # 2. セキュリティ警告レベルを下げます New-ItemProperty -Path "HKCU:SoftwareMicrosoftOutlookSecurity" ` -Name "Level" -Value 1 -PropertyType DWORD -Force # 3. 悪意のあるマクロを指す(シミュレーションされたCLSID) $maliciousClsid = "{12345678-1234-1234-1234-123456789ABC}" New-ItemProperty -Path "HKCU:SoftwareMicrosoftOutlookOptionsGeneral" ` -Name "PONT_STRING" -Value $maliciousClsid -PropertyType String -Force } # シミュレートされた攻撃を実行 Set-NotDoorOutlookRegistry -
クリーンアップコマンド:
# シミュレートされたNotDoorレジストリ変更の削除 Remove-ItemProperty -Path "HKCU:SoftwareMicrosoftOutlook" ` -Name "LoadMacroProviderOnBoot" -ErrorAction SilentlyContinue Remove-ItemProperty -Path "HKCU:SoftwareMicrosoftOutlookSecurity" ` -Name "Level" -ErrorAction SilentlyContinue Remove-ItemProperty -Path "HKCU:SoftwareMicrosoftOutlookOptionsGeneral" ` -Name "PONT_STRING" -ErrorAction SilentlyContinue