Como evitar que una web con WordPress sea hackeada desde la misma instalación

Empecé Applerain News utilizando Blogger para darme cuenta que quería tener una Web, al tenerla ya vi que necesitaba un CMS. Mi primera elección fue Joomla pero lo dejé rápidamente porque veía muy confusa toda su administración, al final como casi todo el mundo me he decidido por WordPress.

Mi grata sorpresa fue que en tan solo unos pocos días mi web fue hackeada, si introducía la URL directamente en Chrome me llevaba a mi sitio pero si hacía la búsqueda desde Google me llevaba a una web de Wikis porno!! La culpa desde luego ha sido mía por no tomarme unos minutos de lectura de como evitar el hackeo en un sitio Wordpress.

Según lo visto hay 3 modos muy comunes a la hora de hackear una web con WordPress, las principales vías de entrada para ataques son: 1. Temas y plugins sin actualizar. 2. Datos de acceso débiles. 3. Inyecciones en la base de datos Os muestro algunos pasos a seguir que me he encontrado:

NOTA: Todos estos pasos los podrás realizar si tienes control total en la instalación de Wordpress, algunas compañías de hosting tienen la instalación automatizada.

1. Instala la última versión de Wordpress en un subdirectorio y no en la raíz

A parte de que todo se verá más ordenado en el servidor, si tu web sufre un hackeo el directorio raíz quedará protegido del ataque.

Os dejo un Link de como configurar las opciones del escritorio Wordpress para que la URL apunte al lugar correcto.

Otro paso de seguridad en la instalación de Wordpress sería cambiar el prefijo de las tablas que por defecto es wp_ y los hackers lo tienen bien sabido.

2. Cambiar el archivo index.php al directorio raíz

Piensa que al cambiar el archivo index.php de lugar deberás de editar/modificar ese mismo archivo para que la URL te rediriga directamente al subdirectorio donde tienes instalado wordpress.

/** Loads the WordPress Environment and Template */
require(‘./subdirectorioNombre/wp-blog-header.php’);

En el link del paso anterior se explica como llevar a cabo esta tarea, no solo por seguridad sino que ya verás como la URL de tu web se ve más limpia y no apunta hacia el subdirectorio desde donde instalaste WordPress,

Si instalas WordPress en el directorio raíz tu archivo index.php ya estará en la raíz.

3. Proteger el directorio "wp-includes"

Esto se consigue con tan solo copiar el archivo .htaccess del directorio principal de tu instalación WordPress al directorio "wp-includes". Puede que tengas que configurar tu cliente FTP para poder ver este tipo de archivos.

4. Usa Plugins de Seguridad

Desde mi corta experiencia con WordPress ya he visto que muchos de los plugins de seguridad son meros Trials de 30 días para después pasar por caja. He encontrado un par gratis y bastante recomendables:

Exploit Scanner, he usado este plugin para scanear todos los archivos que contiene WordPress y así saber que ha cambiado desde la instalación inicial. En mi caso, en el archivo wp-config.php se colocaba un código malicioso base64_decode de 1024 caracteres que lo que hacía era redirigirme a una web wiki.

Better WP Security, está completamente en castellano y te ayuda a configurar muchos de los pasos que te recomiendo para que no seas hackeado:

- Cambiar URL de login, - Limitar intentos de acceso, - Cambiar prefijo tablas base de datos, - No poder escribir en wp-config.php y .htaccess, - Bloqueo a scanners de vulnerabilidades, - Como incluso la copia de seguridad de tu base de datos...

Este plugin lo he visto recomendado y mucho, tampoco es que tengamos que realizar todas las medidas que nos proponen ya que hay algunas que nos pueden crear problemas como sería el cambiar el nombre a la carpeta "wp-content" si lo que queremos es crear contenido y habilitar la "detección de cambios en archivos" ya que precisamos que nuestro servidor tenga SSL.

Como podéis ver la configuración es muy completa y allí no acaba pero ojo que te puedes denegar el servicio a tí mismo si te equivocas en el login o entras demasiadas veces a una página 404. El baneo es por IP por lo que con solo apagar/encender el Router renuevas la IP.

5. Cambiar el usuario Admin y usar una contraseña fuerte

Por defecto y como en todas las instalaciones el usuario que se crea es el Admin. Para cambiarlo tenemos 2 opciones:

1. Acceder a phpMyAdmin desde el Cpanel de tu Hosting y buscamos la tabla "Prefijo_users" donde modificaremos al usuario Admin. Para comprobar el resultado vamos a nuestro blog e intentamos primero acceder con el usuario Admin, si da error es que todo ha salido bien. Ahora accede con el nuevo usuario. 2. Crear desde el panel de administración de WordPress un nuevo usuario con todos los privilegios y después eliminar al usuario Admin. Recuerda de traspasar la propiedad de tus posts al nuevo usuario!

