SOC Prime Bias: Critique

24 Nov 2025 12:15

Perspectives sur NotDoor : Plongée Profonde dans les Macros Outlook et Au-delà

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Perspectives sur NotDoor : Plongée Profonde dans les Macros Outlook et Au-delà
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Cet article examine le cheval de Troie NotDoor, qui abuse des macros VBA malveillantes d’Outlook pour maintenir la persistance et fournir une commande et un contrôle. La charge utile est livrée via le chargement de bibliothèque dynamique (DLL) détourné d’un SSPICLI.dll qui imite un OneDrive.exe légitime. Des scripts PowerShell obscurcis gèrent l’exfiltration de données via des services de webhook et modifient les paramètres du registre d’Outlook pour forcer l’exécution des macros. Les conseils de détection se concentrent sur le suivi de la création de fichiers suspects, l’activité de chargement de DLL, les modifications du registre et les commandes PowerShell encodées.

Analyse du Cheval de Troie NotDoor

Une analyse plus approfondie révèle que la DLL malveillante crée un répertoire temporaire, écrit une charge utile dans le fichier VBAProject.OTM d’Outlook et configure les clés de registre pour permettre toutes les macros. Elle exécute ensuite des instructions PowerShell encodées en base64 qui émettent des rappels DNS et HTTP à webhook.site and dnshook.site. Les modifications du registre incluent l’activation de LoadMacroProviderOnBoot, l’abaissement du niveau de sécurité d’Outlook et la modification de PONT_STRING pour supprimer les invites de sécurité.

Atténuation

Les principales atténuations incluent la limitation des opportunités de chargement de DLL détournées, l’imposition de règles de signature de code pour les exécutables, la surveillance de la création de VBAProject.OTM par des processus non-Outlook, et le blocage des connexions sortantes vers les domaines de webhook identifiés. De plus, les équipes peuvent appliquer des principes de privilège le plus bas aux modifications du registre et désactiver le chargement automatique des macros lorsque cela est faisable.

Réponse

Lorsqu’une activité NotDoor est détectée, isolez le point de terminaison compromis, acquérez la DLL malveillante et les charges utiles associées, et effectuez un examen judiciaire des modifications du registre et des traces réseau. Bloquez les domaines et IP associés, lancez une recherche plus large pour des comportements de chargement de DLL similaires, réinitialisez les politiques de macros d’Outlook, et vérifiez que tous les paramètres de sécurité des utilisateurs sont revenus à un état renforcé.

graph TB %% Class definitions classDef technique fill:#ffcc99 classDef tool fill:#cccccc classDef file fill:#e6e6fa classDef action fill:#99ccff classDef operator fill:#ff9900 %% Nodes – Actions / Techniques initial_access[« <b>Action</b> – Accès initial via un point d’appui existant »] class initial_access action dll_sideload[« <b>Technique</b> – <b>T1574.001 Détournement du flux d’exécution : DLL</b><br/>OneDrive.exe charge la DLL malveillante SSPICLI.dll via le détournement de DLL »] class dll_sideload technique powershell[« <b>Technique</b> – <b>T1059.001 Interpréteur de commandes et de scripts : PowerShell</b><br/>Des commandes PowerShell encodées en Base64 sont exécutées pour des vérifications réseau et la copie de fichiers »] class powershell technique office_macro[« <b>Technique</b> – <b>T1137.001 Démarrage d’application Office : macros de modèles Office</b><br/>Une macro VBA est placée dans %APPDATA%\\Microsoft\\Outlook\\VbaProject.OTM »] class office_macro technique vba_stomping[« <b>Technique</b> – <b>T1564.007 Masquage d’artefacts : VBA Stomping</b><br/>La macro surveille les e‑mails entrants (Application_NewMailEx) pour des déclencheurs C2 et exfiltre des données »] class vba_stomping technique vb_interpreter[« <b>Technique</b> – <b>T1059.005 Interpréteur de commandes et de scripts : Visual Basic</b><br/>Le code VBA exécute des commandes et communique via Outlook »] class vb_interpreter technique %% Nodes – Files / Objects file_oneDrive[« <b>Fichier</b> – OneDrive.exe »] class file_oneDrive file file_sspicli[« <b>Fichier</b> – SSPICLI.dll »] class file_sspicli file file_vba[« <b>Fichier</b> – VbaProject.OTM »] class file_vba file email_monitor[« <b>Objet</b> – Application Outlook<br/>Surveille les e‑mails entrants (Application_NewMailEx) »] class email_monitor action outlook_comm[« <b>Objet</b> – Outlook<br/>Communique avec le C2 et exfiltre des données »] class outlook_comm action %% Connections – Flow of the attack initial_access u002du002du003e|mène à| dll_sideload dll_sideload u002du002du003e|utilise| file_oneDrive dll_sideload u002du002du003e|charge| file_sspicli dll_sideload u002du002du003e|déclenche| powershell powershell u002du002du003e|mène à| office_macro office_macro u002du002du003e|place| file_vba office_macro u002du002du003e|active| vba_stomping office_macro u002du002du003e|active| vb_interpreter vba_stomping u002du002du003e|surveille| email_monitor vb_interpreter u002du002du003e|communique_via| outlook_comm

