26 ago 2013

Shell Python Weevely en servidores vulnerados (y II)

En los artículos anteriores vimos cómo se vulneraba un servidor para alojar Phishing de Mercado Pago a través de Shell PHP y ahora profundizaremos sobre una Shell Python que fue encontrada en el mismo servidor y seguramente subido por algunos de los delincuentes que lo habían atacado.

Se trata de Weevely - Stealth Tiny Web Shell, un proyecto de software libre desarrollado en Python que permite control total del servidor a través de una framework muy fácil de configurar y utilizar. Si bien esta herramienta es utilizada por los delincuentes, no cabe duda de su utilidad para realizar Penetration Test sobre servidor web.

Como dijimos, el mismo había sido encontrado en el servidor vulnerado pero para realizar las pruebas, lo he instalado en un servidor propio. Para ello simplemente hay que descargar el código fuente y siguiendo el tutorial se puede instalar fácilmente. Es recomendable contar con Python 2.7 ya que en versiones 2-4 a 2.6 se puede tener problemas con el módulo OrderedDict.

Weevely cuenta con dos módulos principales: el framework que se utiliza desde el equipo atacante y la Shell propiamente que se instala en el equipo víctima, que en este caso es un sólo archivo PHP.

Luego de instalar la herramienta lo primero que se debe hacer es generar el archivo con la Shell PHP y colocarle una contraseña de acceso:

/weevely.py generate 1234

El archivo generado cambia cada vez, está ofuscado y no es detectado por ningún antivirus. Una vez generado, el archivo debe subirse al servidor víctima. Para ello se puede utilizar cualquier técnica conocida y/o explotar alguna vulnerabilidad en el mismo. Con esto se finaliza el proceso de instalación

Ahora es hora de conectarse a la víctima. En este caso lo único que hay que hacer es invocar el servidor y el lugar donde se alojó el archivo PHP, junto a la contraseña.

./weevely.py http://192.168.63.128/shell-weevely.php 1234

Como puede verse, luego de la conexión, aparecemos dentro del servidor víctima, en el directorio "/var/www" logueado con el usuario "www-data". A partir de ahora Weevely ofrece una amplia serie de módulos, como por ejemplo ":net,ifaces" para ver las interfaces de red conectadas al servidor.
Con el comando ":help" se puede ver todos los comandos y módulos disponibles. Aquí también es recomendable leer el tutorial de la herramienta.

A partir de aquí se puede subir otros archivos al servidor vulnerado, con el comando ":file.upload" o descargarlo con ":file:download":
Ver los usuarios del servidor con el comando ":file.read /etc/passwd" o con ":audit.etcpasswd".
Un módulo interesante es ":audit", que permite "auditar" el sistema en busca de información que pueda resultar útil para realizar otros ataques y que también podría ser utilizado por un Pentester para encontrar vulnerabilidades en el servidor. Con este módulo se podrá por ejemplo encontrar errores en la configuración de los archivos y en sus permisos. En este caso el directorio "/etc" o "/var/log" tiene permisos de lectura y podría ser visualizado por un atacante.
Otras opciones interesante es poder obtener dumping de base de datos o de montar proxies en el servidor vulnerado pero, eso lo dejo para que lo investiguen uds.

Finalmente, lo mostrado sirve simplemente para tomar conciencia del porque es necesario realizar auditorias periódicas de los servidores web así como un hardening apropiado.

Cristian de la Redacción de Segu-Info

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!