miércoles, 27 de diciembre de 2006

Denegación de servicio remota en Microsoft Windows

Se ha publicado un código que aprovecha una vulnerabilidad que permite,
en remoto, hacer que Microsoft Windows deje de responder. Para que el
fallo tenga efecto, el atacante debe establecer una sesión nula con el
sistema objetivo, lo que mitiga en cierta forma la gravedad del problema.

El día 25 de diciembre se publicó un código que aprovecha un fallo
en el servicio "estación de trabajo" en la forma en la que maneja
peticiones RPC NetrWkstaUserEnum con un valor grande en el campo
maxlen. Si el atacante tiene acceso a este servicio y envía peticiones
especialmente manipuladas, el servicio svchost.exe consumiría toda la
memoria disponible y el sistema dejaría de responder. El problema se
ha confirmado en Windows 2000 y Windows XP SP2 totalmente parcheados,
aunque otros podrían verse afectados.

Debido a las condiciones de este fallo, es mucho más factible que los
ataques se lleven a cabo desde sistemas dentro de una misma red interna.

La misma persona que ha revelado el código (un/a polaco/a que se hace
llamar h07) hizo también público otro exploit a principios de diciembre.
El código permitía provocar una denegación de servicio a través de una
reserva de memoria incorrecta en función GetPrinterData. Para poder
aprovechar el fallo, un atacante debería tener acceso al puerto 445,
usado para manejar el protocolo NetBIOS.

Al contrario que el primero descrito, este código no representaba una
vulnerabilidad desconocida, sino que suponía una nueva forma de atacar
un fallo inherente a la implementación RPC en Windows, conocido desde
finales de 2005. Ya se sabía que este fallo era aprovechable a través
de la función PNP_GetDeviceList del servicio UPNP (Universal plug and
play).

Para ninguno de estos problemas existe parche oficial. Se recomienda
filtrar el acceso a los servicios vulnerables.


Laboratorio Hispasec
laboratorio@hispasec.com


Más información:

RPC Memory Exhaustion
http://research.eeye.com/html/alerts/zeroday/20051116.html

MS Windows Workstation Service NetrWkstaUserEnum() 0day Memory
Allocation Remote DoS Exploit
http://www.milw0rm.com/exploits/2879