Flux d’Attaque

Exécution de Simulation

Préalable : La Vérification de Pré-Vol de la Télémétrie et de la Base de Référence doit avoir été réussie.

Rationalité : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.

  • Narration & Commandes de l’Attaque :
    Un attaquant qui a obtenu l’exécution au niveau utilisateur sur la machine victime déploie le malware NotDoor. Le but du malware est de s’assurer qu’Outlook charge automatiquement une macro malveillante au démarrage du système, désactive les avertissements de sécurité et supprime les fenêtres contextuelles de dialogue. Pour y parvenir, l’attaquant écrit trois valeurs spécifiques de registre sous la ruche Outlook :

    1. LoadMacroProviderOnBoot défini sur 1 sous HKCUSoftwareMicrosoftOutlook – force Outlook à charger le fournisseur de macros à chaque démarrage.
    2. Niveau défini sur 1 sous HKCUSoftwareMicrosoftOutlookSecurity – abaisse le niveau de sécurité des macros.
    3. PONT_STRING défini sur un CLSID malveillant sous HKCUSoftwareMicrosoftOutlookOptionsGeneral – indique à Outlook la DLL de macro malveillante.

    Ces écritures génèrent des événements de changement de registre qui satisfont sélection1 and (sélection2 or sélection3) dans la règle Sigma, provoquant le déclenchement de l’alerte.

  • Script de Test de Régression :

    # Simulation de modification de registre NotDoor – PowerShell
    function Set-NotDoorOutlookRegistry {
        # 1. Activer le fournisseur de macros au démarrage
        New-ItemProperty -Path "HKCU:SoftwareMicrosoftOutlook" `
            -Name "LoadMacroProviderOnBoot" -Value 1 -PropertyType DWORD -Force
    
        # 2. Abaisser le niveau d'avertissement de sécurité
        New-ItemProperty -Path "HKCU:SoftwareMicrosoftOutlookSecurity" `
            -Name "Level" -Value 1 -PropertyType DWORD -Force
    
        # 3. Pointer vers la macro malveillante (CLSID simulé)
        $maliciousClsid = "{12345678-1234-1234-1234-123456789ABC}"
        New-ItemProperty -Path "HKCU:SoftwareMicrosoftOutlookOptionsGeneral" `
            -Name "PONT_STRING" -Value $maliciousClsid -PropertyType String -Force
    }
    
    # Exécuter l'attaque simulée
    Set-NotDoorOutlookRegistry
  • Commandes de Nettoyage :

    # Supprimer les modifications de registre NotDoor simulées
    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