1- Bypass de las alertas de seguridad de Internet Explorer al descargar
archivos.
Software afectado: Internet Explorer (probado en Windows 2003 server web
edition)
Impacto: -bypass de filtros perimetrales basados en extensiones de archivos
-ejecución de código en el sistema de la 'victima'
Explicación del problema:
Cuando un usuario intenta descargar un archivo potencialmente dañino
(ejecutables por ejemplo), Internet Explorer avisa de la siguiente manera:
Este aviso se produce en función de la extensión del archivo. Si el archivo
que se quiere descargar tiene una extensión tipo: .exe, .bat, etc el
navegador avisa de la peligrosidad de descargar dicho fichero.
Un script por ejemplo también es detectado:
Si un atacante intenta renombrar un fichero, por ejemplo, 'virus.exe' a
'virus' sin extensión para evitar dicho aviso de seguridad, lo único que
podría conseguir es que la víctima lo descargue sin ningún tipo de aviso por
parte del navegador, pero este fichero, al almacenarse sin extensión no será
interpretado como un binario y por lo tanto si el usuario intenta abrirlo
tras la descarga, se le pedirá que asocie un programa... Esta aproximación
de seguridad basada en filtrar en función de la extensión parece útil a
primera vista, de hecho, para que un usuario ejecute un binario en su
sistema es necesario que se lo descargue 'intacto', es decir, con una
extensión reconocible por parte del sistema operativo.
Existe un problema de seguridad en Internet Explorer (al menos en la versión
que viene con Windows 2003 Server Web Edition).
Si se realiza una petición tipo:
http://servidor/fichero.exe?.html
veremos que el navegador cree que el fichero es un HTML...
Se puede comprobar ademas que la extensión original (.exe) no se muestra.
Hay que darse cuenta de que la petición al ejecutable se hace de manera que
parezca una petición a un CGI (se le pasa el parámetro ".html").
Parece ser que este tipo de peticiones "Confunden" al navegador. Si además
hacemos una petición con un final de cadena (%00), veamos que sucede:
Como puede observarse el navegador no muestra la extensión.
Se puede combinar la manipulación de la extensión con la ocultación de la
misma (para bypass de los filtros perimetrales) y conseguir ejecutar
intrucciones en la máquina del usuario sin necesidad de enviar ningún
binario (para bypass de antivirus también).
Se puede enviar un link (no todos los usuarios conocen la extensión 'lnk'),
y conseguir que los filtros perimetrales (tipo ISA server, Checkpoint,...)
nos detecten (teóricamente) nada. Para ello hacemos una petición a un
fichero llamado 'document' como si se tratara de una CGI, y le pasamos como
parámetro la extensión '.lnk', y además añadimos el final de string para que
el navegador no informe de que tipo de extensión se trata.
Se puede observar en la captura que el navegador ni informa de que tipo de
extensión es ".lnk" ni proporciona la alerta habitual de seguridad.
El impacto de está técnica de ataque a Internet Explorer es seria: los
filtros perimetrales no pueden hacer nada, porque ven una petición a un
fichero llamado 'document'.
Los antivirus poco puede hacer ante un fichero sin extensión y para el que
no tienen firma.
El resultado de la acción anterior es que el cliente final, almacenará el
fichero como document.lnk.
Como ejemplo de explotación de este fallo podemos hacer que el link ejecute
un cmd del sistema con una serie de parámetros (por ejemplo '/c dir'). Esto
es tan fácil, como crear el link en una máquina windows y copiar el archivo
a nuestro servidor de pruebas (desde donde el cliente descarga el fichero) y
eliminar la extensión.
Resultado: se ejecutan los comandos (en este caso un simple 'dir') a través
del cmd.
Resumen: el fallo detectado en Internet Explorer permite saltarse todas las
alertas de seguridad del navegador referentes a ficheros potencialmente
peligrosos, pero ademas, el cliente no recibe información sobre el tipo de
extensión del fichero. Colateralmente, al realizar una petición a un fichero
sin extensión, los filtros perimetrales (que normalmente basan su
efectividad en el tipo de extensión) no bloquearán el fichero, y los
antivirus tampoco. La vulnerabilidad, por lo tanto se considera como MUY
GRAVE pues convenientemente explotada puede resultar en una 'arma' muy
potente para los escritores de virus.
2- Fallo en el proceso de ejecución de archivos descargados
Software afectado: Internet Explorer (probado en Windows 2003 server web
edition)
Impacto: -ejecución no voluntaria de archivos del sistema
La vulnerabilidad anterior permite la ejecución de archivos del sistema sin
necesidad de bajarse ningún binario ni link ni nada parecido.
El problema reside en que, cuando aprovechando la vulnerabilidad anterior,
relizamos una petición a un binario (por ejemplo) como si se tratara de una
CGI, si directamente le pasamos como parámetro un final de string, el
navegador, ni muestra la extensión, ni avisa de que tipo de extensión se
trata ni da aviso alguno de seguridad al usuario. Sin embargo, si el usuario
intenta guardar el archivo, aunque este se almacena sin extensión en el
sistema, si se intenta abrir desde el mismo cuadro de diálogo de descarga,
Internet Explorer intenta abrir el archivo, pero CON LA EXTENSIÓN! Esto
tiene graves consecuencias, porque si en el directorio de descarga, existe
un fichero con el mismo nombre (con la extensión correspondiente), se
ejecutará.
Para aclarar un poco esto, veamos un ejemplo. Supongamos que hacemos una
petición como esta.
http://sitio/cmd.exe?%00
(cmd.exe, puede ser un archivo completamente vacío)
Si intentamos guardar el archivo en el directorio 'system32', nos lo
guardará como 'cmd', pero si acto seguido intentamos ejecutar el archivo, no
intentará abrir 'cmd' sino que abrirá el 'cmd.exe' del sistema...
El principal problema con el que se encuentra un atacante es que ningún
usuario guarda cosas en 'system32'... Sin embargo las 'aplicaciones' que un
intruso puede darle a este fallo son múltiples. Si el atacante conoce la
ubicación de un binario, y consigue que la víctima descargue el archivo al
mismo directorio, conseguirá su ejecución.Este problema también funciona con
links. Los vectores de ataque son por lo tanto múltiples. Por ejemplo, si el
usuario tiene la costumbre de descargar los archivos al escritorio, y el
atacante sabe que existe un link en el escritorio (¿Quien no tiene
alguno...?), puede conseguir ejecutar el programa asociado a dicho link. En
muchos entornos corporativos, los usuarios crean links que les dan acceso
directo a alguna aplicación sin necesidad de validarse (por ejemplo para
Lotus). En definitiva, el atacante puede forzar a que se ejecute algo en el
sistema de la víctima sin su consentimiento.
****************************** AVISO LEGAL
***********************************************
Este mensaje es solamente para la persona a la que va dirigido. Puede
contener
información confidencial o legalmente protegida. No hay renuncia a
la
confidencialidad o privilegio por cualquier transmisión mala/errónea. Si
usted
ha recibido este mensaje por error, le rogamos que borre de su sistema
inmediatamente el mensaje asi como todas sus copias, destruya todas las
copias
del mismo de su disco duro y notifique al remitente.
****************************** AVISO LEGAL
***********************************************
Anti-Spam@Anti-Spam.com
Leer las respuestas