Hosting Knowledge Base

Páginas infectadas con código /*km0ae9gr6m*/

Actualización del artículo

Recientemente Parallels ha creado un artículo en su KB en la que describe el problema y detalla una serie de pasos para solventarlo. Sería una buena práctica leerselo adicionalmente ya que provee información útil al respecto. Pueden encontrarlo en Las mejores prácticas de seguridad para Parallels Plesk Panel.

Aviso

Este artículo se ha realizado basado en investigaciones realizadas por SiliconHosting. Dicho problema de seguridad ya fue arreglado por Parallels en diferentes actualizaciones, pero parece ser que el problema persiste y no se han pronunciado al respecto. Las acciones realizadas en este artículo pueden solventar de manera permanente el problema, pero a falta de saber más acerca de la naturaleza del exploit, no es posible asegurarlo por completo.

Existe un bug en los paneles de control Plesk en versiones previas a la 10.4, que permite al atacante realizar subidas y modificaciones mediante el "Administrador de Archivos" del propio Plesk para realizar las inyecciones de código malicioso en archivos .html, .htm y .jsp. Dichas inyecciones de código en la mayoría de los casos son scripts ofuscados que establecen iframes y redirecciones hacia diferentes páginas rusas.

Si ha detectado que Google ha marcado su dominio como peligroso o sus páginas realizan acciones que no deberían, es posible que su dominio haya sido vulnerado mediante dicho bug.

  1. El primer paso a realizar es averiguar si el servidor está correctamente parcheado y no posee el agujero de seguridad. Para ello deben descargarse el fichero de comprobación de Parallels y seguir las instrucciones que encontrarán en el artículo oficial de Parallels.

    Si su servidor está correctamente parcheado pueden proceder al siguiente paso.

    En el caso de que su servidor no esté correctamente parcheado, recomendamos actualizar los paquetes de la versión de Plesk que tenga actualmente instalada, ya sea la 8.6, 9.5 o la 10.

    No es necesario actualizar a la última versión, simplemente actualizar los paquetes base de la versión. En el apartado "Updater" o "Actualizaciones" de su panel de control Plesk podrán realizar dicha acción.

    Recomendamos realizar de nuevo la prueba de comprobación del agujero de seguridad posteriormente a la actualización.

  2. Una vez comprobemos que nuestro panel Plesk es seguro, será necesario modificar las contraseñas de acceso a Plesk. Las contraseñas de acceso de admin, de cada dominio y clientes. Las contraseñas de acceso FTP y de correo no son prioritarias pero sería una buena práctica y recomendable realizar dichos cambios.

    En el caso de poseer muchos dominios y no desear realizar los cambios manualmente, Parallels ha proporcionado una herramienta para realizar los cambios de manera automática. Pueden visitar este artículo en caso de desear realizarlo de manera automática: Plesk Mass Password Reset Script

    Nota

    En el caso de emplear el script facilitado por Parallels, hay que tener en cuenta de seguir las indicaciones únicamente para PP ( Plesk Panel ) y obviar las de PBA-S.

  3. Una vez realizados los pasos anteriores, nuestro Panel de control Plesk ya no será vulnerable a dichos ataques por lo que únicamente sería necesario eliminar las inyecciones de código realizadas en las páginas de nuestro dominio.

    Nota

    El siguiente paso únicamente se ha probado en servidores Linux, ya que es posible eliminar únicamente el código malicioso mediante comandos propios de Linux. En servidores Windows se deberían revisar manualmente los ficheros desde Escritorio Remoto en el apartado "Search" en el sistema y buscar en vhosts la cadena km0ae9gr6m. También sería posible recuperar un backup previo a la infección.

    El código malicioso destaca debido a que previamente al script que se ejecuta hay unas cadenas de texto al inicio como /*km0ae9gr6m*/ y al final como /*qhk6sa6g1c*/ a modo de comentarios. Esto permite identificar los archivos infectados y seguidamente, al estar añadidos normalmente al final del fichero, la eliminación del script sin afectar al archivo eliminando únicamente la cadena de código.

    Para poder revisar que archivos han sido vulnerados y eliminar el script malicioso se debe acceder mediante SSH a su servidor.

    Nota

    Puede encontrar más información sobre el acceso por SSH a su servidor en el artículo: Cómo acceder mediante SSH a un servidor Linux

    Deberíamos posicionarnos en el directorio donde se encuentran todos los dominios para proceder a ejecutar los diferentes comandos:

    cd /var/www/vhosts/

    Posteriormente ejecutaremos un comando que buscará el script en todos los archivos .php, .js, .html y .htm de todos los dominios y nos indicará qué archivos han sido infectados:

    grep -rl --include=*.{php,js,html,htm} "km0ae9gr6m" *

    En el caso de encontrar archivos infectados, podemos realizar la eliminación manual editando el archivo o mediante varios comandos que procederán a eliminar el script.

    Aviso

    Dichos comandos eliminan la cadena de texto desde el momento que encuentra km0ae9gr6m hasta el final de éste. Es recomendable realizar una copia de seguridad previa de los archivos a modificar.

    • Podemos emplear uno de los siguientes comandos. El primer comando eliminará el script desde que detecta la cadena /*km0ae9gr6m*/ hasta el final que le indiquemos en el comando, el cual normalmente en estos casos de inyección de código, es /*qhk6sa6g1c*/. Hay que ejecutar el siguiente código en una única linea para que funcione correctamente:

      find /var/www/vhosts/ -type f -name '*.js' -print0 | xargs -0 perl -i -0777pe 's|/\*km0ae9gr6m\*/.*?/\*qhk6sa6g1c\*/||gs'

      Simplemente tenemos que cambiar el directorio /var/www/vhosts/ por el que deseemos que busque de manera recursiva. Una vez ejecutado, habrá eliminado el script ubicado entre /*km0ae9gr6m*/ y /*qhk6sa6g1c*/, ambos cadenas de texto incluidas.

    • Otro comando de eliminación del script es el siguiente. Hay que ejecutar el comando estando en el directorio que deseemos, ya sea desde /var/www/vhosts/ para que analice todos los dominios o únicamente desde el directorio de cada dominio para realizarse de una manera más controlada y de uno en uno.

      Hay que tener en cuenta, que el siguiente comando elimina el script desde que detecta la palabra /*km0ae9gr6m hasta el final de la linea y es posible que los atacantes hayan puesto el script en medio de alguna linea importante, por lo que dicho comando eliminaría la linea por completo. Recomendamos encarecidamente que se revisen los archivos infectados de ser el caso y eliminar el script manualmente editando el archivo antes que emplear el siguiente comando.

      grep -rl --include=*.{php,js,html,htm} 'km0ae9gr6m' * | xargs sed -i 's/\/[*]km0ae9gr6m.*$//g'

    En ambos casos, los dos comandos facilitados anteriormente se han creado a partir de las pautas establecidas que emplean a la hora de inyectar el código. Desde SiliconHosting, recomendamos que se revisen los archivos uno a uno, ya que las pautas pueden variar en cada situación, de manera que dichos comandos puede que no sean de utilidad en todos los casos.

    Posteriormente podemos proceder a ejecutar el primer comando para comprobar si aún existen ficheros maliciosos.

    grep -rl --include=*.{php,js,html,htm} "km0ae9gr6m" *

    En el caso de no mostrar ningún resultado significa que habrá eliminado correctamente el script.

Una vez realizados los pasos anteriormente citados, ya no debería volver a persistir el problena, sin embargo tal y como se ha comentado, la naturaleza de dicho exploit todavía no está del todo comprobada y sería conveniente realizar pasos como la comprobación de código en alguna ocasión por si se ha vuelto a realizar la inyección.

Fuentes: http://kb.parallels.com/en/113321 , http://kb.parallels.com/en/113424 .

Archivos adjuntos

No se han encontrado archivos adjuntos.

¿Cómo puntuaría esta respuesta?



Para publicar un comentario para este artículo, simplemente complete el formulario más abajo. Los campos marcados con un asterisco son obligatorios.


Comentarios de los visitantes

  1. Comentario #1 (Publicado por David)
    Muchas gracias, me ha sido de gran utilidad.
  2. Comentario #2 (Publicado por Jorge)
    Muchisimas gracias amigos por este articulo pues estaba desesperadisimo. Me ha sido muy eficaz.
  • SILICONTOWER, S.L.
  • ESB64611825
  • Rda.General Mitre 25 Bajos 2a
  • 08017 Barcelona