Web Shells: qué son, cómo funcionan y cómo protegerte de ellas

Amenazas invisibles que otorgan control total del servidor: descubre cómo funcionan las web shells y las claves para protegerte.

by Felice Galluccio
Web Shells: qué son, cómo funcionan y cómo protegerte de ellas

Piensa en alguien que consigue dejar una copia de la llave escondida en la puerta trasera de tu empresa sin que nadie se entere. Más o menos así funciona una web shell, un pequeño fragmento de código que un atacante logra introducir en un servidor para entrar y salir cuando le da la gana, manejando el sistema como si fuera el propietario. Es una de las herramientas más temidas en el mundo de la ciberseguridad, porque una vez instalada el intruso pasa a tener las riendas de toda la infraestructura digital, desde cambios mínimos hasta destrozos totales.

Lo peor de estas intrusiones es que suelen pasar inadvertidas durante muchísimo tiempo. El tráfico que generan parece navegación web totalmente normal, así que el atacante opera entre las sombras mientras el sitio sigue funcionando de cara a los usuarios. Técnicamente hablamos de un script malicioso escrito en lenguajes de servidor como PHP, ASP, JSP o Perl, que actúa como una interfaz de administración remota no autorizada. A diferencia de otros malwares, la shell se ejecuta directamente en el navegador y usa el protocolo HTTP o HTTPS para lanzar órdenes al equipo comprometido. En el marco MITRE ATT&CK aparece clasificada como T1505.003.

Cómo llegan al servidor y qué destrozos pueden causar

Nadie coloca una shell por arte de magia. Hace falta encontrar una grieta. El camino más habitual es aprovechar vulnerabilidades en aplicaciones web o en el propio servidor. Entre los vectores más frecuentes están la inyección SQL, los formularios que permiten subir archivos .php o .asp cuando deberían aceptar solo imágenes, las inclusiones de archivos locales y remotos (LFI y RFI) y el software desactualizado, con plugins de WordPress viejos o servidores con CVEs conocidos sin parchear.

Una vez que el archivo aterriza en una carpeta accesible, el atacante solo visita la URL y empieza a pasar comandos. A partir de ahí el límite lo marca su imaginación y los permisos del servidor: robo de bases de datos y contraseñas, escalada hasta privilegios de root, cambios en la apariencia del sitio para dejar mensajes, uso del servidor como zombie para lanzar ataques DDoS o pivotaje hacia otros equipos internos. En el ambiente hacker circulan herramientas ya conocidas como China Chopper, WSO, C99 o B374K, con paneles completos para gestionar archivos. Y hay casos curiosos donde el código se esconde dentro de una imagen o un vídeo, colándose en los metadatos para esquivar los escaneos básicos.

Link affiliato

Cómo detectarlas y blindar el servidor

Encontrar una shell es como buscar una aguja en un pajar, porque se camuflan entre archivos legítimos. Aun así hay señales que deberían encender las alarmas. Revisar los logs en busca de peticiones POST raras o User-Agents extraños, aplicar monitorización de integridad de archivos para detectar cambios inesperados y vigilar cuando procesos como apache o nginx intentan ejecutar utilidades como whoami o netstat. Sistemas como Snort, Suricata, ClamAV o YARA ayudan a reconocer firmas ya conocidas.

La mejor defensa sigue siendo no dejarla entrar, y si entra, limitar su impacto. Mantener el CMS, los plugins y el sistema operativo actualizados cierra puertas. Aplicar el principio de privilegio mínimo evita que la aplicación pueda escribir donde se ejecuta código. El hardening del servidor, deshabilitando funciones peligrosas como shell_exec(), exec() y passthru() en el php.ini, reduce las opciones del atacante. Un WAF filtra el tráfico malicioso antes de que llegue, y la segmentación de red aísla los servidores web del resto de la infraestructura. Para quienes se dedican al pentesting, entornos como Kali Linux incluyen directorios en /usr/share/webshells para simular estos ataques y aprender a frenarlos, algo clave a la hora de encontrar los fallos antes que los malos.

Fuente
Imagen: androidayuda.com

Related Articles