Acceder CPanel Acceder WHM Acceder webmail

Agujero de seguridad en vista, y Microsoft hace trampas

No es ningún secreto que Microsoft, la empresa que desarrolla Windows, es muy amiga del juego sucio, las trampas, las mentiras, y el engaño, ha llegado a tal punto, que la empresa recibe multas por sus prácticas, que rozan lo criminal y que están muy lejos de la ética y la competencia libre.

Sin embargo, todo esto parece algo lejano hasta que lo vives en tus propias carnes, el como una empresa como esta, con su poder, extiende su brazo para tapar lo que les interesa… y creedme, es frustrante.

La historia comienza cuando hace un par de semanas, tuve que instalarme Windows Vista para pasar una aplicación en python a windows (había algunas ligeras diferencias entre el código para windows y el de linux, y yo me encargaba de corregirlas), entre programar y programar, me pongo a echarle un vistazo al vista, me estudio un poco como van sus capas de seguridad, el UAC, todo esto nuevo de lo que Microsft habla tanto.

Al cabo de un rato de estudiarmelo, leo en meneame un noticia un tanto curiosa que habla sobre un programa que viene incluido en vista, y que permite realizar tests sobre la potencia del hardware de tu sistema (benchmarking), el caso es que me pongo a jugar con ella, cuando veo que la noticia habla sobre un comando, así:

winsat d3d -texshader -totalobj 15

lo cual crea un efecto 3d para testear tu gráfica, con tantas figuras como especifiques tras el -totalobj.

Nada mas ver el argumento, me imaginé que el programador habría utilizado un signed int (un entero que usa el bit mas significativo para la parte negativa, por lo que su tamaño es de la mitad que 2^32) para almacenar el parametro -totalobj, por lo que si pedimos un número suficientemente largo, sobrepasamos la mitad positiva del número y pasamos a la negativa, o incluso, si pasamos 2^32+1 el número valdrá 0. Todo esto está ya mas que estudiado en seguridad y se llama Integer Overflow.

Así que hice la prueba:

winsat d3d -texshader -totalobj 2147483648
Esto dejaría al signed int en negativo, y si alguien hace la prueba verá que con eso, winsat.exe se detiene y peta (lo que en linux sería una violación de segmento).

Llegados a este punto, ya sabemos con total certeza, que existe un agujero de seguridad en esa aplicación, además, la guinda del pastel viene en que esa aplicación pide privilegios de administrador para ejecutarse, por lo que si esto llegase a ser explotable, y pudiésemos ejecutar código a partir de esta aplicación, podríamos utilizar esto para elevar privilegios desde nuestra aplicación, ya que si nuestra aplicación pide privilegios de administrador, lo mas probable es que cuando el user lea que una aplicación pide privilegios, diga que no (un user educado), sin embargo, si nuestra aplicación ejecuta a winsat.exe y de ahí, ejecuta código, es winsat.exe, firmado por Microsoft y alojado en system32, quien pide los privilegios, esto cambia mucho el asunto.

Dejando a un lado hasta donde llega esta vulnerabilidad, decidí contactar con Microsoft para que la solucionasen, primero me contestaron con muy buenas palabras, hasta que llega un mail un poco mas raro:

Hello Jose,Thank you for your report. To follow up I am wondering what about this crash indicates to you that it is exploitable. Have you been able to obtain an elevation of privilege, code execution, etc.?

Thank you,

Nate
Me pedían a mi, que les explicase como explotarlo, es decir, ellos no sabían muy bien por donde cogerlo.

Tras un par de correos mas, Microsoft deja de dar señales de vida, y me decido a enviar el agujero de seguridad, a la principal lista de correo de seguridad informática: securityfocus bugtraq, donde misteriosamente, ya casi no se reciben bugs de productos Microsoft, comparado con hace un año.

Al poco rato de enviar el siguiente texto:

