Las aventuras de los esquivos Malvari, Parte IV: DDE y campos de documentos de Word



Este artículo es parte de la serie Fileless Malware. Todas las otras partes de la serie:


En este artículo, iba a sumergirme en un escenario de etapas múltiples aún más complicado de un ataque sin archivos con la reparación en el sistema. Pero luego me encontré con un ataque increíblemente simple sin código: ¡no se requieren macros de Word o Excel! Y esto demuestra mucho más eficientemente mi hipótesis inicial que subyace en esta serie de artículos: superar el perímetro externo de cualquier organización es una tarea muy simple.

El primer ataque que describiré explota la vulnerabilidad de Microsoft Word, que se basa en el Protocolo de intercambio dinámico de datos (DDE) heredado . Ya ha sido arreglado . El segundo explota una vulnerabilidad más general en Microsoft COM y las capacidades de transferencia de objetos.

Regreso al futuro con DDE


¿Alguien más recuerda DDE? Probablemente pocos. Este fue uno de los primeros protocolos de comunicación entre procesos que permitió a las aplicaciones y dispositivos transferir datos .

Yo mismo estoy un poco familiarizado con esto, porque solía revisar y probar equipos de telecomunicaciones. En ese momento, DDE permitió, por ejemplo, transferir el identificador de llamadas a la aplicación CRM para los operadores de centros de llamadas, que finalmente abrieron la tarjeta del cliente. Para hacer esto, tenía que conectar un cable RS-232 entre el teléfono y la computadora. ¡Aquí estaban los días!

Al final resultó que, Microsoft Word todavía es compatible con DDE.

Lo que hace que este ataque sea efectivo sin código es que puede acceder al protocolo DDE directamente desde los campos automáticos de un documento de Word (me quito el sombrero ante SensePost para investigar y publicar sobre él).

Los códigos de campo son otra característica antigua de MS Word que le permite agregar texto dinámico y un poco de programación a un documento. El ejemplo más obvio es el campo de número de página, que se puede insertar en el pie de página utilizando el valor {PAGE \ * MERGEFORMAT}. Esto le permite generar automáticamente números de página.


Sugerencia: puede encontrar el elemento de menú Campo en la sección Insertar.

Recuerdo que cuando descubrí por primera vez esta característica en Word, me sorprendió. Y mientras el parche no lo deshabilitó, Word admitió el parámetro de campo DDE. La idea era que DDE permitiría a Word comunicarse directamente con la aplicación, para la posibilidad de transferir la salida del programa a un documento. Era una tecnología muy joven en ese momento: soporte para el intercambio de datos con aplicaciones externas. Más tarde se desarrolló en tecnología COM, que también consideraremos a continuación.

Como resultado, los hackers se dieron cuenta de que esta aplicación DDE podría ser un shell de comandos que, por supuesto, lanza PowerShell, y desde allí los hackers pueden hacer lo que quieran.
La captura de pantalla a continuación muestra cómo utilicé esta técnica secreta: un pequeño script de PowerShell (en lo sucesivo denominado PS) del campo DDE carga otro script de PS que inicia la segunda fase del ataque.


Gracias a Windows por la advertencia emergente de que el campo incorporado DDEAUTO está intentando encubrir encubiertamente

El método preferido para aprovechar la vulnerabilidad es usar la opción con el campo DDEAUTO, que ejecuta automáticamente un script cuando se abre un documento de Word.
Pensemos en lo que podemos hacer al respecto.

Como pirata informático novato, puede, por ejemplo, enviar un correo electrónico de phishing, pretendiendo que pertenece al Servicio de Impuestos Federales e incrustar el campo DDEAUTO con un script PS para la primera etapa (esencialmente un cuentagotas). Y ni siquiera necesita hacer ninguna codificación real de macros, etc., como hice en el artículo anterior.
La víctima abre su documento, se activa el script incorporado y el hacker está dentro de la computadora. En mi caso, el script PS remoto solo imprime el mensaje, pero también puede iniciar fácilmente el cliente PS Empire, que proporcionará acceso remoto al shell.
Y antes de que la víctima tenga tiempo de decir algo, los hackers serán los adolescentes más ricos del pueblo.


