Generalidades
Si sospechas que tu sitio web ha sido hackeado, lo mejor que puedes hacer es reinstalar cualquier aplicación de software (como WordPress o Joomla). Los pasos a continuación se aplican principalmente a la reinstalación de WordPress, ya que es el software más comúnmente utilizado (y por lo tanto el más comúnmente hackeado), pero los pasos generales son válidos para muchas instalaciones de CMS.
Si no te sientes cómodo arreglando tu propio sitio, puedes pedirle al (servicio de eliminación profesional de malware) de DreamHost una Reparación de tu Sitio Hackeado. Los expertos de DreamHost accederán a tu cuenta y harán las reparaciones necesarias para traer tu sitio de vuelta online rápidamente. Mira la página Términos de Servicio para más información.
Una nota sobre Base64
Base64 suele ser malo. Y, sin embargo, hay casos de uso legítimos.
Corre el siguiente comando solo debería darte estos resultados de archivos core de WordPress. Cambia username a tu usuario Shell y example.com a tu sitio website.
[server]$ grep -R "base64_" /home/username/example.com/ ./wp-admin/includes/class-wp-importer.php: $headers['Authorization'] = 'Basic ' . base64_encode( "$username:$password" ); ./wp-includes/class-smtp.php: fputs($this->smtp_conn, base64_encode("\0".$username."\0".$password) . $this->CRLF); ./wp-includes/class-smtp.php: fputs($this->smtp_conn, base64_encode($username) . $this->CRLF); ./wp-includes/class-smtp.php: fputs($this->smtp_conn, base64_encode($password) . $this->CRLF); ./wp-includes/class-smtp.php: fputs($this->smtp_conn,"AUTH NTLM " . base64_encode($msg1) . $this->CRLF); ./wp-includes/class-smtp.php: $challenge = base64_decode($challenge); ./wp-includes/class-smtp.php: fputs($this->smtp_conn, base64_encode($msg3) . $this->CRLF); ./wp-includes/ID3/module.audio.ogg.php: $flac->setStringMode(base64_decode($ThisFileInfo_ogg_comments_raw[$i]['value'])); ./wp-includes/ID3/module.audio.ogg.php: $data = base64_decode($ThisFileInfo_ogg_comments_raw[$i]['value']); ./wp-includes/class-IXR.php: $value = base64_decode($this->_currentTagContents); ./wp-includes/class-IXR.php: return '<base64>'.base64_encode($this->data).'</base64>'; ./wp-includes/class-feed.php: $data = base64_decode( $data ); ./wp-includes/class-phpmailer.php: $encoded = chunk_split(base64_encode($str), 76, $this->LE); ./wp-includes/class-phpmailer.php: $encoded = base64_encode($str); ./wp-includes/class-phpmailer.php: $chunk = base64_encode($chunk); ./wp-includes/class-phpmailer.php: return base64_encode($signature); ./wp-includes/class-phpmailer.php: $DKIMb64 = base64_encode(pack("H*", sha1($body))) ; // Base64 of packed binary SHA-1 hash of body ./wp-includes/SimplePie/Sanitize.php: $data = base64_decode($data); ./wp-includes/SimplePie/File.php: $out .= "Authorization: Basic " . base64_encode("$url_parts[user]:$url_parts[pass]") . "\r\n"; ./wp-includes/class-http.php: return 'Proxy-Authorization: Basic ' . base64_encode( $this->authentication() ); ./wp-includes/class-wp-atom-server.php: explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); ./wp-includes/class-wp-atom-server.php: explode(':', base64_decode(substr($_SERVER['REDIRECT_REMOTE_USER'], 6))); ./wp-includes/class-snoopy.php: $headers .= "Authorization: Basic ".base64_encode($this->user.":".$this->pass)."\r\n"; ./wp-includes/class-snoopy.php: $headers .= 'Proxy-Authorization: ' . 'Basic ' . base64_encode($this->proxy_user . ':' . $this->proxy_pass)."\r\n"; ./wp-includes/class-snoopy.php: $headers[] = "Authorization: BASIC ".base64_encode($this->user.":".$this->pass);
Dicho esto, lo verás en plugins y (lamentablemente) temas. ¿Son estos seguros? Es difícil de decir, ya que hay miles de plugins solo en la base de datos de WordPress.org. Lo mejor que puedes hacer es eliminar los plugins y volver a instalarlos. Lo mismo ocurre con los temas.
División de los usuarios de tu sitio web
Dividir tus cuentas de usuario también es una buena idea para aislar tus sitios. Al asignar un dominio por usuario, se asegura de que si ese usuario es hackeado, solo ese sitio se verá comprometido. Además, asegúrate de que si ese sitio es hackeado, no pueda infectar al otro.
DreamHost tiene una Política de Un Usuario Por Dominio lo que significa que cada dominio solo puede tener un usuario asignado. Consulta el artículo para obtener más detalles sobre cómo crear un usuario diferente en tu dominio.
Un escaneo más
Busca 'una carpeta arriba' un archivo index.php y wp-config.php. A veces, si instalas WordPress en un subdirectorio como example.com/wp/, lo ejecutarás fuera desde example.com. Cuando eso pasa, tendrás dos archivos en el directorio example.com, y de vez en cuando se pierden cuando haces una limpieza.
Busca archivos con nombres extraños: cualquier archivo con nombre ljkdhsf92328kjhsdfsdf o (eso es mai-one, no correo) probablemente sea sospechoso. Bórralos.
Si aún recibes anuncios emergentes no deseados de tu sitio, solicita un escaneo de seguridad enviando un ticket. También puedes hacerlo en la página Contactar a Soporte.