Que es y como una funciona una WebShell o Backdoor en los sistemas

0
1084

Un shell web o shell de puerta trasera es un script escrito en el idioma compatible de un servidor web de destino que se carga para habilitar el acceso remoto y la administración de la máquina. Los shells pueden infectar servidores que pueden no estar necesariamente orientados a Internet, los servidores para alojar recursos internos también están sujetos a ataques de shell web donde los propietarios de secuencias de comandos intentan acceder a la información guardada en estos sistemas.

La mayoría de los shells web están escritos en lenguajes de secuencias de comandos populares que se sabe que son compatibles con la mayoría de los servidores web, esto puede ser PHP, Python, Ruby, Perl, ASP y Unix Shell Script. Los sistemas de administración de contenido y otro software de servidor web se escanean utilizando una herramienta de reconocimiento de red para identificar vulnerabilidades que pueden explotarse y conducir a la instalación del script de shell.

Este script malicioso se introduce en los sistemas que son atacados. En la mayoría de los casos, los servidores web forman parte del objetivo. Una vez que dichos sistemas cuentan con el web shell, el cibercriminal puede tener control remoto del mismo. En consecuencia, tendrá acceso persistente al sistema y podrá manejarlo como quiera. Esto significa que los web shells tienen la capacidad de crear backdoors en los sistemas vulnerados para tener cierto control e incluso el control total.

Además, los web shells tienen un alcance mucho mayor. También pueden vulnerar a interfaces de gestión de dispositivos en red. Por lo que es sumamente importante tener buenas prácticas de gestión segura en redes. Sobre todo, si se trata de aquellas que cuentan con cientos y miles de dispositivos conectados a diario. El auge del teletrabajo trae consigo riesgos de seguridad, que, si bien son ya conocidos, estos merecen especial atención, debido a que, evidentemente, no es lo mismo trabajar en un entorno de red «seguro» de una empresa, que desde casa. Sin embargo, podrías preguntarte si no es suficiente utilizar servicios de VPN para que podamos conectarnos con total seguridad a nuestros recursos de la organización, esa es tan sólo una parte de lo que un administrador de red debe hacer.

Una de las ventajas que tienen los ataques web shell es que son polivalentes y difíciles de detectar. Además son peligrosos y los podrían usar para:

  • . El robo de datos.
  • . La infección de los visitantes de una web.
  • . El lanzamiento de ataques DDoS
  • . La modificación de archivos con intenciones dañinas.
  • Para su utilización como un bot que forma parte de una botnet.

Cómo funciona

Este tipo de ataques se divide en varias etapas. En primer lugar, el atacante procede a crear un mecanismo persistente en el servidor, el cual le permite generar un acceso remoto. Luego tratará de asignarse los privilegios necesarios dentro del mismo, de así poder dar uso de puertas traseras u otros métodos para realizar el ataque o utilizar los recursos disponibles, tanto del propio atacante como del servidor, para realizar actividades ilícitas. Una vez que tienen los privilegios para poder llegar a la raíz, pueden hacer muchos cambios a su antojo. Como cambiar permisos, instalar software, eliminar contenido o usuarios, robar contraseñas, etc.

Como detectar una web shell

Actualmente, detectar este tipo de ataques resulta una tarea compleja, ya que toda acción que debemos realizar, tiene que ser dentro del propio servidor donde webshell está situado. Vamos a ver algunos métodos para poder detectarlos, pero seguramente el más eficaz es prohibir algunas funciones que puedan estar afectadas y realizar una auditoría al servidor y la página web.

Este tipo de auditorías, pueden detectar la existencia de un webshell, de la misma forma que evitar que los atacantes puedan explotar las vulnerabilidades y suban algún otro shell.

La principal dificultad que se presenta a la hora de detectar este tipo de malware es que los atacantes pueden aplicar métodos de cifrado para cubrir su actividad maliciosa.

Cómo bloquear una Webshells

Dado que los exploits webshell se llevan a cabo solo en servidores con vulnerabilidades de aplicaciones web o debilidades de configuración, la identificación y cierre de tales vulnerabilidades es crucial para evitar el compromiso. Para servidores que soportan PHP, funciones potencialmente peligrosas como exec(), shell_exec(), eval(), assert(), etc. y deben deshabilitarse en php.ini cuando no esté en uso. Esto dificulta la ejecución del contenido de un webshell en caso de que finalmente se cargue. Además, los directorios confidenciales, como las imágenes o la carga, también deben deshabilitarse o modificarse el nombre de su estado predeterminado. Las aplicaciones web con funciones de carga de archivos deben protegerse y permitir la carga solo de los tipos de archivos permitidos. En el caso de CMS como WordPress, los complementos de terceros que no sean necesarios deben deshabilitarse.

Cortafuegos de aplicaciones web (ModSecurity)

Un firewall de aplicaciones web (WAF) protege los servidores web del tráfico malicioso y bloquea los intentos de comprometer el sistema. Recomendamos usar las reglas ModSecurity Firewall y ModSecurity de código abierto.


Recursos de la NSA

Esta reconocida agencia de los EEUU ha puesto a disposición un completo repositorio en Github. En este repositorio podemos encontrar un amplio listado de métodos y herramientas que ayudarán a que tu sistema esté protegido del malware de tipo web shell. Un punto interesante es que no será necesario realizar mayores inversiones en cuanto a soluciones de seguridad se refiere.

Ponemos como ejemplo a PowerShell de Microsoft. En el repositorio que hemos compartido, encontrarás soporte para realizar detección de web shells mediante un esquema de comparación «Known Good». Además, podrás realizar detección de solicitudes sospechosas en los logs de los servidores web.

Gerardo J Gil Dams