Las aventuras del esquivo malware, parte IV: DDE y campos de documentos de Word

Las aventuras del esquivo malware, parte IV: DDE y campos de documentos de Word

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

En este artículo, iba a sumergirme en un escenario de ataque sin archivos de múltiples etapas aún más complejo con fijación en el sistema. Pero luego me encontré con un ataque increíblemente simple y sin código: ¡no se requieren macros de Word o Excel! Y esto demuestra mucho más eficazmente mi hipótesis original que subyace a esta serie de artículos: romper el perímetro exterior de cualquier organización no es una tarea en absoluto difícil.

El primer ataque que describiré explota una vulnerabilidad de Microsoft Word que se basa en anticuado protocolo de intercambio de datos dinámico (DDE). ella ya estaba reparado. El segundo explota una vulnerabilidad más general en Microsoft COM y en las capacidades de transferencia de objetos.

Regreso al futuro con DDE

¿Alguien más recuerda DDE? Probablemente no muchos. Fue uno de los primeros Protocolos de comunicación entre procesos que permitieron que las aplicaciones y dispositivos transfirieran datos..

Yo también estoy un poco familiarizado con esto porque solía revisar y probar equipos de telecomunicaciones. En aquel momento, DDE permitía, por ejemplo, a los operadores de centros de llamadas transferir el identificador de llamadas a una aplicación CRM, que finalmente abría una tarjeta de cliente. Para hacer esto, debía conectar un cable RS-232 entre su teléfono y su computadora. ¡Esos eran los días!

Resulta que Microsoft Word todavía está apoyo DDE.

Lo que hace que este ataque sea efectivo sin código es que puedes acceder al protocolo DDE directamente desde campos automáticos en un documento de Word (felicitaciones a SensePost por investigaciones y publicaciones sobre eso).

códigos de campo es otra característica antigua de MS Word que le permite agregar texto dinámico y un poco de programación a su 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 usando el valor {PAGE *MERGEFORMAT}. Esto permite que los números de página se generen automáticamente.

Las aventuras del esquivo malware, parte IV: DDE y campos de documentos de Word
Sugerencia: Puede encontrar el elemento del menú Campo en Insertar.

Recuerdo que cuando descubrí por primera vez esta función en Word, quedé asombrado. Y hasta que el parche lo desactivó, Word todavía admitía la opción de campos DDE. La idea era que DDE permitiera a Word comunicarse directamente con la aplicación, para que luego pudiera pasar la salida del programa a un documento. En aquel momento era una tecnología muy joven: la compatibilidad con el intercambio de datos con aplicaciones externas. Posteriormente se desarrolló en tecnología COM, que también veremos a continuación.

Finalmente, los piratas informáticos se dieron cuenta de que esta aplicación DDE podría ser un shell de comandos, que por supuesto iniciaba PowerShell, y desde allí los piratas informáticos podían hacer lo que quisieran.
La siguiente captura de pantalla muestra cómo utilicé esta técnica sigilosa: un pequeño script de PowerShell (en adelante PS) del campo DDE carga otro script PS, que inicia la segunda fase del ataque.

Las aventuras del esquivo malware, parte IV: DDE y campos de documentos de Word
Gracias a Windows por la advertencia emergente de que el campo DDEAUTO integrado está intentando iniciar el shell en secreto.

El método preferido para explotar la vulnerabilidad es utilizar una variante con el campo DDEAUTO, que ejecuta automáticamente el script. en la apertura Documento de Word.
Pensemos en lo que podemos hacer al respecto.

Como hacker novato, puede, por ejemplo, enviar un correo electrónico de phishing, haciéndose pasar por del Servicio de Impuestos Federales e incrustar el campo DDEAUTO con el script PS para la primera etapa (un cuentagotas, esencialmente). Y ni siquiera necesitas hacer ninguna codificación real de macros, etc., como hice yo en Artículo anterior.
La víctima abre su documento, el script incrustado se activa y el hacker termina dentro de la computadora. En mi caso, el script PS remoto simplemente imprime un mensaje, pero también podría 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 piratas informáticos resultarán ser los adolescentes más ricos del pueblo.

Las aventuras del esquivo malware, parte IV: DDE y campos de documentos de Word
El shell se lanzó sin la más mínima codificación. ¡Hasta un niño puede hacerlo!

DDE y campos

Más tarde, Microsoft desactivó DDE en Word, pero no antes de que la compañía declarara que la función simplemente se había utilizado indebidamente. Su renuencia a cambiar algo es comprensible. En mi experiencia, yo mismo he visto un ejemplo en el que se habilitó la actualización de campos al abrir un documento, pero TI deshabilitó las macros de Word (pero se muestra una notificación). Por cierto, puedes encontrar la configuración correspondiente en la sección de configuración de Word.

Sin embargo, incluso si la actualización de campos está habilitada, Microsoft Word notifica adicionalmente al usuario cuando un campo solicita acceso a datos eliminados, como es el caso con DDE mencionado anteriormente. Microsoft realmente te está advirtiendo.

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

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

Para esta prueba, utilicé AWS Workspaces para acceder a un escritorio virtual. De esta manera obtuve una máquina virtual de MS Office sin parches que me permitió insertar el campo DDEAUTO. No tengo ninguna duda de que de forma similar puedes encontrar otras empresas que aún no han instalado los parches de seguridad necesarios.

misterio de los objetos

Incluso si instaló este parche, existen 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 Utilice Excel como cebo para un ataque de phishing sin escribir ningún código.

Para entender este escenario, recordemos el Modelo de objetos componentes de Microsoft, o para abreviar COM (Modelo de objetos componentes).

COM existe desde la década de 1990 y se define como un "modelo de componentes orientado a objetos, de lenguaje neutro" basado en llamadas a procedimientos remotos RPC. Para una comprensión general de la terminología COM, lea esta publicación en StackOverflow.

Básicamente, puedes pensar en una aplicación COM como un ejecutable de Excel o Word, o algún otro archivo binario que se ejecute.

Resulta que también se puede ejecutar una aplicación COM el guion — JavaScript o VBScript. Técnicamente se llama guión. Es posible que haya visto la extensión .sct para archivos en Windows; esta es la extensión oficial para scriptlets. Básicamente, son código de script empaquetado 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 pentesters han descubierto que existen utilidades y aplicaciones independientes en Windows que aceptan objetos COM y, en consecuencia, también scriptlets.

Puedo pasar un scriptlet a una utilidad de Windows escrita en VBS conocida como pubprn. Se encuentra en las profundidades de C:Windowssystem32Printing_Admin_Scripts. Por cierto, existen otras utilidades de Windows que aceptan objetos como parámetros. Veamos este ejemplo primero.

Las aventuras del esquivo malware, parte IV: DDE y campos de documentos de Word
Es bastante natural que el shell se pueda iniciar incluso desde un script impreso. ¡Vaya Microsoft!

Como prueba, creé un scriptlet remoto simple que inicia un shell e imprime un mensaje divertido: "¡Acabas de recibir un script!". Básicamente, pubprn crea una instancia de un objeto scriptlet, lo que permite que el código VBScript ejecute un contenedor. Este método proporciona una clara ventaja a los piratas informáticos que quieren colarse y esconderse en su sistema.

En la próxima publicación, explicaré cómo los piratas informáticos pueden explotar los scriptlets COM utilizando hojas de cálculo de Excel.

Para tus deberes, echa un vistazo este video de Derbycon 2016, que explica exactamente cómo los piratas informáticos utilizaron scriptlets. Y también leer este articulo sobre scriptlets y algún tipo de apodo.

Fuente: habr.com

Añadir un comentario