27 may. 2015

Acceder a archivos con nombres en formato 8:3 en servidores IIS/Apache

Mucho se ha hablado del bug de IIS Shortname que permite hacer un ataque de booleanización para listar los nombres en formato 8:3 en un servidor Windows con IIS. Hemos visto que este bug está en sitios como windows.microsoft.com y recientemente en un dominio de Apple, además de ver que en muchos sitios aún se puede explotar por medio del método Options. Hoy aún así, quiero contaros un caso que tenemos implementado en el entorno de demo que utilizamos para pasar los test de QA.

Como se ha explicado muchas veces, este bug afecta a todas las versiones de IIS siempre que haya compatibilidad en el sistema de ficheros NTFS con el formato de nombres cortos. En este escenario, una petición utilizando los caracteres especiales permiten hacer un ataque de booleanización a ciegas para extraer los 6 primeros caracteres del nombre - los otros tres caracteres son para ~1 (o ~2) - y los tres primeros de la extensión.
Dependiendo de la versión de IIS hay que probar diferentes condiciones para saber si es una respuesta positiva - existe un fichero con ese patrón en el nombre -o negativa- no existe ningún fichero que cumpla ese patrón.

El parte del método GET y la nueva explotación por OPTIONS

Los servidores IIS fueron actualizados con una mitigación que ofrecía el mismo comportamiento para las respuestas TRUE y las respuestas FALSE, por lo cuál se acababa con la posibilidad de realizar un ataque de booleanización, pero esto no se mitigó en todos los métodos HTTP y con OPTIONS - un método que sirve para consultar cuáles son los métodos HTTP permitidos en una determinada ubicación del servidor web - se puede continuar detectando el bug y extrayendo el listado de archivos.

Ejemplo de acceso a archivos 8:3 en Apache sobre Windows

En ese entorno, uno de los servidores es un Apache corriendo sobre un servidor Microsoft Windows. Entre la lista de archivos que hay existen dos ficheros con nombres largos y que comienzan por la cadena password, pero que tienen diferentes extensiones, tal y como se puede ver en la imagen siguiente.
El comportamiento de Apache cuando se solicita un fichero en formato 8:3 es totalmente correcto, y como se puede ver, si pedimos passwo~1.txt el servidor web nos devuelve el contenido del fichero de nombre largo asociado a él.
El comportamiento es similar si pedimos la misma cadena, pero cambiamos la extensión TXT por ZIP. En este caso llegamos a la descarga del fichero asociado a ese nombre acortado.

Es decir, los nombres cortos en formato 8:3 son totalmente funcionales en los servidores Apache sobre sistemas Microsoft Windows.

Fuente: El Lado del Mal  y II

0 comentarios:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info
Si vas a dejar una consulta, procura tener habilitado tu perfil en Blogger o deja una forma de contacto.

Gracias por comentar!