Si has decidido usar Better WP Security, piensa que hay opciones que impiden editar los archivos wp-config.php y .htaccess por lo que te puedes encontrar errores.

El tema de las contraseñas es más que sabido pero hay que recordarlo, combinar letras con números y caracteres especiales.

6. Elegir temas soportados

De temas gratuitos hay unos cuantos pero hay que saber escoger bien, sobretodo asegurarse de que vuestro tema vaya a estar soportado para próximas versiones de WordPress.

7. Escoger plugins sabiamente

Cuando buscas plugins para instalar hay que fijarse sobretodo que hayan sido probados para la última versión de WordPress disponible. Cuantos menos utilices mejor, suelen ser más vulnerables que el propio WordPress y mantenlos siempre actualizados. No por tener la web llena de plugins estas dando un mejor servicio o información, yo he decidido utilizar los plugins que trae por defecto WordPress y añadir los menos posibles. Casi todos los que tengo son de gestión o seguridad.

8. Planifica copias de seguirdad

En WordPress encontramos la base de datos (entradas, páginas) y el diseño (tema, layout, plugins) a la hora de hacer copias de seguridad. Lo realmente necesario sería la base de datos ya que todo el resto de cosas las podemos volver a descargar.

Cada cuanto hacer copias de seguridad? Pues tendría que estar determinado por la frecuencia con la cual actualizamos nuestro Blog: diariamente, semanalmente....

Sobretodo haz copias de seguridad en el momento en que vayas a actualizar algún elemento de tú Blog/Web por si algo saliese mal. Y ten en cuenta la diferencia que hay entre la base de datos y el diseño.

Para estos menesteres podréis encontrar un sin fin de plugins en la página oficial de WordPress, tanto para la base de datos como para el diseño.

9. Esconde el directorio de los Plugins

Cualquiera puede navegar al directorio de tus Plugins a través de esta ruta http://miDominio.com/wp-content/plugin, para esconderlo crea un simple fichero index.html en blanco y colocalo en la carpeta de "wp-content/plugin"

10. Protege tus ficheros y directorios

Si en nuestro servidor tenemos que los ficheros/directorios se puedan escribir es síntoma de inseguridad, para que no sean accesibles tendríamos que tener estos permisos:

- Permisos en Directorios 755 - Permisos en Ficheros 644

Para realizar estos cambios lo podemos hacer con el cliente FTP que usemos.

11. Mantén tú SoftWare al día

Los Hackers saben todas las vulnerabilidades que hay, por ejemplo si no actualizas Wordpress a la última versión y te mantienes en la anterior tendrás bastantes puertas de entrada a tú web.

Una buena práctica sería tener un subdominio (test.MiDominio.es) en el que tengas una copia exacta de tu sitio y así cada vez que tengas que hacer una gran actualización puedes ir testeando el comportamiento para después realizar esos cambios en la web principal. Haz los cambios uno a uno por si alguno falla saber donde está el problema.

HAZ UNA COPIA DE SEGURIDAD ANTES DE CAMBIAR NADA.

Y si ya he sido hackeado?


  1. Mantén la calma,
  2. Quita tu sitio de internet, cambia el nombre a index.php para que no sea accesible y añade un archivo index.html que muestre una página de mantenimiento,
  3. Haz una copia de seguridad,
  4. Usa Exploit Scanner para ver donde están los problemas y así saber donde acotar el problema,
  5. Desinstala todos los temas y plugins (muchos están codificados con prisas y pecan de no-seguros),
  6. Reinstala WordPress, recuerda que el archivo "wp-config.php" no se reescribe y tendrás que introducir los campos de la base de datos a mano,
  7. Revisa la Base de Datos por si encuentras algún extraño contenido o alguna referencia externa que no debiera de estar.
  8. Entra en WordPress usando un tema por defecto y sin plugins, si tú contenido aparece y no eres redirigido automáticamente a un sitio malicioso todo está bien, en caso contrario intenta vaciar la caché del navegador para asegurarte de que usas la última copia de tú web.
  9. Descarga otra vez todos los plugins y temas que tenias y empieza a reinstalarlos uno a uno e ir comprobando si el problema persiste.
  10. Conclusión:

    Que hackeen o no tu web dependerá bastante de ti y seguir estos pasos no te garantiza nada. No soy hacker pero supongo que irán a por las webs que se vean más vulnerables.

    Espero que os sirva de ayuda y si veis algún error o sabéis algún otro paso compartidlo.

    Fuentes utilizadas:

    http://ayudawordpress.com/los-3-modos-mas-comunes-de-hackear-wordpress-y-como-evitarlo/
    http://internetbusinessmastery.com/14-steps-to-installing-a-wordpress-site-with-hacker-protection
    http://www.marketingtechblog.com/wordpress-hacked/
    http://www.machighway.com/blog/2012/08/24/wordpress-hacks-are-becoming-more-common-take-these-steps-to-protect-your-site/

comments powered by Disqus