¿Sabes cómo se utiliza una webshell básica en entornos de práctica de hacking web?
El siguiente tutorial sobre cómo usar una webshell básica está hecho con fines 100% educativos. El uso de técnicas de hacking web en entornos no autorizados se considera un delito. Por eso, te enseñaremos a usar esta herramienta en una aplicación deliberadamente vulnerable, hecha especialmente para practicar conocimientos de ciberseguridad.
El entorno virtual que usaremos para implementar nuestra webshell básica se llama Web For Pentester. Este cuenta con una aplicación web deliberadamente vulnerable, desarrollada por la empresa PentesterLab, que sirve para practicar diferentes ataques, como cross-site scripting o inyecciones SQL, entre otros.
En este post, te enseñaremos a usar una webshell básica de Kali Linux en Web For Pentester. Sin embargo, antes hablaremos sobre qué es una webshell y el método que usaremos para ejecutar una en un sistema.
Un poco de contexto
¿Qué es una webshell?
Una webshell es un código web que se utiliza para interactuar con el servidor de una aplicación. Los códigos de las webshells suelen ser de un tamaño muy pequeño, pero a la vez permiten ejecutar cualquier comando en el servidor de una app. Por eso, son herramientas muy poderosas para el proceso de postexplotación de una vulnerabilidad.

Vulnerabilidad de subida de ficheros
En el siguiente ejercicio, explotaremos una vulnerabilidad de subida de ficheros para ejecutar nuestro ataque simulado con una webshell básica. Este fallo de seguridad consiste en una falta de validación de los archivos que un usuario puede subir a la aplicación. De este modo, subiremos un fichero con el código PHP de una webshell, para ejecutarla desde un subdirectorio de la aplicación vulnerable.
Para entender mejor cómo funciona una webshell básica y en qué consiste la vulnerabilidad de subida de ficheros, pasemos al ejemplo práctico en Web For Pentester.
¿Cómo usar una webshell básica?
Preparación
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaPara preparar el entorno de práctica de hacking web:
- Instala una máquina virtual con la versión más reciente de Kali Linux.
- Instala la máquina virtual de Web For Pentester.
Ejecución
Ya hemos preparado un entorno de práctica seguro de hacking web. Ahora, procederemos a ver, paso a paso, cómo ejecutar nuestra webshell básica para PHP.
Primero, abriremos un navegador en la máquina de Kali Linux e ingresaremos a la dirección IP de la máquina de Web For Pentester. Al hacerlo, veremos la siguiente página de inicio:

Ahora, iremos a la sección «File Upload» y seleccionaremos el primer enlace, que dice «Example 1«, lo cual nos llevará a una página con una vulnerabilidad de subida de ficheros.

Como verás, la aplicación permite subir ficheros en ella y, como pentester, debes preguntarte si existe alguna vulnerabilidad en esta entrada. En caso de que la aplicación no valide el tipo de archivos que subimos, podríamos incluir una webshell y luego acceder a ella por medio de un subdirectorio de la app.
Para probar si esto es posible, haremos clic en el botón «Seleccionar archivo» y buscaremos el directorio en la ruta /usr/share/webshells/php.

En esta ruta, encontrarás todas las webshells que vienen por defecto en Kali Linux. Entre ellas, escogeremos la que tiene el nombre «simple-backdoor.php«, cuyo código fuente es el que mostramos más arriba en este artículo.
Al subir el archivo, veremos el siguiente resultado:

Ahora, para acceder a nuestra webshell básica, todo lo que tendremos que hacer será hacer clic en el botón «here» que nos muestra la aplicación.

Así, la webshell ya se ha subido a las bases de datos de la aplicación y hemos accedido a ella. Ahora, para hacer uso de esta herramienta, debemos seguir las instrucciones que aparecen en pantalla, que nos indican que la sintaxis para ejecutar comandos por medio de la webshell es:
http://192.168.175.129/upload/images/simple-backdoor.php?cmd=cat+/etc/passwd
Lo que hemos resaltado en negrita es el comando para ejecutar en el servidor. Ahora, veremos qué sucede si usamos algunos comandos como:
pwd

ls

id

cat etc/passwd

Como puedes ver, una webshell básica permite modificar, eliminar o añadir ficheros en el servidor de la aplicación. Asimismo, es un método efectivo para exfiltrar datos, lo cual pone en peligro la información confidencial de los clientes de la app.
¿Cómo aprender más?
Ahora sabes qué es y cómo ejecutar una webshell básica. Si quieres aprender más técnicas de hacking web, en KeepCoding tenemos un curso ideal para ti. Entra a nuestro Ciberseguridad Full Stack Bootcamp y fórmate con la guía de expertos en el sector para profesionalizarte en pocos meses. ¡Inscríbete ya y da el paso que te cambiará la vida!