Hacking Ético: Analiza y aprende a encontrar vulnerabilidades con WPScan. Consejos para securizar sitios creados con WordPress

Actualmente existen mas de 75 millones de sitios que utilizan WordPress. Si estás buscando analizar la seguridad de tu sitio web de forma rápida y sencilla, obteniendo información sobre vulnerabilidades con el propósito de mejorar la seguridad de tu sitio web, te aconsejo que procedas a leer este artículo.

Qué es WPScan

WPScan es una utilidad gratuita de Caja negra, que permite analizar la seguridad de un sitio creado con WordPress de forma externa. Los resultados y reportes que obtenemos nos servirán para analizar la seguridad de nuestro sitio creado con WordPress.

Aunque en este artículo vamos a centrarnos en como utilizarlo desde línea de comandos, también podemos instalar el plugin para WordPress creado específicamente para ello.

WPScan utiliza sus propias bases de datos donde podrá analizar y comprobar miles de vulnerabilidades relacionadas con plugins, temas y la propia configuración de WordPress.  Entre toda la información analizada, podemos destacar:

  • Versión de WordPress y sus principales vulnerabilidades.
  • Enumeración de Plugins y Temas con sus posibles vulnerabilidades.
  • Comprobación de usuarios con claves débiles.
  • Chequeo de accesibilidad de ficheros de configuración.
  • Volcados de bases de datos que podrían ser accesibles.
  • Ficheros de Logs expuestos por Plugins.
  • Comprobación de activación de WP-Cron.
  • Permisos sobre listados de directorios de carga.
  • Vulnerabilidad de timthumb que permite el tratamiento de imágenes.
  • Etc …

Primeros pasos con WPSCan

Utilizar WPScan desde línea de comandos es bastante sencillo. Vamos a empezar realizando un análisis básico incluyendo la opción –url con la dirección de la página que necesitamos chequear:

Aunque WPScan siempre nos avisa en caso de encontrar vulnerabilidades, no lo hará detalladamente sobre Plugins y Temas. Por lo que si necesitamos obtener información detallada sobre vulnerabilidades de Plugins y Themes vamos a necesitar obtener una Key en la página web oficial de WPScan.

Una vez nos registramos y hemos obtenido la key, podemos utilizar la opción –api-token con la clave que nos han asignado. Esto nos permite realizar 25 solicitudes diarias a la API de forma gratuita. Esta es la única forma de obtener información sobre vulnerabilidades en Plugins o Temas.

Sino quieres estar incluyendo continuamente el token de autorización puedes crear un fichero de configuración al que llamaremos scan.yml e incluye el código que indico en la parte inferior.

La opción —enumerate pone a nuestra disposición el tipo de vulnerabilidades que queremos analizar:

  • vp Vulnerable plugins
  • ap All plugins
  • p Popular plugins
  • vt Vulnerable themes
  • at All themes
  • t Popular themes
  • tt Timthumbs
  • cb Config backups
  • dbe Db exports
  • u user accounts

Si el propietario de WordPress ha ocultado información sobre la existencia de este y WPSan no es capaz de encontrarlo, podemos forzar a realizar el escaneo utilizando la opción –force.

Con la opción -o podemos indicar que guarde los resultados en un fichero.

Hackeando con WPScan

Podemos listar usuarios de la siguiente manera, lo que nos puede ayudar a la hora de conocer un posible acceso al WordPress, si el propietario ni se ha molestado en cambiar su nombre:

Si creemos conocer el usuarios/s podemos incluirlo directamente:

Y si queremos incluir una lista de usuarios y claves a comprobar vamos a realizar lo siguiente:

Si WPScan encuentra coincidencias veremos un resultado parecido a este:

Podemos especificar el tipo de ataque (wp-login, xmlrpc, xmlrpc-multicall), la url del login si esta ha sido cambiada, etc …

Consejos para mejorar la seguridad

A continuación enumero unos consejos básicos que van a mejorar la seguridad de nuestro sitio web creado con WordPress.

Elimina ficheros innecesarios

WordPress contiene ficheros que revelan información sobre tu sitio web, como pueden ser la versión que estás utilizando y que podría dar pistas sobre vulnerabilidades a la persona que está atacando tu sitio web.

Entre los ficheros que pueden ser considerados innecesarios después de realizar una instalación de WordPress podemos destacar:

  • readme.html
  • wp-config-sample.php
  • wp-admin/install.php

Deshabilita o desactiva XML-RPC

XML-RPC es un protocolo de transmisión de datos que permite que WordPress pueda comunicarse con otras plataformas, por lo que hay que tener especial cuidado si lo tenemos habilitado, ya que esto podrá permitir interactuar con tu sitio web (desde crear y eliminar entradas en tu blog, hasta realizar pingbacks).

Así que para evitar que programas de fuerza bruta como pueden ser XMLRPC Brute Force, XMLRPC Brute Force Exploit, etc … pueden hackear tu sitio web, es recomendable deshabilitar esta característica.

Si accedemos a la dirección url inferior donde esté instalado WordPress podemos obtener la información necesaria para saber si tenemos activada esta característica.

Como el fichero xmlprc.php forma parte del Core de WordPress, no vamos a eliminarlo para que este no sea vea afectado, sino que vamos a emplear cualquiera de los siguientes métodos:

  • Podemos utilizar Plugins que deshabiliten esta característica para así reducir ataques que requieren métodos de autenticación en nuestro sitio web, pero este no suele ser el método seguro de hacerlo.
  • Modificar e incluir un código de bloqueo en el fichero functions.php de nuestro tema.
  • Para asegurarnos el bloqueo permanente del fichero xmlrpc.php, podemos editar los ficheros de configuración de nuestro servidor Nginx o Apache.

Si utilizamos Nginx necesitamos editar los ficheros ubicados en /etc/nginx/sites-available/ de nuestro dominio e incluir las siguiente líneas:

Si estamos utilizando Apache y podemos crear o editar el fichero .htaccess en nuestro directorio principal de WordPress e incluir la siguiente línea:

Otra forma sencilla es modificando el fichero functions.php de nuestro tema e incluyendo las siguientes líneas. Más información sobre este método en el:

Más información sobre este método haciendo clic aquí.

Comprueba y protege los permisos a ficheros y directorios.

Recuerda proteger directorios y ficheros.

  • (*) Los ficheros deben tener asignados permisos 644.
  • (*) Los directorios 755 (wp-content, wp-includes, etc …).
  • Podemos proteger el fichero wp-config.php asignándole permisos 440 o 400 una vez terminado el proyecto.
  • Para mayor seguridad puedes asignar al fichero index.php permisos 444 que asegura que sólo el administrador pueda escribir sobre este fichero.

(*) Permisos necesarios.

Instala Plugins de Seguridad

Tanto si eres un usuario experimentado como sino, también puedes utilizar el plugin de WordPress que nos ofrece WPScan , de esta forma registrándonos en su página e incluyendo el token de autenticación que nos ofrecen, podemos obtener informes de forma periódica sobre vulnerabilidades que puedan ser encontradas en nuestro sitio web.

Recuerda que la capa gratuita está limitada a 25 chequeos cada día.

Instala WPS Hide Login que permite cambiar la Url de Login y limita los intentos de acceso fallidos con Limit Login Attempts Reloaded.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.