Como eliminar “Hacked by Hacker” de WordPress

Durante los últimos días ha habido un aumento espectacular de sitios de WordPress hackeados y en los cuales aparece el texto «Hacked by Hacker» en la Home de la web.

Echarle un vistazo a vuestras webs en WordPress para ver si también estáis afectados. Si os ha afectado, en la home lo único que se muestra es el texto: «hacked by hacker», pero se puede seguir accediendo al panel de administración.

WordPress hacked by hacker

Ahora que ya va habiendo más información disponible, parece que es un Ataque de día cero a WordPress que afecta solo a webs en un alojamiento con panel de control cPanel.

Ataque de día cero (Wikipedia): Un ataque de día-cero (o también 0day) es un ataque contra una aplicación o sistema que tiene como objetivo la ejecución de código malicioso gracias al conocimiento de vulnerabilidades que, por lo general, son desconocidas para la gente y el fabricante del producto. Esto supone que aún no hayan sido arregladas.

No obstante todavía no hay más información sobre que vulnerabilidad utilzia el exploit.

 

¿Qué hace el exploit?

Reemplazar index.php e index.html, modificar o reemplazar el archivo header.php del tema activa y cambiar la contraseña del administrador.

 

¿Cómo se puede arreglar?

  1. Eliminar los archivos index.php e index.html hackeados de las carpetas de WordPress a través de FTP. Los archivos hackeados tienen 16 bytes de tamaño y solo contienen el texto: «hacked by hacker».
  2. Usar la opción «¿Has perdido tu contraseña?» para conseguir una nueva contraseña de administrador.
  3. Entrar a la administración del blog. Reinstalar la última versión de WordPress (reemplazará los index.php por los correctos; y no infectados).
  4. Reemplazar el archivo header.php con una copia de seguridad (si el tema es personalizado) o reinstalar el tema si es una plantilla. El archivo header.php por defecto está en wp-content/wp-themes//header.php.
  5. Cambiar la contraseña de administrador.
  6. Eliminar todos los temas y plugins que no se usen.
  7. Actualizar todos los plugins y temas que se hayan dejado.
  8. Revisar el contenido de todos los widgets del sitio. Ver más abajo: «¿Qué hacer si después de haber realizado los pasos detallados, sigue sin funcionar la web y aparece otra?»
  9. Revisar la codificación de la web. Ver más abajo: «¿Qué hacer si después de haber realizado estos pasos la web os aparece con caracteres extraños en vez de letras acentuadas, etc?»
  10. Revisar el título del sitio de WordPress (en Ajustes / Generales).
  11. Vaciar la caché de cualquier plugin de caché que se tenga instalada (por ejemplo: «SuperCache» y «W3 Total Cache»).
  12. Instalar y ejecutar el «Timthumb Vulnerability Scanner«.
  13. Instalar y ejecutar el plugin de seguridad «Wordfence«.
  14. Instalar y configurar el plugin de seguridad «Bullet-proof security«.

También le recomendamos a cualquier persona instalarse algún plugin para hacer copias de seguridad diarias. Nosotros utilizamos el plugin «WordPress Database Backup» que por extrañas razones ya no está disponible en el repositorio de WordPress, pero nos sigue pareciendo igual de bueno.

 

¿Qué hacer si después de haber realizado estos pasos la web os aparece con caracteres extraños en vez de letras acentuadas, etc?

Si al volver a activar la web después de haber realizado los cambios indicados, los caracteres especiales españoles no aparecen correctamente, es que el ataque también ha realizado un cambio en la codificación.

WordPress - Error de codificación UTF-7

La codificación correcta de WordPress no es UTF-7 sino UTF-8, por lo que hay que volver a poner «codificación para páginas y feeds»: UTF-8.

 

¿Qué hacer si después de haber realizado los pasos detallados, sigue sin funcionar la web y aparece otra?

Al reparar una de las webs afectadas hemos descubierto otro efecto adverso de la infección: En algunos de los casos elimina el contenido de algunos widgets y en algunos introduce un Javascript encriptado que nada más cargar la web muestra un contenido alternativo por encima de la web original. Lo que muestra es algo similar a lo siguiente:

Hacked by Hacker Widgets

