Guía de WPScan: Cómo auditar la seguridad de WordPress (Instalación nativa)

WordPress mueve cerca del 40% de internet, lo que lo convierte en el blanco principal de bots automatizados. Para auditar su seguridad desde el exterior —tal como lo haría un atacante— el estándar de la industria es WPScan.

Se trata de un escáner de caja negra (black-box) que lee cabeceras, rutas expuestas y firmas de componentes. Sin embargo, lanzarlo a ciegas contra un servidor solo genera falsos positivos o bloqueos de IP.

En este artículo vamos a desplegarlo de forma nativa usando Ruby, configurar su API para no tener que teclear el token en cada ejecución y lanzar comandos de auditoría efectivos. Proteger tu WordPress es importante y esta herramienta es excelente para auditarte.

El requisito innegociable: La API de WPScan

Para que el escaneo pase de ser una simple curiosidad a una herramienta profesional, necesitas conectar WPScan a su base de datos de vulnerabilidades (WPVDB).

Si escaneas sin token, WPScan te dirá qué versión de un plugin tienes, pero no cruzará ese dato con exploits conocidos. Registrando una cuenta gratuita en su web oficial obtienes un API Token que permite hacer hasta 25 peticiones diarias, suficiente para revisiones estándar.

Instalación paso a paso mediante Ruby Gems

WPScan está escrito en Ruby. Instalarlo como gema es la forma nativa, ideal para integrarlo en tu propio sistema o en scripts locales sin depender de contenedores.

Requiere tener Ruby instalado en tu sistema (versión 2.6 o superior) y las librerías de compilación básicas. Puedes usar docker también si lo prefieres pero aquí explicaremos el método de instalación con ruby.

Paso 1: Instala la gema globalmente en tu sistema. Previamente tienes que tener ruby on rails

# 1. Actualiza la lista de paquetes
sudo apt update

# 2. Instala Ruby y las herramientas de compilación
sudo apt install -y ruby-full build-essential

# 3. Instalamos la gem de wpscan
gem install wpscan
Bash

Paso 2: Actualiza la base de datos local de firmas (ejecuta esto siempre antes de empezar una auditoría).

wpscan --update
Bash

Configuración del API Token (Archivo cli_options.yml)

Tienes dos formas de hacerlo. Esta que vamos a explicarte es la más limpia y recomendada porque el programa la lee de forma nativa. La segunda es mediante variables de tu terminal y tendrás que investigarlo por tu cuenta. Elige la que mejor encaje con tu forma de trabajar (recuerda cambiar TU_API_KEY por el token real que te da la web de WPScan).

WPScan moderno busca automáticamente un archivo de configuración llamado scan.yml dentro de una carpeta oculta en tu usuario.

El único «truco» técnico aquí es que este archivo utiliza formato YAML, el cual es extremadamente estricto con los espacios.

1. Crea la carpeta oculta para WPScan:

mkdir -p ~/.wpscan
Bash

2. Crea la cabecera del archivo: Esto le indica a WPScan que vas a introducir opciones por defecto para la línea de comandos.

echo "cli_options:" > ~/.wpscan/scan.yml
Bash

3. Inyecta tu API Key (Atención a los espacios): Este comando añade tu clave. Fíjate que hay exactamente dos espacios antes de la palabra api_token. Esa sangría es obligatoria para que el archivo funcione.

echo "  api_token: TU_API_KEY" >> ~/.wpscan/scan.yml
Bash

A partir de ahora, cuando ejecutes cualquier escaneo (ej: wpscan --url https://ejemplo.com), WPScan leerá ese archivo en milisegundos y aplicará la clave automáticamente.

Comandos prácticos de auditoría

Con la herramienta instalada y el token configurado, estos son los comandos exactos para distintas fases de la auditoría (ya te habíamos hablado de este herramienta en nuestro artículo sobre como auditar tu propio web).

1. Escaneo básico (Reconocimiento pasivo)

Ideal para un primer vistazo. Revisa cabeceras y rutas estándar sin hacer demasiado ruido.

wpscan --url https://tu-sitio-wordpress.com
Bash

2. Escaneo con evasión básica (Stealth)

Si el sitio está detrás de un firewall de aplicación web (WAF) básico, bloqueará las peticiones que se identifiquen como WPScan. Este comando ofusca la herramienta.

wpscan --url https://tu-sitio-wordpress.com --random-user-agent --stealthy
Bash

3. Enumeración avanzada (Usuarios y plugins vulnerables)

Este es el escaneo más útil y agresivo. Fuerza la búsqueda de usuarios válidos (necesarios para ataques de fuerza bruta) y filtra el reporte para mostrar solo los plugins que tienen vulnerabilidades activas.

wpscan --url https://tu-sitio-wordpress.com --enumerate vp,u
Bash

El muro del WAF y los falsos positivos

Al auditar desde fuera, debes interpretar los resultados con criterio técnico.

Evasión de bloqueos por tasa de peticiones (Throttling)

Si el servidor te expulsa y devuelve errores HTTP 403 o 429 constantes, el WAF está detectando la ráfaga de peticiones. Puedes ralentizar el escáner añadiendo una pausa en milisegundos entre cada petición:

wpscan --url https://tu-sitio-wordpress.com --throttle 500
Bash

Falsos positivos por versiones cacheadas o manuales

WPScan suele averiguar la versión de un plugin leyendo el archivo readme.txt que cuelga en su directorio. Si un administrador parchea una vulnerabilidad tocando el código PHP a mano pero no actualiza el número de versión en el readme.txt, WPScan marcará el plugin como vulnerable. Siempre verifica manualmente los hallazgos críticos.

Checklist de mitigación tras el escaneo

Si el reporte final sale en rojo, aplica este orden de prioridades:

GravedadHallazgo típicoAcción de Mitigación Inmediata
CríticaRCE o inyección SQL en un pluginActualizar. Si no hay parche disponible, desactivar y borrar el plugin.
AltaEnumeración de usuarios exitosaBloquear el endpoint de la API REST (/wp-json/wp/v2/users) para visitantes no autenticados.
MediaVersión del Core desactualizadaAplicar actualización de WordPress. Forzar actualizaciones menores automáticas.
BajaArchivos readme.html expuestosEliminar del servidor o bloquear acceso mediante .htaccess o Nginx.

Conclusión

WPScan es un excelente termómetro de seguridad para WordPress, pero no sustituye el bastionado del servidor. Instalarlo de forma nativa y configurar correctamente el archivo cli_options.yml agiliza enormemente las auditorías recurrentes.

No te quedes solo en leer el reporte: usa la información para parchear antes de que los bots que escanean internet de forma masiva den con tu infraestructura.

Carlos del Río Sáez
Especialista en tecnología y ciberseguridad con más de 17 años de experiencia en entornos educativos y corporativos. Enfocado en sistemas, IA aplicada y ciberdefensa. Ingeniero informático. Miembro de ISC2 (CC Certified) y Security+ Certified.

Suscríbete a Rutaciber.com

El objetivo principal de Rutaciber.com es educar en ciberseguridad. Suscríbete aquí y recibe nuevos artículos en tu email 👇

Sin spam, solo nuevos artículos | Política de privacidad

Artículos relacionados...