Los web shells son scripts maliciosos que permiten a los atacantes obtener acceso persistente a servidores web comprometidos, habilitándolos para ejecutar comandos y controlar el servidor de manera remota. Estos scripts a menudo explotan vulnerabilidades como la inyección SQL, la inclusión de archivos remotos (RFI) y otros tipos de fallos para obtener acceso.
Una vez desplegados, los web shells permiten a los atacantes manipular el servidor, lo que puede llevar al robo de datos, la defacement del sitio web o el uso del servidor como plataforma para ataques adicionales. Dada su discreción y versatilidad en varios lenguajes de programación (PHP, Python, Ruby, ASP), los web shells representan una amenaza significativa para la seguridad de un sitio web.
Entender los Web Shells
Un web shell es un script malicioso o un fragmento de código que un atacante carga en un servidor web comprometido para facilitar el control remoto. Este acceso a través de una backdoor permite a los atacantes ejecutar comandos en el servidor, modificar archivos y acceder a bases de datos, proporcionándoles un control no autorizado sobre el servidor.
Es importante señalar que cualquier tecnología, debido a malas prácticas de codificación, es propensa a permitir que los atacantes carguen web shells. Por esta razón, recomendamos nuestros servicios para ayudar a evitar estas situaciones dañinas causadas por actores maliciosos.
¿Cómo llega un web shell a mi sitio web o servidor?
Existen varias formas en que los atacantes pueden cargar estos tipos de backdoors en un servidor. El método más común es cuando un atacante encuentra una vulnerabilidad que le permite ejecutar código, cargar archivos o de alguna manera obtener acceso no autorizado al servidor web. Los atacantes pueden explotar diversos tipos de vulnerabilidades, siendo una de las más frecuentes :
- Ejecución de Código Remoto: Esta vulnerabilidad permite a un atacante interactuar directamente con el servidor. Puede ocurrir debido a bibliotecas obsoletas o malas prácticas de codificación que permiten la ejecución de código malicioso.
Los atacantes cargan estas backdoors para mantener el acceso e interactuar con el servidor, permitiéndoles potencialmente ejecutar comandos en el sistema operativo a través del web shell.
¿Cómo funcionan los web shells?
El objetivo principal de un web shell es interactuar con el servidor y sus archivos. Ese es el enfoque y la meta principal. Con esto en mente, aquí hay un ejemplo de un flujo de trabajo que podría proporcionar una mejor comprensión de esto.
- Identificación de la Vulnerabilidad
- El atacante identifica vulnerabilidades en el sitio web o servidor objetivo, como inyección SQL, inclusión de archivos remotos, carga de archivos, etc.
- Explotación de las vulnerabilidades
- Al explotar la vulnerabilidad identificada, obtiene acceso no autorizado al servidor. Esto puede resultar en la ejecución de código malicioso, la carga de archivos o incluso la manipulación de la configuración del servidor.
- Cargar el Web Shell
- Utilizando el acceso obtenido, el atacante carga el script del web shell en el servidor. Normalmente, este script estará oculto bajo otro archivo legítimo.
- Establecer el Acceso Remoto
- El web shell actúa como una backdoor que permite a un atacante ejecutar comandos de forma remota, manipular archivos y acceder a bases de datos en el servidor.
El atacante envía comandos a través del web shell al servidor, lo que puede incluir la exfiltración de datos, la manipulación del servidor o ataques adicionales desde el servidor ya comprometido.
Tipos de webshell
Existen varios tipos de web shells, pero los más conocidos son C99, WSO y b374k. A continuación, se muestran algunos ejemplos de capturas de pantalla de estos web shells:
Hoy en día, estos tipos de web shells se utilizan principalmente para la exfiltración de datos o el pivotamiento. Sin embargo, hace algunos años, la defacement era popular, permitiendo a los atacantes cambiar la página principal y mostrar cualquier mensaje. Copias de estas defacements pueden encontrarse en sitios web populares como Zone-H.
Cuando un equipo o hacktivistas hackeaban un sitio, a menudo guardaban la defacement en Zone-H para ganar reputación y asegurar que el hack no se olvidara. Incluso después de varios años, algunos atacantes siguen utilizando web shells para modificar el archivo index.html.
¿Cómo detectarlos?
El enfoque debe ser proactivo, no reactivo. En lugar de esperar a que un atacante comprometa el servidor web, se deben tomar medidas como pruebas de penetración, análisis del código fuente y endurecimiento de los servidores web para prevenir estos tipos de situaciones. Si se detecta un web shell en un servidor web, la mejor acción es revisar minuciosamente todo el servidor en busca de anomalías, como servicios inusuales o nombres de archivos sospechosos. Si utilizas repositorios o sistemas de control de versiones como Git, puedes comparar cada archivo para identificar cambios.
Recuerda que contamos con profesionales cualificados que pueden ayudarte a detectar amenazas en tu software, permitiéndote evitar estas situaciones que causan dolores de cabeza.