SEGURIDAD EN HOSTINGS COMPARTIDOS – PARTE II

Feb 4th, 2010 | Posted by | Filed under Redes, Seguridad

Siguiendo en la línea de estudiar LAMPS, shared hostings, etc, en este artículo vamos a hablar de cómo funciona un hosting compartido desde el punto de vista del cliente y qué deberíamos mirar para tener una idea de si su nivel de seguridad es adecuado o no. Antes de leer este post, sería conveniente que mirases la primera parte.

Los servicios de hosting que he mirado para escribir este post son 000freeweb.com y freeweb7.com.

Lo primero será abrirnos una cuenta, para lo que necesitaremos una dirección de correo electrónico a la que nos llegarán los enlaces de confirmación y activación de la cuenta, lo típico.

Tras crear y activar nuestra cuenta, tendremos permisoso para subir ficheros php, así que lo aprovecharemos para subir uno que nos dé toda la información básica del servidor llamando a phpinfo(). Es decir, un archivo php con el siguiente contenido:

<?php
phpinfo();
?>

Y el resultado sería algo así:

Lo primero que deberíamos mirar es la versión de php, con la que podremos hacer una búsqueda de exploits. Dentro del código de los exploits aparecerán llamadas a funciones que deberíamos tener deshabiltadas (ver debajo). Aparte, tendremos acceso a la lista de módulos del apache, que aunque normalmente no lleve a nada también es posible que permita encontrar alguna vulnerabilidad.

He marcado la celda que contiene el valor disable_functions, que es una lista de funciones deshabilitadas en php y uno de los parámetros más importantes a revisar. Podéis comparar las que os salgan con la lista (actualizada) de éste artículo. Es importante fijarse en que aparezcan todas, aunque a priori no parezcan imprescindibles. Por ejemplo, existe un exploit para la versión php 5.2.11 que utiliza symlink para conseguir una shell … Así pues, es muy importante verificar que estas restricciones se cumplen estríctamente.

Otro de los valores a mirar es open_basedir, que marca los directorios a los que tenemos acceso. Una configuración típica sería que aparezca algo como esto:

open_basedir /var/www/html/usuario/:/var/www/tmp/

Aunque en ocasiones esta directiva no se usa pero, en su lugar, aparece safe_mode on y se usan otro tipo de restricciones.

Una vez comprobados a qué directorios tenemos acceso, deberíamos ver cuál es su contenido y si podría ser relevante para un atacante. En el siguiente ejemplo, mostramos el contenido del directororio /tmp:

Como podéis ver, aparecen unos ficheros cuyos nombres son … ¿los valores de las cookies de las sesiones? Si bien es cierto que no he conseguido explotarlo, porque va todo hasheado, la cosa es que tiene mala pinta …

En el mismo hosting, podemos examinar el contenido de /usr/lib/php/, que también está abierto en open_basedir:

De hecho, podemos leer los archivos de este directorio:

Otra prueba que podemos hacer es subir una shell a nuestro hosting compartido. En principio, la buena práctica sería tener un antivirus que en tiempo real examine los archivos subidos en busca de virus, pero esto puede ser muy costoso en recursos y normalmente estará deshabilitado:

En este caso, como podéis ver, he elegido subir una versión de la famosa shell c99. Una vez subida nuestra shell, podemos probar a ejecutar comandos y saltar por los directorios. Nada de esto debería funcionar.

De todas formas, es siempre mejor verificar que disable_functions es RESTRICTIVO antes que creerse los resultados de la shell (por ejemplo, la versión que he subido de c99 no usa popen() para ejecutar comandos en php, sin embargo tengo una de r57 que sí lo usa).

Y con esto, acaba nuestro examen rápido de la seguridad en un hosting compartido.

Saludos y hasta pronto.

Share
  1. read what he said
    Mar 11th, 2015 at 19:42
    #1
  2. invisalign Attachments pictures
    Jun 4th, 2015 at 19:48
    #3
  3. Christine
    Jun 11th, 2015 at 04:29
    #5
  4. pruebe lo que dice
    Sep 7th, 2015 at 06:51
    #9
  5. rose hip
    Sep 22nd, 2016 at 13:57
    #10
  6. mimisol
    Oct 10th, 2016 at 21:01
    #11
Comments are closed.