Ejecución remota de código ASP en Internet Information Server 6.x
Se ha publicado recientemente un error de seguridad en IIS 6.x que
permite eludir restricciones de seguridad y ejecutar código ASP
arbitrario mediante el uso de una múltiple extensión. Tercer susto
del año para Microsoft y su IIS.
Internet Information Services (IIS), es un servidor de aplicaciones
implementado por Microsoft que permite montar distintos servicios como
FTP, SMTP, NNTP y HTTP/HTTPS. Está basado en varios módulos que permiten
procesar distintos lenguajes web, por ejemplo ASP y ASP.NET. También
pueden ser incluidos los de otros como PHP o Perl.
El error (de nuevo extremadamente simple) se provoca al no filtrar
correctamente el carácter «;» en el nombre de un fichero. De este modo
un atacante remoto podría subir al servidor un fichero ASP y ejecutar su
contenido suplantando, por ejemplo, una imagen. Aunque IIS incorpora una
medida de seguridad que evita ejecutar código cuando un fichero tiene
múltiple extensión, el fallo permite que si se consigue subir un fichero
llamado «foto.asp;.jpg» al servidor, la aplicación lo tome como una
inocente imagen, pero en realidad se ejecute su código ASP («Active
Server Page») al invocarlo.
El hecho de que un atacante pueda ejecutar código ASP arbitrario en
un servidor, abre un amplio abanico de posibilidades. Dependiendo de
la configuración, quedará comprometida no solo la página, sino todo
el servidor que lo aloja.
Para poder explotar esta vulnerabilidad es necesario que el servidor
permita subir ficheros. El atacante solo debe realizar un simple cambio
en la extensión del nombre del archivo. Dado que muchas aplicaciones web
permiten subir archivos fotográficos (por ejemplo a modo de «avatar») el
impacto en estos servidores es importante.
Tercera vulnerabilidad grave para IIS en lo que va de año, después de
mucho tiempo de tranquilidad en este aspecto. En mayo, se encontró un
fallo en IIS 6.x a la hora de procesar peticiones HTTP especialmente
manipuladas con la cabecera «Translate:f» y con caracteres Unicode que
permitía a un atacante eludir la autenticación al disparar un problema
de validación en WebDAV. En septiembre, el mismo investigador que
descubrió el fallo anterior, publicó un exploit funcional que permitía
a un atacante ejecutar código con permisos de SYSTEM en un servidor IIS
5.x.
Microsoft no ha publicado parche ni «advisory» oficial al respecto. Si
es imprescindible permitir la subida de archivos, se recomienda eliminar
los permisos de ejecución sobre los directorios donde se permita.
Microsoft IIS 0Day Vulnerability in Parsing Files (semi-colon bug)
http://soroush.secproject.com/downloadable/iis-semicolon-report.pdf
New Reports of a Vulnerability in IIS
http://blogs.technet.com/msrc/archive/2009/12/27/new-reports-of-a-vulnerability-in-iis.aspx
Víctor Antonio Torre
vtorre@hispasec.com