La fonctionnalité légitime subDoc de Microsoft Office peut être utilisée pour rendre des documents Word malveillants

Une fonctionnalité Word, "subDoc", permet à l'auteur de charger des sous-documents à partir d'un document maître. Elle est prise en charge dans toutes les versions récentes, y compris Word 2007, 2010, 2013 et 2016.

La fonctionnalité de sous-document est conçue pour charger un document, qui est son propre fichier, dans le corps d'un autre document. Il est possible de charger des sous-documents distants (hébergés sur Internet) dans le document hôte.

Les chercheurs de Rhino Security Lab ont démontré qu'il est possible d'utiliser cette fonctionnalité pour créer un document Word malveillant qui ouvre une fenêtre d'authentification à l'image de celles de Windows dès lors que les victimes ouvrent ledit document Word. Ainsi il est possible pour un attaquant de récupérer des identifiants à distance.

Par ailleurs, les mêmes chercheurs indiquent que certaines entreprises ne filtrent pas les requêtes SMB1, ce qui induit qu'il est possible de récupérer les valeurs de hachage de session de NTLMv22. De ce constat, ils ont cherché a aller plus loin dans l'exploitation de subDoc.

Ils ont créé un document qui référence une ressource externe SubDoc pointant vers un UNC (Universal Naming Convention) (par exemple //// attackerip / subdoc / path),  qui est le moyen conventionnel utilisé pour se connecter aux serveurs et les postes de travail sans avoir besoin de spécifier de lecteur. Dans leur preuve de concept, UNC pointe vers une de leurs machine virtuelles, qui, au moyen de Responder3, est capable de traiter les requêtes SMB entrantes et d'intercepter les valeurs de hachage des sessions NTLMv2 respectives.

Le processus d'attaque consiste alors à envoyer un document corrompu à plusieurs cibles pendant que le serveur Responder est en cours d'exécution. Une fois que les cibles ouvrent le document, il est possible d’intercepter les valeurs de hachages de leur session NTLMv2 respectives, les casser en utilisant hashcat et utiliser les informations d'identification nouvellement trouvées pour l'intrusion dans le réseau cible. C'est un vecteur d'attaque idéal lorsqu'il est combiné avec une situation post-intrusion.

Pour que la charge utile soit exécutée, la victime n'a qu'à cliquer sur "Activer l'édition" (pour quitter le mode de compatibilité), ce qui fait que cette attaque est très efficace.

Il n'y a pas de support de SMB sur les machines Mac et Linux, donc l'attaque n'est pas possible sur ces systèmes d'exploitation. Il est possible de bloquer cette attaque sur les systèmes Windows en durcissant la configuration du pare-feu.

Un outil exploitant cette vulnérabilité a été développé. SubDoc Injector est un outil qui génère un sous-document Word pour une URL définie par l'utilisateur et l'intègre dans un document Word parent spécifié par l'utilisateur. Cette URL doit pointer vers l'URL d'un serveur Responder.
 
1 SMB : Server Message Block est un protocole permettant le partage de ressources (fichiers et imprimantes) sur des réseaux locaux avec des PC sous Windows.
2 NTLMv2 : NT Lan Manager est un protocole d'identification largement utilisé dans les systèmes Microsoft comme mécanisme d'authentification unique.
3 Responder : outil qui permet d'écouter les demandes SMB entrantes et de collecter les hachages NTLMv2 respectifs