Por tanto hay que revisar el contenido de todos los widgets y buscar algún código muy largo que no debería de estar ahí (y eliminarlo). De paso también hay que repasar que esté todo el contenido de los otros widgets, porque en algunos casos también se han eliminado algunos de ellos.

 

Especulaciones de cómo se produce el ataque: theme-editor.php

Por otro lado, también hay distintas personas que sostienen que estos ataques se han producido a través del archivo theme-editor.php de WordPress. Este es el archivo que permite realizar ediciones del tema a través del interfaz de adminsitración de WordPress. Si no os hace falta en este momento, puede ser una buena idea, renombrar momentáneamente este archivo para que no sea accesible; aunque si entrais a APARIENCIA / EDITOR os mostrará un error 404. Estamos viendo como se puede deshabilitar el editor sin ese error 404.

 

Hay más información sobre el «hacked by hacker» (en inglés) aquí:

 

Parte de la información de este post la hemos traducido de esta web.

 

Seguiremos actualizando la entrada si vamos obteniendo más información.

 

[UPDATE 1] Añadido: Información sobre theme-editor.php [/UPDATE1]
[UPDATE 2] Añadido: Referencia al plugin de copias de seguridad [/UPDATE2]
[UPDATE 3] Añadido: Solución al posible error en la codifícación [/UPDATE3]
[UPDATE 4] Añadido: Posible problema con los Widgets [/UPDATE4]
[UPDATE 5] Añadido: Revisión del título del sitio (por Lucía) [/UPDATE5]
[UPDATE 6] Añadido: Vaciar caché de plugins de Caché (por Jose) [/UPDATE6]

Descubre porqué somos Apasionados del Marketing

Mira también

Cómo saber el stock de un producto en Amazon (truco)

Hoy os quiero presentar un truco que llevamos usando desde hace tiempo y que a …

