miércoles, 21 de abril de 2010

Vulnerabilidad en Foro SMF

Bueno navengando en San Googe encontre a nimiedad.com un articulo sobre los foros Simple Machines Forum (SMF) siendo objeto de un hacking masivo automatizado debido a una grave vulnerabilidad que permite inyectar código php en la carpeta que utilizan los usuarios para subir avatares. Ahora mismo pueden haber decenas de foros infectados (de todas las versiones, incluidas las actualizadas). Probablemente muchos de los propietarios de dichos foros ni siquiera saben que todos los archivos .php del servidor donde se encuentra su foro tienen un código malicioso inyectado, ya que el único síntoma visible inicial es que desaparecen algunos avatares del foro SMF.

El mecanismo de hacking funciona mediante el registro automático en el foro de un usuario que sube un avatar en formato .jpg que contiene un código php con el que se conecta a una página desde la cual se producen nuevas inyecciones de código. Esto crea en el servidor tres archivos llamados style.css.php, s.php, y dg.php. Además, a todos y cada uno de los archivos con extensión .php del servidor donde esté alojado el foro SMF se les añade en su parte superior un trozo de código php codificado en base64. En principio parece que el objetivo de este hacking es el spam, aunque podría tener otro tipo de aplicaciones maliciosas.

¿CUÁLES SON LOS SÍNTOMAS?

Lo primero que se suele detectar es que desaparecen algunos avatares en el foro. También aparecen numerosos errores en el log de errores de administración, como "8: Undefined index: dhhag".

¿CÓMO LIMPIAR ESTA INYECCIÓN DE CÓDIGO?

La forma más rápida y segura es volver a una copia de seguridad del servidor anterior a la fecha del hacking (la fecha de registro del usuario "sospechoso" en el foro SMF), ya que no sólo inyecta en el foro sino en todas las carpetas que estén en ese mismo servidor. Si no se dispone de una copia de seguridad completa, el proceso de limpieza sería mucho más tedioso y llevaría estos pasos:

1. Buscar en el foro SMF si se ha registrado un usuario llamado "krisbarteo" o "MagicOpromotion", apuntar la fecha y hora de registro, y borrarlo.

2. Con un programa FTP, ir a la carpeta donde se almacenan los avatares en tu foro SMF, y eliminar el avatar en formato .jpg que coincida con la fecha y hora de registro de "krisbarteo".

3. Abrir cualquier archivo .php infectado con un editor. Arriba veremos el código añadido, codificado en base64. Lo copiamos y lo decodificamos en cualquier decodificador de base64 (por ejemplo, éste). Al decodificarlo veremos la ruta de la carpeta en nuestro servidor que contiene el archivo style.css.php y otros. Copiamos esa ruta, vamos a ella con el FTP y borramos los archivos que haya en ella (que no se correspondan con algo legítimo y que hayan sido modificados en la fecha del hacking o posteriormente).

4. Eliminar de todos los archivos .php del servidor el código malicioso inyectado en la parte superior. Hay varias formas automáticas de hacerlo. Una manual, y bastante tediosa, podría ser descargar todos los archivos y modificarlos de forma masiva utilizando algún programa como Dreamweaver que permita reemplazar masivamente trozos de texto. Al ser el código añadido el mismo en todos los archivos .php, es fácil reemplazarlo de forma masiva sin necesidad de ir editándolos uno por uno. Cuidado con añadir espacios antes de la etiqueta de inicio de código php, ya que daría errores de header. Una vez limpiados los archivos, volver a subirlos mediante ftp.

¿CÓMO PREVENIRLO?

(El 22/05/09 apareció una actualización de seguridad de SMF que soluciona esta vulnerabilidad. No obstante, he dejado los consejos originales ya que son útiles para combatir el spam.)

De momento, y mientras no se ofrezca una solución desde SMF, deberías hacer lo siguiente:

1. Impedir que los usuarios suban avatares y archivos adjuntos (o bien limitarlo sólo a quienes tengan un cierto número de mensajes escritos).

2. Instalar el mod Stop Spammer.

3. Instalar el mod reCAPTCHA.

Y, por supuesto, deberías tener actualizado tu foro SMF a la última versión estable, y todo el software de tu servidor también actualizado (consulta con tu empresa de hospedaje si hay software del servidor al que no tienes acceso).

No hay comentarios: