Desde una webshell hasta la cocina - By p0is0n-123

Iniciado por Pr0ph3t, Abril 21, 2012, 11:44:38 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Hoy, me gustaría hablar básicamente de como partiendo de una webshell operativa, poder llegar a obtener una conexión al servidor bajo los máximos privilegios (superusuario).



El hecho de partir de una webshell hasta tener un control total del servidor no es solo un camino largo, sinó que también está formado por un factor a la hora de configurar y abastionar el servidor por parte de los administradores.

Partiremos de un entorno (Windows+ Apache) del que conocemos los datos gracias a un error forzado en la aplicación web. Las imágenes se han recogido en mi máquina virtual de Windows, por eso que algunas partes serán "virtuales" y no llegaremos a probarlas.


1. - El primer peldaño: Recolección de datos

Suponemos que tenemos a nuestra disposición una webshell que previamente hemos introducido en el servidor mediante algún fallo de seguridad en la aplicación web.

Debemos de recaudar la mayor cantidad de datos posibles para saber cuál es la seguridad del servidor en cuanto a directivas en la configuración (Safe Mode de php, Mod Security para Apache, etc).



Lo que más nos interesa:
- Software
- Uname -a
- Safe-mode




2. - Pruebas de concepto

Llegados a este apartado y a este punto, junto con la información recopilada, debemos de saber si tenemos posibilidad de ejecutar comandos en el servidor. Haremos un simple listado de directorios y archivos.



En caso de que funcione saltaremos al paso 4. De lo contrario tendremos una directiva impidiendo la ejecución de comandos y debemos de evadirla sea como sea.

3. - La gran evasión

¡No podemos hacer nada, el safe mode está activado! Tranquilo, hay una "solución". PHP carga la configuración desde php.ini situado en /etc/ a no ser que, en la carpeta en la cual ejecutamos la webshell exista un archivo php.ini preconfigurado y subido por nosotros.

Otro error básico es, activar el safe mode y deshabilitar las funciones de ejecución de comandos pero no deshabilitar funciones como ini_set. Así que, es posible usarlo para eliminar las funciones preconfiguradas para estar bloqueadas.

En cuanto a Mod Security es posible desactivarlo en una carpeta mediante un .htaccess. Y bueno, más de lo mismo (para Apache 2):

Código: php
<IfModule mod_security2.c>
   SecRuleEngine Off
</IfModule>




4. - Abriendo la puerta

Una vez ya hemos logrado ejecutar comandos debemos de descargar a un directorio en el cual tengamos los mayores permisos netcat. Aprovecho también para dejarlo para descarga compilado aquí.

No voy a explicar como "descargar o compilar" (y eso que una linea más arriba está preparado para windows) netcat puesto que a estas alturas debería de estar más que claro.



Ahora solo falta que nos conectemos y tendremos una shell.




5. - Haciendonos crecer

Este paso consiste en recopilar la mayor información sobre la versión del sistema operativo y buscar alguna forma de escalada de privilegios.

Lo podemos hacer mediante tareas programadas que en Windows XP se ejecutan con "demasiados" permisos, también disponemos de exploits como el PoC publicado recientemente.

En caso de un servidor Linux buscaremos un local root exploit que nos permita la escalada de privilegios o de lo contrario buscaremos una mala configuración en servicios como Apache o MySQL para llegar a ejecutar algún comando "subidito de tono". }:))


Espero que os haya gustado. ¡Gracias a todos los lectores! }:))

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Autor: p0is0n-123
Twitter: @The_Pr0ph3t
[email protected]

Gracias por el aporte,
pero todavia no tengo claro el concepto de webshell, Que es una webshell?
como usarla??


...Saludos --- :D

Septiembre 18, 2012, 07:50:02 AM #2 Ultima modificación: Septiembre 18, 2012, 01:57:24 PM por Pr0ph3t
@zoro248 una webshell es un script que se utiliza para poder ejecutar comandos remotos en una web o servidor. Pudiendo así manejar archivos, rootear servidores, obtener información del sistema...

Un saludo.
Twitter: @The_Pr0ph3t
[email protected]

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
@zoro248 una webshell es un script que se utiliza para poder ejecutar comandos remotos en una web o servidor. Pudiendo así manejar archivos, rootear servidores, obtener información del sistema...

Un saludo.
Pero para poder usar en una webshell tienes que instalarla en la pagina que a  su vez a la pagina tienes que entrar como administrador o no??

algo asi como intalar un backdoor no?