Defacement y vulnerabilidades en funciones de FileUpload

Clase 8 de 14Curso de Hacking: Aplicaciones Web Server Side

Resumen

¿Qué es un defacement y cómo se lleva a cabo?

El defacement es una técnica de hacking que consiste en cambiar la apariencia visual de un sitio web aprovechando vulnerabilidades existentes. Es un acto comúnmente orientado a enviar un mensaje o demostrar una falla de seguridad. En esta clase, exploraremos cómo una función de carga de archivos (FileUpload) mal protegida puede utilizarse para realizar un defacement.

¿Cómo utilizar Metasploitable 2 para practicar vulnerabilidades?

Metasploitable 2 es una máquina virtual diseñada para probar habilidades en ciberseguridad. Para comenzar, necesitas:

  1. Iniciar la máquina virtual de Metasploitable 2.
  2. Obtener su dirección IP.
  3. Ingresar la IP en un navegador.

Dentro de Metasploitable 2, utilizaremos Damn Vulnerable Web Application (DVWA) para explorar vulnerabilidades. Inicia sesión con el usuario admin y la contraseña password para acceder a sus funcionalidades.

¿Qué son las vulnerabilidades en FileUpload?

La función FileUpload permite a los usuarios subir archivos a una aplicación web. Sin embargo, cuando no está debidamente protegida, esta función puede permitir subir archivos maliciosos como scripts PHP, lo cual puede ser aprovechado para ejecutar comandos no autorizados en el servidor.

¿Para qué se utilizan las web shells?

Una web shell es una herramienta que permite a un atacante ejecutar comandos en un servidor remoto a través de una interfaz web. Esto brinda un control significativo sobre el sistema comprometido. En este caso, subimos una web shell llamada danish.php:

<?php
    // Ejemplo de código para una web shell básica
    echo "Bienvenido a mi web shell";
    system($_GET["cmd"]);
?>

Esta shell permite ejecutar comandos en el servidor simplemente ingresando una URL con parámetros específicos.

¿Cómo se lleva a cabo un defacement?

Tras subir nuestra web shell sin obstrucciones, accedimos al directorio donde fue almacenada y ejecutamos el archivo subido para iniciar con el defacement. Este proceso constó de los siguientes pasos:

  1. Ingresar a la URL del archivo danish.php subido.
  2. Usar la web shell para navegar por el directorio del servidor.
  3. Identificar y modificar el archivo index.php dentro del directorio upload.
  4. Ejecutar la opción "deface" para aplicar los cambios visuales.

Ejemplo de defacement

Al aplicar el defacement, el sitio fue personalizado con elementos como un GIF o logotipo, además de mensajes y frases a elección del atacante.

¿Cuáles son los riesgos de las vulnerabilidades en FileUpload?

Estas vulnerabilidades representan un riesgo severo, ya que permiten:

  • Subir y ejecutar scripts maliciosos en el servidor.
  • Acceso no autorizado al sistema de archivos.
  • Escalar privilegios y tomar el control total del servidor.
  • Realizar ataques avanzados como denegación de servicio o envío de correos maliciosos.

La falta de protección adecuada convierte a los sistemas en objetivos fáciles para ataques cibernéticos. Aunque el ejemplo utilizado en este tutorial no presenta protecciones, es crucial aprender a identificar y proteger estas vulnerabilidades en entornos reales.

¿Qué sigue?

Para continuar profundizando en el mundo de la ciberseguridad, en la próxima clase exploraremos las técnicas de inclusión de archivos, tanto de forma local como remota, un tema que promete enriquecer nuestras habilidades y conocimiento. ¡Nos vemos allí para seguir aprendiendo juntos!