Hacking Shared Hosting with Symlink

Post on 19-Mar-2017

721 views 0 download

Transcript of Hacking Shared Hosting with Symlink

Hacking de Servidores

Agradecimientos

WHO AM I

@alvarodh5

Advertencia

El contenido y la información que se expone en esta presentación son con objetivos demostrativos, no me hago responsable del mal uso y de los posibles daños ocasionados a terceras personas como consecuencia de esta información, cada persona es dueño de sus actos y de seguir su propia ética.

Información Inicial

¿Objetivo?

Objetivo

¿Problema?

Problema Detected!

Nuestro WordPress a auditar no posee plugins, ni ninguna vulnerabilidad (sin contar 0days).

Tampoco tiene ninguna vulnerabilidad a nivel de infraestructura (servidor FTP, DDBB etc…).

Destacar que el administrador de la web tiene conocimientos en hacking y no es viable realizar un ataque dirigido.

El sitio está alojado en un hosting compartido.

Problema Detected!

¿Alguna idea?

¡Habemus Solución!

SYMLINK

Empecemos de 0…

¿Qué es Symlink?

¿Para qué se utiliza?

Ejemplos

¿Qué es Symlink? ¿Para qué se utiliza?

Symlink proviene de Symbolic Link (enlace simbólico),que sirve para hacer referencia a un directorio o fichero que se encuentra en un lugar distinto.

Modificar el symlink significará reflejarlo en el original, pero, si lo eliminamos, el auténtico permanecerá intacto. Esto último, no ocurre con el hardlink, eliminándose ambos.

En resumen, los enlaces simbólicos indican un acceso a un directorio o fichero que se encuentra en un lugar diferente (“Acceso Directo”).

Ejemplos

ln –s RUTA_ORIGINAL RUTA_SYMLINK

El 6 de febrero, un hacker cerró el 20% de la Dark Web, siguiendo esta técnica

¿Qué necesitamos?

NUEVA VÍCTIMA

¿Para qué?

¿Cómo buscamos la victima?

No nos sirve cualquier objetivo, simplemente hemos aumentado considerablemente el scope, pero necesitamos una web en su propio servidor.

Para descubrir nuevos objetivos usaremos Reverse IP LOOKUP que se encarga de revisar los registros A de los DNS de muchos dominios (obviamente ya analizados) encontrando webs con las que comparte servidor.

Cabe mencionar, que el servidor debe ser Apache

¿Cómo buscamos la victima?

Practice Time!

Buscando nueva víctima

Buscando nueva víctima

Nueva víctima

Hacking Time

Access Granted!

Access Granted!

Profundizando I

Profundizando II

¿Y ahora…?

Puesto a que tenemos el contenido del /etc/passwd tenemos las rutas completas de nuestros “vecinos”, ahora vamos a intentar acceder, pues ya tenemos acceso a nuestro a una reverse shell.

Ya queda menos…

Ya queda menos…

Symlink Time

Symlink Time

Symlink Time

Symlink Time

¿Demasiados directorios?

Opciones

Symlink Time

Opción A Hay scripts automatizados para dumpear todos los configs de CMS conocidos sabiendo las rutas (/etc/passwd), puesto a que nuestro sitio es un WordPress, esta opción nos valdría.

Symlink Time

Opción B Buscar en el servidor nuestro sitio y sólo acceder a ese, para ello, antes debemos sacar el nombre del directorio.

Symlink Time

Symlink Time

TIPS

En los casos de que de forbidden, puedes subir un .htaccess con las siguientes instrucciones:

Options Indexes Listado de directorios FollowSymlinks Seguir Symlink AddType txt .php AddHandler txt .php Le dice al navegador

como debe tratar el fichero.

Defendiéndonos del Symlink

Esta vulnerabilidad se soluciona deshabilitando la función del servidor:

FollowSymlink Open_BaseDir

CTF

The End