Ejecución de comandos en Ms Word sin macros (DDE)

Hace un par de días en un post de Sensepost hablaban de un sencillo método para ejecutar comandos en MsWord sin necesidad de usar macros ni ninguna vulnerabilidad de corrupción de memoria...¿magia? No, se trata de DDE...

    "Windows proporciona varios métodos para transferir datos entre aplicaciones. Un método consiste en utilizar el protocolo Dynamic Data Exchange (DDE). El protocolo DDE es un conjunto de mensajes y directrices. Envía mensajes entre aplicaciones que comparten datos y utiliza memoria compartida para intercambiar datos entre aplicaciones. Las aplicaciones pueden utilizar el protocolo DDE para transferencias de datos únicas y para intercambios continuos en los que las aplicaciones envían actualizaciones entre sí a medida que se disponen de nuevos datos".

Usar el contexto DDE en Excel o en Word con propósitos maliciosos puede ser bastante útil porque evita el filtrado de macros de los gateways de correo y las políticas corporativas de VBA. Además, la investigación de Sensepost arroja que usar DDE en MSWord es tan sencillo como agregar un campo y hacer lo siguiente:

- Vamos a "Insertar", "Elementos rápidos", "Campo":



- Elegimos "= (Formula)" y Ok:


** Cómo método alternativo simplemente podemos añadir un campo pulsando CTRL+F9

- Después de eso, veremos un campo insertado en el documento con un error "!Final de fórmula inesperado". Haremos clic con el botón derecho en el campo y seleccionaremos "Activar o desactivar códigos de campo"


Ahora debe aparecer el código de campo:


que debemos modificar a lo siguiente:

{DDEAUTO c:\\windows\\system32\\cmd.exe "/k calc.exe"  }

La palabra clave DDEAUTO indica a MSWord que se trata de un campo DDE y se ejecutará automáticamente cuando se abra el documento, la segunda parte es la ruta completa del ejecutable que se lanza y la última parte entre comillas son los argumentos a pasar (ejecutar calc.exe).

Ahora guardamos el documento como uno normal ".docx", y lo abrimos en cualquier máquina.

La primera advertencia es actualizar los enlaces del documento, nada malicioso allí.


El segundo prompt le pregunta al usuario si desea o no ejecutar la aplicación especificada,  esto puede ser considerado como una advertencia de seguridad, ya que le pide al usuario ejecutar "cmd.exe", sin embargo, con la modificación de sintaxis adecuada se puede ocultar...


Cuando la víctima hace clic en sí ....


Lo mismo se puede lograr con el identificador de campo "DDE":

{DDE "c:\\windows\\system32\\cmd.exe" "/c notepad" }

pero en este caso tendremos que modificar el .docx para habilitar la actualización automática de vínculos. Para ello, hay que descomprimir el archivo .docx, editar word/settings.xml, e insertar la siguiente etiqueta XML:

<w:updateFields w:val="true"/>



Luego guardamos el archivo de configuración y actualizamos el archivo. Al abrirlo, Word solicitará actualizar los enlaces dcon un prompt ligeramente diferente que antes, pero con el mismo resultado que DDEAUTO.
 


Y lo mejor, sin macros, sin avisos de seguridad, y FuD ...

https://nodistribute.com/result/plDzKfx3VtEnFiNUAg



Fuente: https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/

3 comentarios :

  1. Como se desempaqueta y vuelve a empaquetar el .docx
    Saludos.

    ResponderEliminar
    Respuestas
    1. con 7-zip por ejemplo puedes editar directamente el xml y al guardar actualizar el docx de forma automática. Saludos!

      Eliminar
  2. Ese popup cierra muchísimas puertas, pero es un truqui buenísimo. En un momento se monta el .docx y si cuela, cuela.

    ResponderEliminar