34 comentarios

  1. Gracias. Me ha salvado la vida. Gracias.

  2. Lucía Fernández

    Bueno, muchas gracias por indicarme qué hacer, porque en dos de los cuatro wp que tengo, tenía el dichoso mensajito.
    Una cosa. Al reinstalar wp, me cambió el nombre del sitio.

    Muchas gracias!!!!!!

  3. Exacto Ramón, en widgets inactivos me sale un cuadro de texto y hay viene un texto bastante largo y sin sentido. voy a hacer una copia de seguridad y voy a quitar la plantilla mia y instalarla de nuevo a ver que tal.

    • Lo que tienes que hacer es eliminar ese cuadro de texto. No hace falta reinstalar otra vez, si ya habías reinstalado. Lo eliminas, guardas el Widget y debería de funcionar.
      De todas formas mira en el resto de Widgets a ver si se ha colado en alguno otro.
      Lo malo es que también elimina contenido de otros widgets. Hay que revisarlos todos y sobre hay que acordarse de cual era su contenido ;-).

  4. Si habéis llegado a este post y en vuestra infección habéis tenido que solucionar algo que aquí hemos olvidado o que en los sitios que hemos revisado no hemos detectado, dejarnos un comentario por favor. Gracias.

  5. Tengo el mismo problema que vosotros y lo he intentado todo y sigue igual. Solo he activado otra plantilla de serie y se ha quitado, pero instalo de nuevo la plantilla original y sale el cuadro de arriba de las mujeres. No se que hacer.

    • Buenas tardes. Lo que tienes que hacer es ir a APARIENCIA / WIDGETS y revisar el contenido de todos los widgets que tienes configurados. En alguno de ellos tendrás mucho contenido encriptado que al final lo que hace es mostrar esa web chunga.
      Eso si, tal y como comentas con los temas por defecto del WordPress no pasa (TwentyTen, TwentyEleven y TwentyTwelve).
      Ya nos cuentas.

  6. Bueno yo soy otro de los afectados.

    En mi caso, antes de encontrar este post, y en vista que tenía copia de seguridad reciente, decidi cortar por lo sano y borre TODOS los archivos del host para a continiación subirlos de nuevo, y aun así me seguia saliendo la página esa del video de la captura de mas arriba superpuesta al fondo de mi web, y al tratar de entrar a la administración, me salia el mensaje «LEO nda WAR WAR».

    Al final tuve que restaurar también la base de datos y con esto si solucione el problema, luego en mi caso la BD también fue manipulada.

    ¿Se sabe la causa y como evitarlo en un futuro?

    • Hola Alex,

      Eso te pasaba por el código que introduce en el WIDGET. Al reemplazar solo los archivos del host, seguía estando ese contenido en el WIDGET, que depende de la base de datos. Al volver a subir una copia de la base de datos, esto se solucionó porque sobrescribió el contenido de los WIDGETS.

      La causa no está clara. Lo que está claro es que solo pasa en hostings con cPanel.

      Nosotros te recomendaríamos instalar algún plugin de seguridad (por ejemplo los que te poníamos en el post) y posiblemente también renombrar temporalmente el archivo theme-editor.php, ya que todos los que están estudiando el tema a fondo apuntan a que los ataques se produjeron por ahí. No obstante no está claro del todo y tiene los efectos secundarios que poníamos en el post y todavía no hemos encontrado una solución fácilmente aplicable.

  7. Hemos añadido una nueva entrada en el blog acerca de como recuperar contraseñas en WordPress, ya que parece ser que en algunas ocasiones no funciona correctamente el recuperar la contraseña a través de la opción «¿Has perdido tu contraseña?».

    La entrada está aquí: Recuperar contraseña de WordPress.

  8. En mi caso, han atacado varias webs de conocidos. Una de ellas tenía el plugin «supercache» y pese a eliminar o desactivar todos los plugins, he tenido que borrar el contenido de la carpeta wp-content/cache y ya funciona perfectamente. También borre un script que habían metido en el widget de Texto/Html

    • Hola Jose,

      Tienes toda la razón, se nos había olvidado incluir una referencia a los plugins de caché, porque además del plugin «SuperCache» pasa algo similar con «W3 Total Cache» y no hay que olvidar que siempre hay que vaciar la caché.
      Luego editaremos la entrada para incluirlo.

      Gracias.

  9. Gracias por la información. Ha sido precisa y muy completa.

  10. En mi caso solo me han cambiado la configuración de caracteres, el nombre de la página, y la página contacto, que es donde aparece lo de hacked by hacker. Me habia pasado al completo con otra web y lo arregle siguiendo estos pasos, pero ahora que me pasa en otra web solo con la seccion contact no se como cambiarlo.

    • Hola Ramiro, En principio el procedimiento es el mismo. Tienes que mirar si el formulario de contacto está insertado en una página por ejemplo con Contact Form 7 (o similar) o si por el contrario es un formulario del tema y por tanto tiene un archivo específico. Por los síntomas, lo más seguro es que sea lo segundo. Échale un vistazo a los archivos del tema y vuelve a subir el del formulario de contacto.

  11. Hola,

    una de las paginas web de un amigo le ha pasado lo mismo, ahora salen caracteres extraños, y he intentado ver los index y no veo ninguno que ocupe eso, ni nada. la web es acube.es ya me decis lo que sea, porque estoy desesperada.

    • Hola Marta, lo primero que probaríamos es volver a subir / reinistalar la versión de WordPress y posteriormente también volver a subir / instalar el tema y ver que pasa.
      Si sigues teniendo el problema, puede ser debido a que tengas código en algún WIDGET, revisa el contenido de todos (APARIENCIA / WIDGETS) para ver si hay algo que no debería de estar ahi.
      Ya nos cuentas que tal te ha ido.

  12. Muchas gracias, me ha servido para solventar los inconvenientes.

  13. Que tal Amigos, a mi me paso lo mismo, lo que hice fue cambiar la contraseña desde PHP Admin, desde el panel de wordpress re-instale, quite el código del widget, cambie a utf-8, el titulo de wordpress y listo lo raro es q yo tengo como panel de host DIRECTADMIN.

  14. A mi es la segunda vez que me pasa y buscando como hacer para que no me vuelva a pasar e llegado aqui.

    La otra vez no sabia muy bien que era, asi que directamente resubi todos los archivos y meti una copia de la base de datos y lo solucioné, pero ahora, un mes mas tarde estoy con el mismo problema. Estoy volviendo a resubir todo y la BD ya la tengo restaurada a hace 3 o 4 dias.

    A mi el problema principal es que cuando accedo a mi pagina me sale Error de HTTP 500 y no puedo acceder al panel de WP ni nada de nada. Asi que por eso la otra vez volvi a meter todo de nuevo.

    Espero que se solucione pronto porque tener que resubir la pagina cada vez que me la hackean es un palizon.

    Un pregutna que tengo: Al hackearme la pagina quiere decir que han descubierto mi login y contraseña para entrar en la admin de WP? y el login de Cpanel y la contraseña? Tengo que volver a cambiar login y contraseña de estas cosas?

    • Hola Javi,

      En estos momento sigue sin estar claro como se producen las infecciones, por lo que nosotros si que te recomendaríamos cambiar las contraseñas; más vale prevenir que curar.

  15. Además del «hacked by hacker», ayer empezó a propagarse el «hacked by haxorsistz». Hay más información aquí: Como eliminar “Hacked By haxorsistz” de WordPress.

  16. Muchas gracias amigos me sirvio en lo que me faltaba era la codificacion

  17. Cordiales saludos para todo@s. Soy un usuario novato de WP y me encontré con el problem de hacker by hacker. Felizmente cuando me percaté, el jodido virus aún no había afectado a todo el sitio y me dio tiempo de poder pasar el virus scaner al cpanel y eliminar algunos archivos infectados.

    Estuve experimentando sobre como limitar los permisos a los usuarios en el FTP y al parecer he conseguido una solución que también podría ayudar. Para proteger que nadie pueda hacer modificaciones en los archivos y las carpetas del wordpress, podrías realizar lo siguiente:

    1.- ingresa a tu portal mediante cuenta FTP.
    2.- ingresa a la carpeta public_html.
    3.- ingresa al directorio donde está instalando el WP.
    4.- remarca las carpetas wp-admin, wp-content, wp-includes y luego le das click derecho y elijes la opción permisos de archivo y si el valor numérico está en 755, debes cambiarlo a 754.

    De esta manera evitarás que nadie, más que tú pueda tener acceso a los archivos y carpetas del wordpress.

    NOTA1: deberás volver a realizar el cambio de permisos en la próxima vez que quieras editar tu admin de wordpress.

    NOTA2: el porqué del cambio de los valores numéricos lo ha explicado muy bien el compañero de este blog líneas más arriba.

    Gracias por la ayuda, saludos.

    • Gracias por el comentario.

      No tengo muy claro que esto sea una solución factible para muchos de los usuarios, ya que como indicas «NOTA1: deberás volver a realizar el cambio de permisos en la próxima vez que quieras editar tu admin de wordpress».

      No obstante muchas gracias por aportar.

  18. Saludos, buena publicación, quería decirles que para desactivar el editor de temas en wordpress también se puede hacer colocando esta línea en su wp-config.php

    define(‘DISALLOW_FILE_EDIT’, TRUE);

    y por supuesto al enviar wp-config.php al servidor sería bueno protegerlo contra escritura, mi blog lo han atacado de múltiples formas, cada vez que me siento seguro de haber arreglado todas las fallas de seguridad recibo algún ataque con características nuevas para el cual no estaba preparado.

  19. Lo recomendado en estos casos,
    no utilizar los instaladores por defecto de cpanel, como fantastico
    No usar el prefix por defecto wp_
    eliminar el usuario admin despues de la instalacion y crear uno nuevo
    entrealgunas otras cosas

    • Hola Gerardo,

      Gracias por tu comentario, completamente de acuerdo con que en estos casos lo mejor es no utilizar los instaladores de los paneles; pero por otro lado son muy cómodos, pero hay que valorar que es más importante: Seguridad o comodidad.

      Y respecto a los otros consejos, para mi el más importante es no utilizar el usuario «admin». Nosotros monitorizamos los intentos de login y en el 99% de las veces el usuario probado es «admin» y en el 1% «sysadmin» o similar, pero casi siempre «admin».

  20. Muchas gracias, todo un aporte, pero les cuento que a mi me pasa con una empresa puntual de hosting, con otros proveedores, me va muy bien y no logran hackear el sitio.

    Será una vilnerabilidad del hosting ademas ?

    Gracias