Perspectives sur NotDoor : Plongée Profonde dans les Macros Outlook et Au-delà
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
Détections
Détection des Modifications Malveillantes du Registre par le Malware NotDoor [Événement du Registre Windows]
Voir
Exécution de Commandes PowerShell Encodées [Windows PowerShell]
Voir
IOCs (HashSha256) pour détecter : Insights NotDoor : Un Regard Approfondi sur les Macros Outlook et Plus
Voir
Persistance basée sur les mails Outlook (via file_event)
Voir
Abus Possibles d’Outlook / Réduction de la Sécurité (via registry_event)
Voir
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 :-
LoadMacroProviderOnBootdéfini sur1sousHKCUSoftwareMicrosoftOutlook– force Outlook à charger le fournisseur de macros à chaque démarrage. -
Niveaudéfini sur1sousHKCUSoftwareMicrosoftOutlookSecurity– abaisse le niveau de sécurité des macros. -
PONT_STRINGdéfini sur un CLSID malveillant sousHKCUSoftwareMicrosoftOutlookOptionsGeneral– indique à Outlook la DLL de macro malveillante.
Ces écritures génèrent des événements de changement de registre qui satisfont
sélection1and (sélection2orsé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