Ir al contenido principal

Descubre cómo eludir efectivamente los filtros de carga de archivos en aplicaciones web con nuestra guía completa.

En esta entrada de blog, exploraremos técnicas avanzadas para eludir los filtros de carga de archivos en aplicaciones web. Estos filtros están diseñados para evitar la carga de archivos maliciosos, pero con el enfoque correcto, pueden ser eludidos. Esta guía tiene como objetivo proporcionar un recorrido detallado y paso a paso sobre cómo cargar archivos maliciosos para comprometer un servidor web.

Configurando el entorno

Antes de sumergirnos en los aspectos técnicos, es esencial aclarar que todas las actividades discutidas aquí se realizan en un entorno de laboratorio controlado usando máquinas virtuales. Esta práctica es únicamente con fines educativos, y tratar de replicar estas acciones en sistemas en vivo sin permiso es ilegal y poco ético.

Comenzamos con dos máquinas virtuales: la máquina objetivo, que pretendemos comprometer, y la máquina atacante, desde la cual ejecutaremos nuestros comandos. Procedamos identificando la dirección IP de la máquina objetivo.

Encontrar la dirección IP del objetivo

Para descubrir la dirección IP de la máquina objetivo, podemos usar el comando de Linux netdiscover. Ejecutar este comando en modo superusuario nos permite escanear la red en busca de dispositivos activos.

sudo netdiscover -r 192.168.15.0/24

Este comando escanea el rango de direcciones IP de 192.168.15.0 a 192.168.15.255. Para determinar nuestra propia dirección IP, podemos usar el comando ip a, que nos ayudará a identificar el rango correcto para escanear.

ip a 

Estableciendo comunicación

Una vez identificada la IP del objetivo, podemos comprobar la conectividad utilizando el comando ping. Este comando envía paquetes al objetivo para confirmar que es alcanzable.

ping -c 5 192.168.195.14

Un ping exitoso indica que podemos comunicarnos con la máquina objetivo, lo que nos permite continuar con el reconocimiento.

Escaneo de puertos abiertos

A continuación, necesitamos escanear el objetivo en busca de puertos abiertos para identificar servicios que puedan ser explotables. Usaremos nmap, una poderosa herramienta de escaneo de redes, para realizar esta tarea.

sudo nmap -sS -sV 192.168.195.14

Este comando realiza un escaneo sigiloso para identificar puertos abiertos y los servicios que se ejecutan en ellos. Por ejemplo, podríamos descubrir que el puerto 22 (SSH) y el puerto 80 (HTTP) están abiertos.

Explorando la aplicación web

Con el puerto 80 abierto, podemos acceder a la aplicación web a través de un navegador. Ingresamos el dominio o la dirección IP del objetivo para ver qué presenta.

Si la aplicación tiene una página de inicio de sesión, podríamos querer explorar su funcionalidad en busca de posibles vulnerabilidades. Un enfoque es inspeccionar la página en busca de directorios y archivos ocultos usando una herramienta como gobuster.

gobuster dir -u http://darkhole.local -w /path/to/wordlist.txt

Este comando escanea la aplicación web en busca de directorios y archivos ocultos, lo que puede proporcionar información valiosa para una mayor explotación.

Encontrar vulnerabilidades

A medida que exploramos la aplicación, podemos descubrir varios archivos y directorios que están mal configurados o contienen información sensible. Por ejemplo, si encontramos un directorio etiquetado como upload, esto podría indicar una funcionalidad de carga de archivos.

Probando tipos de archivos

Cuando lidiamos con una función de subida de archivos, debemos probar qué tipos de archivos son aceptados. A menudo, los sistemas restringirán las cargas a ciertos formatos, como .php .js .docx entre otros. Sin embargo, podemos intentar cargar diferentes tipos de archivos para ver qué permite el servidor.

Si podemos subir correctamente un archivo de texto, podemos intentar subir un archivo PHP cambiando su extensión para eludir las restricciones. Por ejemplo, renombrar un archivo malicious.php a malicious.phtml podría permitirle pasar por el filtro.

Explotando la carga de archivos

Una vez que encontremos una forma de cargar un archivo, podemos usar un shell web o un shell inverso para tomar control del sistema objetivo. Un shell web proporciona una interfaz basada en web para ejecutar comandos, mientras que un shell inverso se conecta a nuestra máquina atacante.

Creando el shell inverso

Para nuestro shell inverso, podemos utilizar un script de Pentest Monkey. Este script puede ser modificado para apuntar a la IP de nuestra máquina atacante y a un puerto especificado para la conexión.

Después de modificar el script, lo cargamos en el servidor objetivo. Luego, preparamos un escuchador en nuestra máquina atacante usando netcat.

nc -lvp 9001

Cuando ejecutamos el script cargado en el servidor objetivo, debería conectarse a nuestro escuchador, otorgándonos acceso al shell.

Escalación de privilegios

Con acceso al shell, podemos explorar el sistema más a fondo. Debemos verificar archivos con el bit setuid activado, lo que nos permite ejecutar comandos con privilegios elevados.

find / -type f -perm -4000 -print 2>/dev/null

Identificar un archivo que pueda ser ejecutado con privilegios de superusuario significa que podemos intentar escalar nuestro acceso. Manipulando el entorno o el archivo en sí, podemos obtener acceso root.

Acceso a información sensible

Una vez que escalamos nuestros privilegios con éxito, podemos navegar a directorios sensibles como /root para encontrar información crítica, como archivos de contraseñas o banderas.

cat /root/flag.txt

Este paso final revela la bandera, confirmando nuestra explotación exitosa de la máquina objetivo.

Conclusión

Esta guía ha delineado el proceso de eludir filtros de carga de archivos y explotar aplicaciones web. Es crucial recordar que estas técnicas deben ser aplicadas solo en contextos de hacking ético, como pruebas de penetración con permiso explícito.

A medida que continuamos aprendiendo y practicando estas habilidades, podemos comprender mejor las vulnerabilidades que existen en las aplicaciones web y cómo protegernos contra ellas. Si disfrutaste de esta guía, considera suscribirte para más contenido sobre ciberseguridad y hacking ético.

Si deseas saber mas aqui esta un video completo de como ejecutar esta tecnica

¡Mantente seguro y ético en tus esfuerzos de hacking!

Creado con la assistencia de IA: VideoToBlog

Comentarios

Entradas populares de este blog

La Alerta del Gobierno de EE.UU. sobre el Envío de Mensajes de Texto

Photo by Markus Spiske on Unsplash Recientemente, el gobierno de los Estados Unidos ha emitido una advertencia urgente a todos sus ciudadanos: ¡dejen de enviar mensajes de texto! Esta declaración ha generado una gran inquietud entre los usuarios de teléfonos móviles y ha llevado a muchos a preguntarse por qué se ha llegado a tal extremo. En este artículo, exploraremos las razones detrás de esta advertencia y las alternativas más seguras para la comunicación. ¿Por qué el Gobierno Pide que Dejen de Enviar Mensajes de Texto? La razón principal detrás de esta advertencia radica en un ataque cibernético masivo llevado a cabo por actores vinculados al gobierno de la República Popular China. Este ataque ha comprometido varias infraestructuras de telecomunicaciones en los Estados Unidos, incluyendo grandes compañías como AT&T y Verizon. Según informes, los mensajes de texto, especialmente aquellos enviados entre dispositivos de diferentes sistemas operativos, no...