PathSentinel

Webshells: qué son, dónde se esconden y cómo encontrarlas en tu hosting

Qué es una webshell, cómo un atacante controla tu servidor con un archivo malicioso, en qué carpetas se esconde y cómo detectarla y eliminarla de tu hosting.

PathSentinel investigacion de seguridad

Si tuviéramos que señalar el artefacto más común en un sitio web comprometido, sería este. La pregunta qué es una webshell tiene una respuesta corta y una incómoda: es un archivo que el atacante sube a tu servidor para controlarlo de forma remota, y suele ser la primera pieza que instala tras entrar. Comprenderla es esencial, y por eso la incluimos como pieza central de nuestra investigación pilar Anatomía del hackeo: persistencia, backdoors y SEO-spam.

¿Qué es una webshell?

Una webshell es un script (habitualmente en PHP, aunque también en ASP, JSP u otros lenguajes) que se ejecuta en el servidor web y ofrece al atacante una interfaz para dar órdenes de forma remota, normalmente a través del navegador o de peticiones HTTP. En la práctica, funciona como un panel de control clandestino: permite listar archivos, subir y descargar, editar código, ejecutar comandos del sistema, conectarse a la base de datos y lanzar más ataques desde tu propia máquina. La técnica está catalogada formalmente por MITRE como Web Shell en MITRE ATT&CK T1505.003.

Las webshells van desde una sola línea casi invisible hasta paneles completos con contraseña y menús. Una web shell mínima puede ser tan simple como una función que ejecuta lo que le llegue por un parámetro, ofuscada para no saltar a la vista. Cuanto más pequeña y camuflada, más difícil de encontrar.

Dónde se esconden en tu hosting

El atacante busca dos cosas: que el archivo se ejecute y que pase desapercibido. Los escondites más habituales que documentamos en incidentes reales son:

  • Carpeta de subidas (wp-content/uploads/), a menudo dentro de subcarpetas por año y mes, mezclada con imágenes legítimas.
  • Dentro de plugins y temas, especialmente en plugins abandonados o nulled, donde un archivo de más no llama la atención.
  • Archivos con nombres que imitan al core: variantes de wp-config, index o class- con una letra cambiada.
  • Código inyectado en archivos legítimos, sin crear ningún archivo nuevo: la puerta trasera vive dentro de un fichero que sí debería estar ahí.

Este último caso es clave: no todas las webshells son archivos independientes. Muchas se esconden como pocas líneas insertadas en un archivo legítimo, lo que las hace invisibles para quien solo busca ficheros «nuevos».

Cómo detectar una webshell

La detección eficaz combina varias señales, porque ninguna es infalible por sí sola:

  • Integridad del core: comparar los archivos de WordPress con las versiones oficiales revela cualquier fichero modificado o de más.
  • Archivos ejecutables donde no deberían estar: un .php dentro de uploads/ es, salvo excepciones muy concretas, una señal de alarma.
  • Patrones de código sospechoso: uso de eval, base64_decode, gzinflate, system, assert o cadenas fuertemente ofuscadas.
  • Fechas de modificación anómalas: archivos cambiados en la fecha del incidente o con timestamps manipulados.
  • Registros del servidor: peticiones POST repetidas a un archivo poco habitual, a menudo desde las mismas IPs, delatan el uso de la shell.

El blog de Sucuri mantiene análisis actualizados de familias de webshells y de los trucos de ofuscación que emplean, un buen complemento para reconocer patrones.

Para qué usan la webshell

Una vez instalada, la web shell es el punto de partida de casi todo lo demás. Con ella, el atacante crea páginas doorway de casino para monetizar tu dominio, inyecta redirecciones, roba datos o instala más puertas traseras para no depender de un solo archivo. La actividad de spam que genera choca frontalmente con las políticas de spam de Google y suele ser lo primero que el propietario nota, cuando el tráfico se desploma o aparecen advertencias en el buscador.

Eliminación y prevención

Encontrar una webshell no cierra el incidente; es el principio. La limpieza correcta implica:

  • No borrar sin registrar: conserva copia del archivo y de los logs de acceso para reconstruir la línea temporal y entender qué hizo el atacante.
  • Buscar todas las shells, no una: es habitual que haya varias repartidas, más código inyectado en archivos legítimos.
  • Revisar la base de datos: la persistencia suele completarse con SEO spam almacenado en la base de datos y con cuentas de administrador ocultas.
  • Cerrar el vector de entrada y rotar todas las credenciales para que la shell no vuelva a subirse.

En entornos de alto nivel, como banca o comercios que manejan datos de tarjeta, una webshell no es solo un problema de SEO: es capacidad de ejecución de comandos junto a datos de pago, con implicaciones directas de exposición y cumplimiento. Ahí tratamos cada shell como parte de una investigación forense completa. Si sospechas que hay una en tu hosting, contáctanos desde nuestra página de contacto.

En resumen

Una webshell es el mando a distancia del atacante dentro de tu servidor: pequeña, camuflada y casi siempre acompañada. Saber qué es y dónde se esconde es el primer paso; encontrarlas todas y cerrar la puerta por la que entraron es lo que realmente resuelve el incidente.

¿Sospechas que hay un archivo de control remoto en tu hosting? Un escaneo dirigido revela webshells que los plugins de seguridad pasan por alto.

Comprueba tu web gratis

PathSentinel

Jesús Macías Rubiales

Investigación forense y seguridad web: analizamos y respondemos incidentes reales en pymes, e-commerce y entornos exigentes como la banca. Conoce al equipo.

📬 Boletín PathScan — suscríbete gratis

Cada semana, las vulnerabilidades de plugins de WordPress que de verdad importan y un caso real de investigación, en español. Sin ruido, sin spam.