martes, marzo 15, 2016

Un HTTP Redirect no te libra de securizar un servidor web

Una de las formas sencillas para "quitar" un servidor web de Internet es la de la redirección del tráfico hacia otro servidor web. Este sistema te permite seguir aprovechándote de todo el tráfico que estuvieras recibiendo en el servidor y usarlo para promocionar los servicios en el nuevo. Sin embargo no sale gratis esta forma de conservar el tráfico, ya que debes seguir gestionando la seguridad del activo que dejas expuesto sólo para hacer la redirección y, si no lo haces, se puede convertir en un punto de inseguridad para la red.

Figura 1: Un HTTP Redirect no te libra de securizar un servidor web

Para que veáis un ejemplo, os voy a poner el caso de un servidor de Apple que hace una redirección a un dominio nuevo. El dominio se llamaba "ShopNow.Apple.com", pero si te conectas a él te redirige a "iContact.Apple.com", un servicio de e-mail marketing. Si hacemos una prueba muy sencilla con un Error 404 veremos que iContact está corriendo sobre un servidor Apache montando en Ubuntu.

Figura 2: Error 404 en iContact con info de Apache/2.4.7 sobre Ubuntu

Sin embargo, si miramos las cabeceras del servidor ShopNow veremos que se trata de un IIS 7.5 que está haciendo la redirección. Basta con forzar un error de Request Filtering o cualquiera no controlado para que obtengamos una respuesta del servidor IIS.

Figura 3: Error 404 controlado por Request Filtering en IIS

La redireción se está haciendo a nivel de servidor web, pero si con forzar cualquier error se rompe dicho proceso de reencaminamiento hacia el nuevo dominio y se puede jugar con este servidor. En este caso, como es un servidor que parece abandonado para ser solo una redirección, podemos encontrar con facilidad que tiene el bug de IIS Short Name sin parchear.

Figura 4: El fichero robots.txt aún está en el servidor web

Para hacer la prueba, podemos comprobarlo haciendo peticiones con mensajes de errores con un fichero que sepamos que sí que existe, por ejemplo robots.txt. Cuando pedimos un fichero en formato 8:3 que cumpla con el patrón de robots.txt recibimos un 404.

Figura 5: Respuesta TRUE con el bug de IIS Short Name

Cuando pedimos un fichero que no existe, obtenemos un mensaje distinto, un HTTP 200 con una página de respuesta en blanco. Este no es el primer servidor IIS de Apple con este bug.

Figura 6: Respuesta FALSE con el bug de IIS Short Name

Este servidor no sería ningún problema si estuviera limpio y se hubiera hecho un borrado de todos los programas que tuviera originalmente el sitio de ShopNow, pero como podemos ver usando el bug de IIS Short Name, no es así y hay más ficheros en el servidor. Aquí vemos que obtenemos un HTTP 404 cuando pedimos un archivo que comienza por "callb".

Figura 7: Existe algún fichero/directorio que cumple con el patrón "callb*"

Mientras que si pedimos uno que comience por "calla" obtenemos un HTTP 200, indicando que no hay ningún fichero en el servidor web que comience por esa cadena.

Figura 8: No existe ningún fichero/directorio que cumpla con el patrón "calla*"

Al final, poner una redirección para reutilizar el tráfico que te llegue está bien, pero eso no te evita tener que hacer el trabajo de seguridad con el activo que dejes. Si eliminas un sitio, debes eliminar todo su contenido pues el redirect no te va a salvar de todo. Siguen expuestos a Internet y hay formas de meterles mano.

Saludos Malignos!

12 comentarios:

mandarino dijo...

No te cansas de sacarle jugo a esto o que? Como has nombrado a esta técnica? Hoy te has marcado un chemapost en toda regla. Felicidades campeon

Chema Alonso dijo...

@mandarino, es lo que tiene el hacking. El diablo está en los detalles y siempre es posible darle una vuelta de tuerca más a todos los entornos... }:)

Saludos!

mandarino dijo...

Tu rosca ya esta mas pasada de vuelta que la de los muebles de Ikea

Chema Alonso dijo...

@mandarino, y yo qué creo que aún me queda mecha para rato... ¿Apostamos? }:)

Saludos!

Jaime García Pérez dijo...

Este bug sin duda es un quebradero de cabeza. Quitar los shortnames (NTFS), net 4.0 con urlscan...y . Aún así, algún problema que otro os dará. Sacan petróleo :|
Lo de los repsonses.. sin duda alguna... una vez puestos.. quedan ahí para la posteridad (y el servidor, sus aplicaciones, etc,etc,etc....). Lazy mode ON.

mandarino dijo...

Desde luego que te queda mecha, para cuando un 'Un HTTP 404 no te libra de securizar un servidor web', o un 'No publiques FTPs sin autenticacion en internet' o un 'No publiques webcams sin autenticacion en internet' o un 'No publiques gestores de correo sin autenticacion en internet' o un 'No publiques gestores de contenido sin autenticacion en internet' o un 'No publiques fotos sin Latch sin autenticacion en internet' o un 'No publiques tus passwords en internet' o un 'No naveges sin Latch internet' o un 'No publiques Latch sin Latchear en internet'...

Anónimo dijo...

Mandarino eres un troll
Out of here

Chema Alonso dijo...

@mandarino, este post va de que hay un bug en un servidor IIS de Apple que ya hemos reportado para que corrijan y que, como en casos anteriores, corregirán. Puede que a ti no te haya gustado la explicación de cómo lo encontré, pero a mí me ha parecido digno de un post y lo he publicado.

Sobre tus ideas de posts, deberías decírselas a los que publican servidores MongoDB sin autenticación, servidores VNC sin autenticación, o gestores de identidad sin 2FA.

Por lo demás, hay millones de sitios en Internet, seguro que hay muchos que pueden llenar tus ratos de aburrimiento antes que leer mis cosas. Disfruta tu tiempo.

Saludos!

Anónimo dijo...

Este mandarino es demasiado ácido, jejeje.

(Saca una bomba de humo y huye haciendo la croqueta.)

Anónimo dijo...

Realmente aprecio mucho que te tomes tu tiempo para publicar en el blog siempre, es una enseñanza cada día, como "asistir a clase" Espero algún día ser tu alumno... :)

Anónimo dijo...

Me alegro de que no hayas borrado los posts del troll de mandarino.Dice mucho de ti dejarlos

A mi me parece interesante, voy a investigar los links que pones the request filtering y demás.

Gracias por las enseñanzas diarias.

pi dijo...

Entiendo que no le gusten Los post a mandarino, pero Es simple, no habras la pagina y ya esta. Por ahora Chema no cobra, solo informa a su manera ( buena o mala )

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares