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.
Índice de contenidos
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 wpscanBashPaso 2: Actualiza la base de datos local de firmas (ejecuta esto siempre antes de empezar una auditoría).
wpscan --updateBashConfiguració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 ~/.wpscanBash2. 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.ymlBash3. 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.ymlBashA 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.comBash2. 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 --stealthyBash3. 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,uBashEl 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 500BashFalsos 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:
| Gravedad | Hallazgo típico | Acción de Mitigación Inmediata |
| Crítica | RCE o inyección SQL en un plugin | Actualizar. Si no hay parche disponible, desactivar y borrar el plugin. |
| Alta | Enumeración de usuarios exitosa | Bloquear el endpoint de la API REST (/wp-json/wp/v2/users) para visitantes no autenticados. |
| Media | Versión del Core desactualizada | Aplicar actualización de WordPress. Forzar actualizaciones menores automáticas. |
| Baja | Archivos readme.html expuestos | Eliminar 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.

