Así funciona(ba) el fallo de Object Data

Si llevas ya un rato en este ambiente de la informática y la seguridad tal vez recuerdes por ahí del 2003 que Microsoft publicó un boletín en el que exhortaba a sus usuarios a bajar una actualización de seguridad para el navegador Internet Explorer, supuestamente para corregir un fallo al que denominaron “Object Data“.

Bien, pues 13 años después (en 2016), digamos que este fallo no está corregido del todo. Digamos que Microsoft solo ha vuelto más paranoicos a sus navegadores – Internet Explorer y Edge – mostrando al usuario un montón de alertas, pero que, si este responde que sí a todas (y créanme, generalmente lo hace) sigue suponiendo un riesgo de seguridad.

Como sabemos, la etiqueta OBJECT es la que permite incluir en las páginas web cualquier tipo de contenido complejo (flash player, por ejemplo). Sin embargo al permitir insertar cualquier tipo de contenido puede ser usada para insertar objetos no tan amigables.


En Internet Explorer y Microsoft Edge el fallo consiste en el mal tratamiento que se da a los atributos de la etiqueta , aunque en la actualizad el fallo ya no es explotable con el atributo data, aun se puede hacer que no se bloquee todo o parte del contenido potencialmente peligroso. Usando técnicas de ingeniería social podemos crear un link que contenga el exploit y de esta manera podríamos -enre otras cosas- infectar la máquina de la víctima con alguna herramienta de acceso remoto que nos garantice después el acceso a su equipo.

En este ejemplo el exploit estará contenido en lo que parece una simple imagen, con una URL del tipo https://misitio.com/images/ukrainian-girl.jpg. Nótese que ukrainian-girl.jpg en realidad es una carpeta que contiene el exploit en sí. Para simular el malware descargado, esta demostración va a intentar crear 3 archivos y ejecutar 2 de ellos con los permisos de la sesión actual. Los archivos que contiene la carpeta ukrainian-girl.jpg son los siguientes: Files

  • .htaccess y thumbs,db: No son relevantes. Podemos ignorarlos.
  • index.php: Un HTML con frames, en los cuales están los demás archivos.
  • ukrainian-girl.jpg: La imagen que se muestra en uno de los frames de index.php
  • ukrainian-girl.php: Un archivo PHP que cambia los encabezados del tipo de archivo a enviar, haciéndole creer al navegador que es un HTA. Dentro de ese supuesto HTA hay código en VBS que crea los archivos que se ejecutarán en la máquina del usuario. Tambien intenta ejecutarlos.
  • display.php: Un HTML que muestra la imagen ukrainian-girl.jpg.

Análisis del Exploit

Los archivos de este demo están disponibles para su análisis en este repositorio de Github.

Si ejecutamos el exploit en un navegador web no vulnerable (p.e Yandex Browser) el resultado será que se descarga el archivo ukrainian-girl.php sin advertencia alguna, pero al ser un PHP es menos peligroso para el usuario final. Pero si lo ejecutamos en Microsoft Edge igualmente se descargará sin advertencia alguna (pero será un HTA con el código malintencionado) y al final muestra un botón para ejecutarlo.

Edge

Por su parte, Internet Explorer pregunta antes de descargarlo si lo queremos guardar o abrir. De igual manera que con Edge, el archivo descargado es un HTA con el código malintencionado.

screenshot

Los archivos de este demo están disponibles en este repositorio de GitHub para su descarga. No los he incluido aquí porque WordPress no es muy amigable para escribir código en los artículos :(.

En este otro artículo muestro un comportamiento similar con el atributo src de la etiqueta <img>, pero a diferencia de Object data, afecta a todos los navegadores.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s