Skip to content

Latest commit

 

History

History
208 lines (122 loc) · 10.9 KB

fileUpload.md

File metadata and controls

208 lines (122 loc) · 10.9 KB

VULNERABILIDAD FILE UPLOAD

Es un tipo de vulnerabilidad que ocurre en aplicaciones web en donde existe la posibilidad de subir un archivo sin que sea comprobado por un sistema de seguridad; por ejemplo, una web shell en .php y ser ejecutada en el mismo servidor.

PELIGROS

El atacante una vez que haya ganado acceso al servidor puede colocar una página de phishing en el sitio web o incrustar malware, así como también puede ser capaz de causar un ataque de Denegación de Servicio (DoS) al subir archivos de gran tamaño.

¿Qué es un 'Reverse Shell'?

Una reverse shell, también conocida como shell inversa, es una especie de "servidor" en donde el atacante ejecuta un software que queda a escucha de solicitudes de conexiones en un determinado puerto, la máquina objetivo se conecta al servidor y entonces es así como el atacante gana una shell para ejecutar comandos remotamente (sin interfaz gráfica).

Atacante: Inicia un servidor a escucha en el puerto 4444.

Víctima: Se conecta al servidor.

Atacante: Obtiene una shell remota de la máquina víctima.


Método GET y POST HTTP

El protocolo HTTP es utilizado para conectar un cliente a un servidor a través de métodos de petición para ejecutar la acción que se desea realizar.

Método GET: Se utiliza para pedir información al servidor, los datos son enviados de forma visible en la URL.

Por ejemplo:

http://www.myweb.com/action.php?nombre=wilson&apellidos1=smith

El atacante lo que hace aquí es interceptar la petición HTTP y luego la modifica para cambiar la extensión del archivo.

Método POST: Se utiliza para subir un archivo o loguearse en el sitio web, los datos son enviados de forma codificada (no visible); siendo está la más segura.

Por ejemplo:

http://www.myweb.com/action.php

WEEVELY

Weevely es una herramienta de administración de webshell escrita en python, sirve para crear backdoors en .PHP y contiene más de 30 módulos para testear tareas administrativas; mantener acceso, elevar privilegios y difundirse en la red. Cabe recalcar que un black hat podría utilizar esta vulnerabilidad para obtener acceso de administrador y desconfigurar la web, ya sea borrar la base de datos como un defacement.

Instalar herramienta en Debian:

sudo apt-get install weevely

A continuación, haré uso de la máquina Metasploitable2 ya que viene incorporada con vulnerabilidades para explotar en un entorno controlado y legal.

1

Servidor local: http://192.168.25.128/dvwa/login.php

DVWA (Damn Vulnerable Web Application) es una aplicación web PHP/MySQL vulnerable. Su objetivo es ayudar a los profesionales de seguridad a probar sus habilidades y herramientas en un entorno controlado y legal.

Debajo se encuentran las credenciales.

Usuario: admin

Contraseña: password

2

Si nos dirigimos a seguridad de DVWA, podemos establecer el nivel del mismo, escogeré el nivel bajo para obtener acceso solamente usando weevely.

3

Lo siguiente es abrir una nueva terminal y crear la puerta trasera (backdoor) con weevely que nos dará acceso al servidor:

weevely generate <contraseña_de_nuestro_backdoor> <nombre.php>

4

Regresamos a la aplicación web e iremos a donde dice "Upload" y subimos nuestro backdoor generado.

5

El backdoor ha sido subido exitosamente. Devuelve una ruta el cual debemos de copiar y unirla con la URL del servidor, quedaría de la siguiente forma:

http://192.168.25.128/dvwa/hackable/uploads/backdoor.php

Nuevamente nos dirigimos a la terminal y ejecutamos el siguiente comando:

weevely <URL> <contraseña_del_backdoor>

Esto nos dará acceso remoto al servidor:

6

7

Si quisieramos hacerlo manual, Kali trae consigo una colección de webshells en el directorio /usr/share/webshells/ a utilizar. En este caso, se hará uso de una reverse shell en PHP.

cp /usr/share/webshells/php/php-reverse-shell.php .

8

Luego editamos el código con un IDE, por ejemplo nano o vim. En la variable $ip introducimos la IP local de nuestra máquina atacante y en la variable $port el puerto escucha; que puede ser cualquiera.

9

Subimos nuestra reverse shell y copiamos la URL -> http://192.168.25.128/dvwa/hackable/uploads/php-reverse-shell.php

10

Abrimos una nueva terminal y ponemos a escucha el puerto 4444 con Netcat:

nc -lvp 4444

11

Recargamos la URL que copiamos y al regresar a la terminal ya tendremos acceso al servidor:

12

WEEVELY + BURP SUITE

Burp Suite es una poderosa herramienta escrita en Java que permite realizar pruebas de seguridad de aplicaciones web, cuenta con una versión gratuita y de paga. Su función básica se encuentra en el servidor proxy que permite interceptar el tráfico entre el navegador y aplicación destino, el cual posibilita inspeccionarlo y modificarlo.

Es compatible con diversos sistemas operativos como Windows, GNU/Linux, Mac: https://portswigger.net/burp/communitydownload

Tutoriales de Burp Suite desde cero: https://www.manusoft.es/tutorial-burp-suite/

Esta vez subiré la seguridad del servidor DVWA a medio. Lo siguiente será configurar un servidor proxy para que registre todo el tráfico que se genere en el navegador web, para ello debemos ejecutar Burp Suite e ir a la pestaña de Proxy -> Options y verificar si tenemos el proxy como se muestra a continuación:

13

Luego en el navegador, por ejemplo Firefox ir a Preferencias -> Avanzadas -> Proxy de Red -> Configuración -> Configuración Manual del Proxy

En Proxy HTTP escribir 127.0.0.1, en Puerto escribir 8080 y tildar el mismo proxy para todo:

14

En Burp Suite debemos verificar en la pestaña Proxy -> Intercept que esté en Intercept is on:

15

Cuando comenzamos hacer peticiones en el navegador, como por ejemplo ir a una página web, Burp Suite debe Interceptar la petición y allí podemos modificarla. Si volvemos a subir el mismo backdoor nos tirará un error porque al aumentar la seguridad solo nos permite subir un archivo con extensión .jpg.

16

Al backdoor.php lo renombramos a .jpg y volvemos a subirlo:

17

La petición ha sido interceptada, ahora solo quedaría con renombrar el backdoor (línea 20) a .php desde Burp Suite:

18

Daremos clic en Forward para redireccionar la petición al servidor y que esté la procesé:

19

Seguidamente, repetimos los pasos en nuestra shell con weevely:

weevely <URL> <contraseña_del_backdoor>

20

Por último, aumenté la seguridad en alta y lo único que hay que hacer es renombrar el backdoor.jpg a backdoor.php.jpg y volver a subirlo:

21

22

Al presionar nuevamente en Forward el archivo se subió exitosamente, por lo cual podemos repetir los mismos pasos anteriores para obtener el acceso solamente que la URL iría hasta .php y no .jpg.

23

24

Es una vulnerabilidad muy peligrosa que permite a un atacante apropiarse de una página web por medio de un reverse shell o puerta trasera. Como seguridad recomiendo que nunca permitan que los usuarios puedan subir arhivos ejecutables (.php, .exe, .bat, .sh, etc), agregar una lista negra como sistema de protección para analizar el archivo y la extensión.


ADVERTENCIA

Esto es con fines de aprendizaje, no nos hacemos responsables ni el fundador, ni el creador del tema del mal uso de esta herramienta u información.

R3LI4NT