Módulo Samba Symlink Directory Traversal de MSF

  • Posted on: 9 March 2014
  • By: ReYDeS

Este módulo en Metasploit Framework explota una falla de recorrido de directorio en el servidor Samba CIFS (Common Internet File System). Para explotar esta falla, debe ser especificado un directorio que pueda ser escrito. El nuevo directorio creado enlazará al sistema de archivos raíz.

Este problema se genera de la combinación de dos características en Samba, cada uno de los cuales por si mismo son útiles para los administradores, pero en combinación permiten a los usuarios acceder a cualquier archivo sobre el sistema en el que el nombre de usuario logeado tiene permisos de lectura (este no es un problema de escalado de privilegios).

Por defecto Samba se entrega con el parámetro “wide links = yes” el cual permite a los administradores localmente (sobre el servidor) añadir un enlace simbólico dentro de un recurso compartido exportado el cual los clientes SMB/CIFS (Sever Message Block/Common Internet File System) seguirán.

Como un ejemplo, se tiene la siguiente información:

[tmp]
path = /tmp
read only = no
guest ok = yes

El administrador podría añadir un enlace simbólico:

$ ln -s /etc/passwd /tmp/passwd

Y los clientes SMB/CIFS podrían entonces ver un archivo llamado “passwd” dentro del recurso [tmp] que podría ser leído y permitir a los clientes leer el archivo /etc/passwd.

Si el parámetro “wide links” está definido a “no”, cualquier intento de leer este archivo podría fallar con un error de “acceso negado”.

El problema ocurre debido a que Samba permite a los clientes utilizar extensiones Unix (los cuales son también activados por defecto) para crear enlaces simbólicos sobre recursos montados remotamente sobre los cuales se tiene acceso de escritura que apuntan a cualquier ruta sobre el sistema de archivos.

Esto es por diseño, como las aplicaciones ejecutándose sobre clientes Unix pueden tener buenas razones para crear enlaces simbólicos en cualquier lugar sobre el sistema de archivos que tienen acceso de escritura para apuntar a archivos locales (como /etc/passwd).

En las posteriores versiones de samba se tiene el parámetro “wide links” definido a “no” por defecto.

Para la siguiente práctica se utilizará como objetivo de evaluación a Metasploitable2.

Ingresar a la consola de Metasploit Framework.


Buscar el módulo:

> search samba_symlink

Indicar a Metasploit Framework la utilización de este módulo "samba_symlink_traversal".

> use auxiliary/admin/smb/samba_symlink_traversal

Entre las opciones expuestas por este módulo se requiere definir un recurso compartido con permisos de escritura. Una manera de obtener esta información es utilizando el comando smbclient.

# smbclient -L \\192.168.0.16

Identificado el recurso compartido “/tmp/” se procede a definir esta información en las opciones del módulo.

> set RHOST 192.168.0.16
> set SMBSHARE tmp

Ejecutar el módulo del exploit.

> exploit

El mensaje detallado por MSF indica que ahora al acceder al recurso compartido \\192.168.0.16\rootfs\ será factible navegar por el sistema de archivo raíz del objetivo de evaluación.

Se utiliza nuevamente la herramienta smbclient para acceder a este recurso compatido.

# smbclient //192.168.0.16/tmp

Ahora ya se tiene la capacidad de explorar el sistema de archivos raíz del objetivo de evaluación.

Fuentes:

https://www.rapid7.com/db/modules/auxiliary/admin/smb/samba_symlink_trav...
http://www.osvdb.org/62145
http://www.samba.org/samba/news/symlink_attack.html

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Webinar Informática Forense