El shell se lanzó sin la menor codificación. ¡Incluso un niño puede hacerlo!

DDE y campos


Más tarde, Microsoft aún desactivó DDE en Word, pero antes de eso, la compañía dijo que esta característica simplemente fue mal utilizada. Su falta de voluntad para cambiar algo es comprensible. Desde mi propia experiencia, yo mismo observé un ejemplo de que la actualización de campos al abrir un documento estaba habilitada, pero el servicio de TI deshabilitó las macros de Word (pero con una notificación). Por cierto, puede encontrar los parámetros correspondientes en la sección de configuración de Word.

Sin embargo, incluso si la actualización de campo está habilitada, Microsoft Word también notificará al usuario cuando un campo solicite acceso a datos eliminados, como es el caso con el DDE anterior. Microsoft realmente te está advirtiendo.

Pero lo más probable es que los usuarios aún omitan esta advertencia y activen la actualización de campo en Word. Esta es una de las raras oportunidades para agradecer a Microsoft por deshabilitar la peligrosa función DDE.

¿Qué tan difícil es encontrar un sistema Windows sin parches hoy?

Para esta prueba, utilicé AWS Workspaces para acceder al escritorio virtual. Por lo tanto, obtuve una máquina virtual sin parches con MS Office, lo que me permitió insertar el campo DDEAUTO. No tengo dudas de que de manera similar puede encontrar otras compañías que aún no han instalado los parches de seguridad necesarios.

Misterio de los objetos


Incluso si instaló este parche, hay otros agujeros de seguridad en MS Office que permiten a los piratas informáticos hacer algo muy similar a lo que hicimos con Word. En el siguiente escenario, aprenderemos cómo usar Excel como cebo para un ataque de phishing sin escribir código.

Para comprender este escenario, recordemos el Modelo de objetos componentes de Microsoft, o el abreviado COM (Modelo de objetos componentes) .

COM ha existido desde la década de 1990, y se define como un "modelo de componente orientado a objetos neutral para el lenguaje de programación" basado en llamadas a procedimientos RPC remotos. Para una comprensión general de la terminología COM, lea esta publicación en StackOverflow.

En general, puede imaginar una aplicación COM como un ejecutable de Excel o Word, o algún otro archivo binario que se pueda iniciar.

Resulta que una aplicación COM también puede ejecutar un script : JavaScript o VBScript. Técnicamente, esto se llama scriptlet . Quizás haya encontrado la extensión sct para archivos en Windows: esta es la extensión oficial para scriptlets. De hecho, son el código para un script envuelto en un contenedor XML:

<?XML version="1.0"?> <scriptlet> <registration description="test" progid="test" version="1.00" classid="{BBBB4444-0000-0000-0000-0000FAADACDC}" remotable="true"> </registration> <script language="JScript"> <![CDATA[ var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!"); ]]> </script> </scriptlet> 

Los hackers y los pentesters han descubierto que existen utilidades y aplicaciones separadas en Windows que aceptan objetos COM y, en consecuencia, también scriptlets.

Puedo pasar el scriptlet a una utilidad de Windows escrita en VBS, conocida como pubprn. Se encuentra en las entrañas de C: \ Windows \ system32 \ Printing_Admin_Scripts. Por cierto, hay otras utilidades de Windows que toman objetos como parámetros. Para comenzar, considere este ejemplo.


Es natural que el shell se pueda iniciar incluso desde un script de impresión. ¡Ve a Microsoft!

Como prueba, creé un scriptlet remoto simple que inicia el shell e imprime el divertido mensaje "¡Acaban de recibir un script!". Esencialmente, pubprn crea una instancia del objeto scriptlet, permitiendo que VBScript ejecute el shell. Este método proporciona claros beneficios a los piratas informáticos que desean colarse y esconderse en su sistema.

En la próxima publicación, explicaré cómo los hackers pueden usar scriptlets COM utilizando hojas de cálculo de Excel.

Para su tarea, mire este video Derbycon 2016 que explica cómo los hackers usaron scriptlets. Y también lea este artículo sobre scriptlets y algún tipo de apodo.

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


All Articles