From: jose@eyeos.org
To: bugtraq@securityfocus.com
Date: 28 Mar 2008 19:10:39 -0000
Subject: Microsoft Windows Vista winsat.exe Integer Overflow
Title: Windows Vista winsat.exe Integer OverflowDiscovered by: Jose Carlos Norte (jose@eyeos.org)

Vendor Status: notified on 24-03-08, MSRC start to work on a solution, but give no answer in 4 days.

There is a flaw in windows vista benchmarking tool, called winsat.exe, that runs withs administrative privileges.

The problem, is an integer overflow in -totalobj argument, example:

winsat d3d -texshader -totalobj 2147483648

this result in a overflow of the signed int that stores the totalobj argument, and turns it negative, and then, the program crashes.

I’m not sure if you can control some memory using other options in winsat.exe arguments to take advantage of this issue, and exploit it.

Me contesta un moderador de la lista, diciendome que NO ACEPTAN mi correo, argumentando lo siguiente:

WinSAT requires administrator privileges to run. If the user does not
have administrator privileges, WinSAT will display a dialog box that
asks for credentials

Evidentemente, se olvidan de mencionar que la gran ventaja maravillosa de Windows Vista es que ya no corren las cosas como administrador, por defecto, sin embargo, este tipo de bugs, revive viejos problemas en Windows, pero eso no importa.

Lo mas irónico de la historia es que hace algún tiempo en estas listas de seguridad solo se ven bugs en productos de software libre o productos de terceros, pero cada vez menos, en productos Microsoft.

Además, el mismo moderador aceptó como bugs válidos, este bug, quees totalmente FUD, que lo que insinua es que si puedes acceder a la memoria del proceso xchat, estando en local y con acceso al sistema, puedes pillar datos sensible de tu propio usuario, y este otro,que tal como se ve en las respuestas, directamente: es falso.

La pregunta que queda en el aire es: ¿hay un doble rasero en las listas de seguridad, es decir, hay censura según quien sea el afectado por el bug, o cuanto dinero tenga para taparlo?

Autor | Jose Carlos Norte


Publicado en: Seguridad, Windows
Tags: , ,
Reacciones con otros blogs:  ¡Click!
Marcadores sociales: Compártelo

4 Comentarios hasta el momento »

  1. B1asc0 dijo

    29 de Marzo del 2008 a las 4:53 pm

    La verdad que tu pagina esta pero mas que buena.
    Te felicito.

  2. Antonio dijo

    30 de Marzo del 2008 a las 7:35 am

    Muchas gracias B1asc0, el laboratorio lo intentamos actualizar cada 2 dias, ya que es dificil escribir diariamente como en el blog, ya que aqui hablamos de partes tecnicas/practicas echas por nosotros o amigos muy cercanos y no hay contenido suficiente, si algun dia quieres aportar algo no dudes en enviarmelo al mail.

    Un saludo

  3. Andrew dijo

    11 de Abril del 2008 a las 2:22 am

    This is first time in my life when I don’t know what to say. After reading all comments I’m shocked. What has happened with our society, with our young generation? They are commenting terrible information, their lexis sounds terrible. Is that true, that only words they know is “cool”, “cute” and cussing words? What are they thinking of? It’s better not to think about it, it’s too sad

  4. Trancek dijo

    19 de Abril del 2008 a las 7:26 pm

    Respecto a esto:
    “Windows Vista es que ya no corren las cosas como administrador”

    La verdad no tengo ni idea, porque he pasado de usar vista, pero si eres capaz de demostrar que por defecto corre con privilegios de un usuario normal que no sea admin, te lo aceptaran, porque seria un buen fallo, o ver si corre como system, pero bueno yo te hablo desde mi experiencia en xp sp2, no se para nada como anda el vista jejje


Comentarios RSS · TrackBack URI


Dejanos tu Comentario

Nombre: (Requerido)

E-Mail: (Requerido)

Sitio WEB:

Comentario: