
🔍 Usando WPScan: encontrar vulnerabilidades de WordPress 2026
Ha actualizado sus plugins, configurado HTTPS y establecido un firewall. Su sitio parece seguro. Pero, ¿cómo sabe que uno de los plugins instalados no tiene una vulnerabilidad que se esté explotando en este momento?
La verificación manual con bases de datos de vulnerabilidades lleva horas. WPScan lo hace en medio minuto: un escáner de seguridad de WordPress de código abierto con interfaz de línea de comandos que, según sus propias estadísticas de base de datos, rastrea más de 73 000 vulnerabilidades en el núcleo, plugins y temas. A continuación: instalación, token de API, escaneo básico y avanzado, fuerza bruta de contraseñas.
💡 Resumen rápido:
Instale WPScan mediante gema de Ruby, Docker o Homebrew y actualice la base de datos de metadatos con
wpscan --updateRegistre un token de API gratuito en wpscan.com: 25 solicitudes por día, sin un token el escáner no mostrará datos de vulnerabilidad
Ejecute un escaneo básico:
wpscan --url https://your-site.com --api-token YOUR_TOKENVerifique plugins y temas vulnerables con los flags
-e vpy-e vt, enumere usuarios con-e uPara fuerza bruta de contraseñas, prepare un archivo de diccionario y páselo con el flag
--passwords
Qué es WPScan
WPScan, un escáner de seguridad de WordPress gratuito para uso no comercial, está escrito en Ruby. La primera versión se publicó en junio de 2011 y desde entonces la herramienta se ha convertido en el estándar de facto para realizar pruebas de penetración en sitios WordPress.
El escáner contrasta la versión de WordPress instalada, los plugins activos y los temas con la Base de Datos de Vulnerabilidades de WordPress en wpscan.com, mantenida por un equipo de especialistas en seguridad. Según las estadísticas de la base de datos, documenta más de 73 000 vulnerabilidades en el núcleo, plugins y temas. Cada entrada es verificada manualmente por un equipo dedicado de expertos en WordPress. Desde 2023, WPScan es una Autoridad de Numeración CVE y asigna directamente números CVE a las vulnerabilidades del ecosistema WordPress.
Más allá de las vulnerabilidades, WPScan puede enumerar inicios de sesión de usuario a través de la API REST y los feeds de autores, aplicar fuerza bruta a contraseñas desde un diccionario, encontrar copias de seguridad de wp-config.php expuestas, volcados de bases de datos y registros de errores abiertos.
Un matiz importante de la licencia: el uso gratuito del escáner CLI está permitido solo para fines no comerciales. Las agencias que escanean sitios de clientes necesitan una suscripción de pago. Los términos se describen en el sitio oficial de WPScan.
Instalación y actualizaciones
WPScan está disponible de tres maneras. Elija la que se adapte a su flujo de trabajo.
Gema de Ruby, opción universal para Linux, macOS y Windows con Ruby instalado:
1 gem install wpscan
Docker, entorno aislado sin dependencias:
1 docker pull wpscanteam/wpscan
Ejemplo de ejecución con Docker:
1 docker run -it --rm wpscanteam/wpscan --url https://example.com -e u
Homebrew, para macOS:
1 brew install wpscanteam/tap/wpscan
Después de la instalación, actualice primero la base de datos de metadatos local. Contiene información sobre las últimas versiones de plugins y temas, sin ella el escáner no podrá determinar si la versión instalada está desactualizada. La información de vulnerabilidades se solicita por separado a través de la API en tiempo real.
1 wpscan --update
La actualización tarda unos segundos. La salida mostrará la versión de WPScan y la confirmación de que la base de datos está actualizada. Repita wpscan --update antes de cada auditoría: los desarrolladores publican actualizaciones de metadatos varias veces por semana.
Token de API: la clave para los datos de vulnerabilidades
El error de principiante más común: ejecutar wpscan --url site.com sin un token y preguntarse por qué el escáner no informa sobre vulnerabilidades. Sin un token, WPScan opera en modo «solo metadatos». Reportará que un plugin está desactualizado, pero no dirá qué CVE están asociados a él.
Regístrese en wpscan.com, es gratuito y toma un minuto. El plan gratuito ofrece 25 solicitudes API por día. Un escaneo consume 1 solicitud para la versión de WordPress, 1 solicitud por cada plugin instalado y 1 solicitud por cada tema. Un sitio WordPress típico tiene más de una docena de plugins instalados, por lo que el límite gratuito alcanza para un escaneo completo por día.
El token se pasa con la bandera --api-token en cada ejecución:
1 wpscan --url https://example.com --api-token YOUR_TOKEN
Para evitar ingresar el token en cada comando, guárdelo en el archivo de configuración ~/.wpscan/scan.yml:
1 api_token: YOUR_TOKEN
Después de eso, WPScan tomará el token automáticamente.
Escaneo básico de sitios
Comando de auditoría mínima:
1 wpscan --url https://example.com --api-token YOUR_TOKEN
El escáner determinará la versión de WordPress, el tema activo, detectará números de versión expuestos y verificará problemas básicos de configuración: accesibilidad de wp-cron y readme.html, el directorio de cargas, la capacidad de registro de usuarios.
La salida está estructurada con marcadores de color: verde para mensajes informativos, amarillo para advertencias, rojo para vulnerabilidades encontradas. Cada vulnerabilidad va acompañada de un enlace a la ficha de la base de datos de WPScan con una descripción del vector de ataque, versiones afectadas y recomendaciones de remediación.
El escaneo básico suele tomar menos de un minuto. El tiempo exacto depende del tamaño del sitio y la velocidad del hosting.
Encontrar plugins vulnerables
Los plugins, el principal vector de ataque en WordPress. Según estadísticas de WPScan, más del 90% de las vulnerabilidades conocidas están en plugins. El comando de verificación:
1 wpscan --url https://example.com -e vp --api-token YOUR_TOKEN
La bandera -e vp (enumerar plugins vulnerables) lista solo los plugins con vulnerabilidades conocidas. Este es el modo más rápido y práctico: cruza los plugins instalados con la base de datos y reporta solo aquellos con problemas documentados.
Por defecto, WPScan usa el modo de detección pasiva, analizando el HTML de la página sin solicitudes adicionales. Para obtener la máxima cobertura a costa de carga adicional en el servidor, cambie al modo mixto:
1 wpscan --url https://example.com -e vp --plugins-detection mixed --api-token YOUR_TOKEN
El modo mixed primero aplica el análisis pasivo y luego verifica agresivamente las rutas conocidas de plugins para detectar instalaciones ocultas e inactivas.
Si el escáner encontró un plugin vulnerable, actualícelo a la última versión. Es casi seguro que el desarrollador ha publicado un parche. Si no hay actualización y el plugin está abandonado, elimínelo y busque una alternativa. Dejar un plugin con una vulnerabilidad conocida en un sitio en producción es inaceptable.
Encontrar temas vulnerables
Los temas se verifican de manera similar a los plugins:
1 wpscan --url https://example.com -e vt --api-token YOUR_TOKEN
El flag -e vt (vulnerable themes) verifica el tema activo y todos los temas instalados en busca de vulnerabilidades conocidas. Los temas son atacados con menos frecuencia que los plugins, pero las vulnerabilidades aparecen, especialmente en temas que incluyen constructores de páginas y sliders.
El modo de detección de temas predeterminado es agresivo, ya que el análisis pasivo a menudo omite temas inactivos. Si el servidor es débil y la carga es crítica, limítelo al modo pasivo:
1 wpscan --url https://example.com -e vt --themes-detection passive --api-token YOUR_TOKEN
Cuando encuentre un tema vulnerable, actúe bajo el mismo principio: actualícelo o elimínelo. Los temas hijo heredan las vulnerabilidades del tema padre, verifique ambos.
Enumeración de usuarios
Un atacante que conoce los nombres de usuario de WordPress solo necesita adivinar las contraseñas. WPScan muestra qué inicios de sesión son visibles desde el exterior:
1 wpscan --url https://example.com -e u
El escáner itera a través de los ID de usuario y extrae los nombres de usuario desde la API REST, los feeds de autor (/author/name/) y otros puntos de acceso públicos. El resultado se ve así:
1 [i] User(s) Identified: 2 [+] admin 3 [+] editor 4 [+] serg
Idealmente, no debería ver ningún nombre de usuario. Si WPScan encontró usuarios, tome medidas:
- Establezca un nombre público diferente del nombre de usuario en los ajustes del perfil.
- Desactive la API REST para visitantes no autorizados mediante un plugin o
.htaccess. - Un firewall a nivel DNS, como Sucuri o Cloudflare, bloqueará el escáner antes de que llegue: verá un error de tiempo de espera en lugar de una lista de usuarios.

Las versiones actuales de WordPress limitan la enumeración a través de la API REST, pero los temas y plugins pueden abrir vías alternativas. Depender solo del núcleo es insuficiente.
Fuerza bruta de contraseñas
WPScan soporta ataques de diccionario contra contraseñas. El escáner intenta autenticarse como cada usuario encontrado con cada contraseña de un archivo de lista. La operación consume bastantes recursos, pero el resultado vale la pena: descubrirá si algún administrador está usando qwerty123.
Prepare un archivo de texto con contraseñas, una por línea, y ejecute:
1 wpscan --url https://example.com -e u --passwords /path/to/passwords.txt
Las listas de palabras predefinidas están disponibles en Kali Linux (/usr/share/wordlists/) y en fuentes abiertas como el repositorio SecLists en GitHub. Para una verificación básica, un archivo con las 500-1000 contraseñas más comunes es suficiente.
El parámetro --threads N controla el número de intentos simultáneos. El valor predeterminado es 5. Aumentarlo a 20-30 acelerará la fuerza bruta, pero generará una carga notable en el servidor y puede activar la protección del hosting.
Antes de ejecutar la fuerza bruta, haga una copia de seguridad del sitio y notifique al proveedor de hosting: algunos bloquean IPs por múltiples intentos fallidos de inicio de sesión.
Capacidades adicionales
WPScan puede hacer más que auditorías básicas de plugins y usuarios. Estos son algunos escenarios útiles.
Encontrar todos los plugins, no solo los vulnerables:
1 wpscan --url https://example.com -e ap --api-token YOUR_TOKEN
La bandera -e ap (all plugins) enumera todos los plugins de la base de datos de WPScan. La operación toma un tiempo considerable. Úsela para auditorías completas, no para verificaciones rutinarias.
Detectar copias de seguridad y volcados:
1 wpscan --url https://example.com -e cb,dbe
Las banderas cb (config backups) y dbe (database exports) buscan copias de seguridad de wp-config.php y volcados SQL accesibles públicamente, dejados accidentalmente por plugins de respaldo. Un archivo así en acceso abierto es críticamente peligroso: un atacante obtiene las credenciales de la base de datos.
Escaneo sigiloso:
1 wpscan --url https://example.com --stealthy --api-token YOUR_TOKEN
La bandera --stealthy añade retrasos aleatorios entre solicitudes, enmascarando la actividad del escáner como comportamiento de un visitante normal. Útil si el servidor bloquea agresivamente la actividad sospechosa.
Enumeración de archivos multimedia:
1 wpscan --url https://example.com -e m1-100
Verifica los IDs de archivos multimedia en el rango especificado. Ayuda a descubrir documentos confidenciales accesibles por enlace directo y copias de seguridad subidas fuera de la biblioteca multimedia.
Video tutorial completo de WPScan, desde la instalación hasta escenarios avanzados:
⁉️🤔 Preguntas frecuentes
¿Se necesita WPScan si ya tengo instalado Jetpack Protect o Wordfence?
Sí, se necesita. Los plugins de seguridad funcionan desde dentro de WordPress y bloquean ataques en tiempo real. WPScan observa el sitio desde fuera, igual que un atacante. Encuentra problemas que el plugin no ve: copias de seguridad expuestas, enumeración de usuarios a través de vectores no estándar, vulnerabilidades en plugins inactivos pero no eliminados. Ambos enfoques juntos proporcionan una verdadera defensa en profundidad.
¿Es seguro WPScan para mi sitio? ¿No hará que se caiga el servidor?
El escáner envía solicitudes HTTP estándar, las mismas que un visitante normal. En modo pasivo, solo analiza el HTML sin carga adicional. El modo agresivo con enumeración completa de plugins (
-e ap) genera cientos de solicitudes y puede ralentizar un hosting débil. Para verificaciones regulares, use-e vp,vt,u, son unas pocas docenas de solicitudes, seguro para cualquier servidor.
¿Se puede automatizar el escaneo?
Sí. Para desarrolladores, funciona bien un cron job que ejecute un contenedor Docker una vez por semana y envíe un informe por correo electrónico. Para todos los demás, el servicio WPScan.com escanea sitios automáticamente según un calendario y envía notificaciones sobre nuevas vulnerabilidades. Frecuencia óptima: escaneo completo una vez por semana, verificación de componentes de alta prioridad a diario. Para auditorías manuales, la CLI gratuita es suficiente; para monitoreo continuo, considere una solución automatizada.
¿Qué hacer si WPScan encontró una vulnerabilidad y no hay actualización?
El plugin fue abandonado por el desarrollador. Algoritmo: (1) verifique si la vulnerabilidad se explota activamente, la ficha en la base de datos de WPScan contiene esta información; (2) si no hay ataques y el plugin es crítico para el negocio, restrinja temporalmente el acceso a él mediante
.htaccessy planifique su reemplazo; (3) si se registran ataques, elimine el plugin de inmediato. Un compromiso entre funcionalidad y seguridad es imposible aquí.
¿En qué se diferencia WPScan de otros escáneres de WordPress?
WPScan es el único escáner con una base de datos de investigación de vulnerabilidades dedicada que existe desde hace más de diez años. Alternativas como WPSeku enumeran plugins a partir de una lista estática sin fichas CVE detalladas. WPScan cuenta con el respaldo de Automattic a través de una asociación con Jetpack, lo que garantiza el desarrollo del proyecto a largo plazo.
Qué elegir: CLI, Docker o SaaS
La elección depende de sus tareas. Resumen rápido:
Opción | Para quién | Frecuencia | Ventaja |
|---|---|---|---|
Docker | Un sitio, auditoría puntual | Una vez al mes | Sin dependencias |
Gema Ruby + cron | Múltiples sitios | Semanal | Informes flexibles |
WPScan SaaS | Agencia, más de 10 sitios | Continua | Notificaciones, panel de control |
- Si tiene un sitio y necesita una verificación puntual, use Docker: un comando, cero dependencias.
- Si tiene más de diez sitios y necesita informes regulares, la gema Ruby en un cron job se encargará.
- Si es una agencia con cien sitios de clientes, una suscripción a WPScan SaaS le quitará el dolor de cabeza del monitoreo.
No olvide el token de API, sin él solo ve la mitad del panorama. Comience con los tres comandos del bloque «Resumen rápido» de arriba. Medio minuto y sabrá exactamente si el sitio tiene vulnerabilidades abiertas. Qué herramienta de seguridad le ha ayudado en la práctica, escríbalo en los comentarios.



