eyeOS

Agujero de seguridad en vista, y Microsoft hace trampas

datpostEscrito por Jose Carlos el 28 de Marzo de 2008

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 Overflow

Discovered 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?

guardado en Publicado en: Seguridad, SistemasOperativos
Tags: , , , ,
technorati Reacciones de otros blogs sobre esta entrada
meneame fresqui del.ici.ous Google Bookmarks Echilame Technorati Mr.Wong Digg Yahoo! My Web BarraPunto Blinklist StumbleUpon ma.gnolia reddit Facebook


COMENTARIOS (24) deja comenatrio

  1. Marzo 28, 2008

    […] Microsoft podría estar ocultando agujeros de seguridad en Vistawww.nativos2020.com/2008/03/28/agujero-de-seguridad-en-vista… por afiestas hace pocos segundos […]

  2. Luis
    Marzo 28, 2008

    ¡¡Flipo!!

  3. Marzo 28, 2008

    Yo creo que… si te hacen falta privilegios de administrador para hacer algo que el propio administrador puede hacer… no existe fallo de seguridad ¿no? Solo se podria calificar de bug en dicho programa.

    Me explico, es como si por ejemplo dices “existe un fallo de seguridad en linux porque si pones rm -rf se jode todo”. Igualmente ese comando no deberia funcionar pero aun asi funciona ¿o no? ¿os atreveis? xD

    La verdad es que no conocia lo que comentabas del desbordamiento numerico (solo programo webs hoy dia). Tendre que probarlo alguna vez jeje gracias por el tip ;)

    Ya van dos este mes, desbordamiento numerico y desbordamiento del jpg.

  4. Marzo 28, 2008

    El problema, Ivan de la Jara, reside en que en Windows Vista, todos los usuarios son root por defecto, pero las aplicaciones, las ejecutan con los privilegios limitados, en esto se basa el famoso UAC de Windows Vista.

    Sin embargo, winsat.exe NO se ejecuta con privilegios limitados, sino que se ejecuta con root completo.

    El problema del bug, es que permitiría evadir al famoso UAC del vista, y ejecutar un proceso tuyo, con privilegios totales, a través de winsat.exe.

  5. Marzo 29, 2008

    Tu mismo acabas de decir que te pide la contraseña para ejecutarse. Seria mas grave, si como sidces ahora, no la pide. Que yo sepa windows vista (por lo poco que lo usé) pide contraseña (como lleva haciendo linux toda la vida) para ejecutar ciertas aplicaciones porque los usuarios “no” son “root/admin”… Esto si que pasaba (creo) en xp intentando configurarlo como multiusuario (petaba a cada momento)

  6. zerg
    Marzo 29, 2008

    bugtraq no es la única lista sobre seguridad

    http://lists.grok.org.uk/full-disclosure-charter.html

  7. SeLo
    Marzo 29, 2008

    Yo lo que hice en su momento (hará unos 3 años) fue reportar un bug de XP a través de Idefense (http://www.idefense.com/), con lo que me despreocupé de todo y además me gane un buen puñado de dolares. Finalmente el bug fue corregido en una actualización de seguridad, pero para ello tuvieron que pasar 8 meses.

  8. No tienes ni puta idea
    Marzo 29, 2008

    Vas de hacker y das pena. Haber encontrado injections en meneame nada tiene que ver con entender bien cómo funciona un sistema operativo.

    “El problema, Ivan de la Jara, reside en que en Windows Vista, todos los usuarios son root por defecto”

    ¿Eso dónde lo has aprendido? ¿En el pc actual? XDDDD

    ¡Oh no! ¡Una aplicación que requiere derechos de administración puede ser utilizada para obtener derechos de administración! En fin chavalote, cómprate un chupete y cambia de profesión.

  9. Marzo 29, 2008

    No tienes ni puta idea ¿En que te basas? pienso que aunque sean comentarios malos o buenos siempre as de dar la cara decir quien eres, porque es muy bonito escribir bajo un seudonimo, en todo tu comentario no as descrito nada tecnico, sino tonterias, antes de despreciar cualquier investigación como en este caso la de Jose Carlos que me parece bastante interesantes, y no solo lo opino yo, sino una persona que esta muy cerca de microsoft en el area de seguridad, nose en mi opinion deberias explicar en que te basas para hacer ese comentario, o ¿simplemente es envia porque tu nunca as echo nada?

    Un saludo

  10. ricardo
    Marzo 29, 2008

    ¿A ver, a ver, qué está pasando aquí? Este es un fallo real, el problema es que algunos no entienden como explotarlo, en tal caso quedan como ignorantes como el tipo de “No tienes ni puta idea”, si no tienes ni puta idea, mejor te callas y asi ganamos todos, no quedas como ignorante y los demás no perdemos tiempo. Es una discusión seria, si fuera el moderador pondría alguna especie de votación por comentario, y verías como desaparece el tuyo en un par de minutos. ¿Qué te crees? como dicen en algunos lugares “QUE NO TE ENTERAS!” y como dicen en otros “NO SABES NI DONDE ESTÃS PARADO!”. Va para los demás también.
    Todos tenemos derecho a opinar pero está mal que sin saber opinemos estupideces por ignorantes.

  11. Marzo 29, 2008

    En windows vista los usuarios que crea el instalador son administrador, sino el UAC no les dejaría elevar privilegios.

    Te recomiendo, “No tienes ni puta idea”, que vuelvas a revisar este tema, y verás como lo que digo es cierto, en esto se basa toda la historia del UAC.

    Gracias.

  12. marcel
    Marzo 29, 2008

    Hombre probe esto y no ha petado. Windbg no muestra ningun problema.
    Puedes crear un exploit demostrando esto? no te pido que lo publiques solo muestranos un video como lo explotas.

  13. marcel
    Marzo 29, 2008

    estoy en vista x64 sera por eso?

  14. marcel
    Marzo 29, 2008

    si era por eso, en vista 32 si peta pero en vista 64 no.
    Ahora a ver que dice windbg.

  15. Marzo 30, 2008

    Ten en cuenta que en vista64 los enteros no miden 32 bits :p entonces necesitas un número mucho mas largo (2^64/2) para overflowearlo.

  16. marcel
    Marzo 30, 2008

    Eso pense yo tambien pero windows x64 tiene modelo de datos llp64, asi que un int pesa 32 bits.
    por cualquier cosa lo probe en vista x64 y nada:
    C:\Windows\system32>winsat d3d -texshader -totalobj 9223372036854775808
    Herramienta de evaluación del sistema de Windows (WinSat)
    > En ejecución: Enumeración de características v1.0.0.0 ”
    > Tiempo de ejecución 00:00:00.81
    > En ejecución: Evaluación Direct3D WinSAT v1.0.0.0 ‘-texshader -totalobj 922337
    2036854775808′
    > Tiempo de ejecución 00:00:00.34
    > Tiempo de ejecución total 00:00:02.39

    C:\Windows\system32>winsat d3d -texshader -totalobj 922337203685477580888
    Herramienta de evaluación del sistema de Windows (WinSat)
    > En ejecución: Enumeración de características v1.0.0.0 ”
    > Tiempo de ejecución 00:00:00.70
    > En ejecución: Evaluación Direct3D WinSAT v1.0.0.0 ‘-texshader -totalobj 922337
    203685477580888′
    > Tiempo de ejecución 00:00:00.31
    > Tiempo de ejecución total 00:00:01.93

    No se que piensas?

  17. nom
    Marzo 30, 2008

    La verdad es que la idea del UAC de windows es una de las mayores chapuzas de Vista. En lugar de hacer lo que deberían, a estilo lo que se hace en linux, pues han querido hacer otra chapuza de las suyas.
    Lo increíble es que aún haya gente tan tonta o hipócrita como para defenderlo.

    Respecto a tu apreciación, para mí también es un fallo de seguridad, pero… qué vas a hacer, discutir contra el márketing de microsoft? Ése sistema operativo, es, por márketing, superseguro.

    Respecto a lo de que haya más fallos de seguridad (en windows) de los que se reconocen públicamente… pues viendo el historial de juego sucio que ha tenido siempre microsoft, no sería ninguna novedad.
    Que puede que no sea verdad lo que digo? Pues quizás, pero no creo que haya nadie de los que posteen aquí que pueda desmentirlo con rotundidad.

  18. Marzo 30, 2008

    marcel, lo acabo de probar en un vista64 y SI que peta.

    Gracias.

  19. marcel
    Marzo 31, 2008

    Bueno de cualquier forma no peta en mi instalacion asi que puedo estar tranquilo, algo mas a que direccion salta? y que parametros usaste?.
    Entonces ahora solo queda que salga algun exploit(publico o privado) para que sea un bug explotable.
    Saludos.

  20. marcel
    Marzo 31, 2008

    Me olvidaba tenes el stack trace? y cual es la eip donde ocurre el problema en x64?

  21. Abril 1, 2008

    Lo unico que pido es que no me salpiqueis vuestra mierda, haced el favor… No me metais en el grupo de “no tienes ni puta idea”, porque ni soy el, ni comparto ser tan agresivo sin conocer a este hombre de nada.

    Yo no tengo Vista instalado y segun parece debe haber un fallo en la redaccion del articulo puesto que como lo habia escrito no parecia haber tal fallo de seguridad y por eso he preguntado… No por ir en contra de nadie, sino para informarme puesto que nunca he explotado un overflow de ningun tipo y son temas que me interesan.

    Yo ni siquiera me hubiese comido el tarro con el numero, hubiese puesto un chorro de 99999999999999999999999999999999999999999999999999999999999 y a tomar por saco…

    Al final no me he enterado si pide, o no, la clave… Quiza fui yo que lo leí mal…

  22. switzerland
    Abril 1, 2008

    Madre mia y este es el sistema que hay gente que defiende??..si es que como se puede defender una empresa que ellos saben que no hacen bien su trabajo, te venden su producto a precio de oro que repito ellos saben que no está bien y todavia les sobra tiempo para criticar Apple, a toda esa gente que defiende M$ decir que si el Macbook Air ha sido petado en 24h2m pero eso es así porqué todo el mundo fue a por el Macbook si todo el mundo hubiera ido a por un portátil con windows vista es que no habría hecho falta ni que pasara la 1a ronda, a los 20m seguramente alguien habría entrada y no por medio de aplicaciones como hicieron con el Macbook que se hicieron con el gracias a un problema de seguridad de safari no del MacOS en windows es que te entran por donde quieren.

  23. Elias
    Abril 2, 2008

    Ivan, no se te mete en el mismo saco que a nadie, cada uno es responsable de sus comentarios, y los tuyos son correctos. Está claro que ricardo no se refiere a ti.

    Lo de explicar este tema, es algo complicado si no tienes algún conocimiento previo (yo no tengo ni papa, al contrario que mi compañero Jose Carlos) y además Jose no es profesor, es especialista en seguridad, hace lo que puede el hombre (yo lo desespero muchas veces xDD).

    Solo quería dejar claros este par de puntos, espero que si la conversación continua sea de forma civilizada, si no los comentarios serán clausurados.

    Esperamos verte más por aquí Ivan que siempre enriqueces con tus opiniones y por supuesto a todos los demás que comentáis (menos los que lo hacen de forma insultante).

  24. Abril 4, 2008

    […] Vía Nativos2020,  Descubre un error de Seguridad En Vista, pero, Es tapado por Microsoft? es Altamente recomendado este […]


COMENTAR


Todo el contenido bajo licencia CC | Funcionando gracias a WP | Diseño y creación de nativos2020