Des classiques intemporels ou un aperçu des nouveaux vecteurs d'attaque via Microsoft Office

image
Les pirates exploitent la crédulité humaine et la négligence humaine depuis des décennies. La plupart des utilisateurs ouvrent sans hésitation une pièce jointe inoffensive, à première vue, et, sans le savoir, lancent des logiciels malveillants. Pour vous protéger de telles attaques, vous devez connaître l'ennemi en personne. Aujourd'hui, nous allons essayer de comprendre comment les trois nouvelles techniques d'exécution de code dans les applications bureautiques découvertes cette année sont organisées et quelles méthodes de protection contre elles existent.


Macros XLM


Les experts d'Outflank ont introduit une nouvelle façon d'exécuter du code dans MS Office Excel via des macros dites XLM (à ne pas confondre avec XML). Bien que la technologie de macro XLM soit utilisée depuis plus de 26 ans (apparue pour la première fois dans Excel 4.0 pour Windows 3.0 / 3.1), elle est toujours prise en charge par toutes les versions de Microsoft Office Excel jusqu'à Office 2016.


Pour créer une macro XLM dans Excel, vous devez suivre ces étapes:
Dans le menu contextuel de la feuille Excel, sélectionnez «Insérer».


image


Ensuite, sélectionnez "MS Excel 4.0".


image


En conséquence, la feuille «Macro1» apparaîtra, dans n'importe quelle cellule dont, en utilisant la fonction «EXEC», le processus souhaité peut être démarré. Pour exécuter automatiquement une macro, la première cellule doit être renommée en «Auto_open» (similaire à la procédure AutoOpen () dans les macros VBA).


Après avoir ouvert un document enregistré, une notification standard apparaît avec une demande d'exécution d'une macro.


image


La feuille macro peut être masquée en sélectionnant «Masquer» dans le menu contextuel.


Outre la possibilité de démarrer des processus, les macros XLM peuvent accéder à l'API Win32 à l'aide des fonctions REGISTER et CALL. Voici le code PoC pour une macro qui implémente une technique d'injection shellcode.


image


Dans le même temps, la fonction de codage CHAR est utilisée pour stocker les caractères du code shell à l'intérieur de la macro-cellule. Pour supprimer des octets nuls, vous pouvez utiliser l'utilitaire msfvenom, qui fait partie de Metasploit Framework.


Par la méthode de stockage à l'intérieur d'un fichier Excel, les macros XLM sont significativement différentes des macros VBA classiques qui sont apparues un an plus tard dans Excel 5.0. Dans le nouveau format Excel .xlsm, qui est une archive ZIP, les macros XLM sont stockées dans un fichier XML dans le répertoire des macrosheets. Au format .xsl (Excel 97-2003), la macro est stockée dans un flux OLE.


De plus, on voit que la macro VBA est stockée dans un conteneur séparé (sur la figure de gauche), tandis que les macros XLM sont situées dans le même conteneur de données.


image


Ces différences dans les méthodes de stockage des macros affectent de manière significative la qualité de leur détection par les antivirus, en particulier, la technologie AMSI (Antimalware Scanning Interface) ne prend pas en charge XLM, malgré la prise en charge revendiquée d'Office 365.


Par exemple, le code Metasploit powershell web_delivery a été implémenté dans Excel à l'aide de macros VBA et XLM (dans les figures ci-dessous).


image


image


Sur Virustotal, un document Excel avec une macro VBA a déclenché 21 des 59 antivirus.


image


Dans le même temps, un document similaire avec une macro XLM n'a suscité aucun soupçon d'antivirus.


image


Démonstration
Exécution de code via des macros XLM dans Office



Vidéo Microsoft Office Online


L'équipe de recherche Cumulate a découvert une nouvelle façon d'exécuter du code dans Word en insérant de la vidéo à l'aide de la vidéo en ligne. À l'aide de cet élément, vous pouvez ajouter une vidéo YouTube au document, puis remplacer le lien vers celui-ci par du code JavaScript qui sera exécuté dans Internet Explorer lorsque vous ouvrirez le document et cliquez sur la vidéo. Les vecteurs suivants semblent les plus adaptés à l'ingénierie sociale:


  • Ajout d'un code d'exploitation pour IE / Flash dans un iframe avec une vidéo YouTube.
  • Ajout de code JavaScript dans l'iframe avec la vidéo YouTube en utilisant la méthode msSaveOrOpenBlob, par laquelle il sera suggéré de télécharger et d'exécuter le fichier malveillant. Le corps du fichier est contenu dans javascript base64.

Pour créer un fichier avec l'extension docx. avec la charge décrite, vous devez effectuer les étapes suivantes:


1.Ajoutez une vidéo YouTube via «Insérer - Vidéo en ligne».


image


2. Enregistrez le fichier docx créé.


3. Décompressez le docx enregistré. Format docx est une archive zip du contenu suivant:
image


4.Dans le répertoire Word du fichier document.xml de l'élément embeddedHtml, ajoutez votre code JavaScript en l'insérant dans le corps iframe ou en remplaçant le lien correspondant (src) dans l'iframe.


5. Créez une archive zip (avec l'extension docx) avec les modifications apportées.


De plus, lors de l'ouverture du fichier docx généré, l'utilisateur doit cliquer sur le lien vidéo et lancer le fichier téléchargé. Vous pouvez également afficher une capture d'écran avec une proposition de mise à jour de Flash Player, invitant l'utilisateur à télécharger et à exécuter le fichier. Aucun avertissement de sécurité ne s'affiche.


image


Comme dans le cas des macros XLM, cette technique d'exécution de code n'est détectée par aucun antivirus sur Virustotal et semble très attrayante pour les auteurs de virus, et est également courante dans l'ingénierie sociale dans le cadre des tests de pénétration.


Démonstration
Exécution de code via la vidéo en ligne dans Office



Vba piétinant


Lors de la conférence de Derbycon 2018, une technique de lancement des macros VBA dans les documents Office a été introduite , appelée VBA Stomping. L'essence de la technique est de supprimer / modifier (en option pour remplir avec des zéros) le code source VBA dans le corps du document de bureau, en laissant le code macro compilé appelé code p intact. Le code VBA, ainsi que sa version compilée, se trouvent dans le fichier vbaProject.bin situé dans l'archive zip (fichier avec l'extension .docm, .xslm).


image


Ainsi, la technique se résume à supprimer / remplir avec des zéros une partie du fichier vbaProject.bin.


image


Par conséquent, le document ne provoque pas de suspicion parmi les antivirus qui analysent une macro uniquement par son code source. Par exemple, grâce à cette technique, les chercheurs ont pu réduire le nombre de réponses antivirus au cheval de Troie bancaire Emotet, distribuées via les fichiers Office, de 36/59 à 7/58 sur Virustotal.


image


image


De plus, cette technique rend difficile l'analyse du fichier, car aucun outil, sans recourir à la décompilation, ne pourra extraire le code source VBA, qui ne sera également pas affiché dans l'éditeur de macros Office jusqu'à ce qu'il soit résolu.


La protection


Les recommandations pour contrer les techniques décrites sont traditionnelles pour la protection contre les méthodes d'ingénierie sociale:


  1. Sensibilisation des employés aux problèmes de sécurité de l'information.
  2. Interdisez l'utilisation de macros dans Microsoft Office.
  3. Une approche intégrée pour assurer la sécurité de l'information, y compris l'utilisation de solutions Endpoint, ainsi que des outils de sécurité de périmètre (pare-feu nouvelle génération, solutions UTM, passerelles de messagerie).

Source: https://habr.com/ru/post/fr433142/


All Articles