
wpscan v4.1.0
Escáner de seguridad de WordPress que detecta vulnerabilidades, enumera plugins/temas/usuarios y verifica contraseñas débiles. Se integra con la API de WPScan para obtener datos de vulnerabilidades en tiempo real.
WPScan
Escáner de Seguridad de WordPress
Base de datos de vulnerabilidades de WordPress de WPScan - Plugin de seguridad de WordPress
INSTALACIÓN
Prerrequisitos
- (Opcional pero altamente recomendado: rbenv)
- Ruby >= 3.3 - Recomendado: última versión estable
- Curl >= 7.72 - Recomendado: última versión estable
- La versión 7.29 tiene un segfault
- Las versiones < 7.72 pueden resultar en
Stream error in the HTTP/2 framing layeren algunos casos
- RubyGems - Recomendado: última versión estable
- Nokogiri podría requerir paquetes a instalar mediante su gestor de paquetes dependiendo de su SO, ver https://nokogiri.org/tutorials/installing_nokogiri.html
En una distribución de pentesting
Cuando se utiliza una distribución de pentesting (como Kali Linux), se recomienda instalar/actualizar wpscan a través del gestor de paquetes si está disponible.
En macOSX mediante Homebrew
brew install wpscanteam/tap/wpscan
Desde RubyGems
WPScan depende de gemas con extensiones nativas (p. ej. yajl-ruby, nokogiri, ffi), por lo que es necesario contar con un conjunto de herramientas C funcionales y los encabezados de desarrollo de Ruby antes de gem install wpscan. Sin ellos, la instalación falla con errores como Failed to build gem native extension o make: x86_64-linux-gnu-gcc: No such file or directory (ver #1844).
- Debian / Ubuntu:
sudo apt install build-essential ruby-dev - Fedora / RHEL / CentOS:
sudo dnf install @development-tools ruby-devel - Arch Linux:
sudo pacman -S base-devel ruby - Alpine:
sudo apk add build-base ruby-dev - macOS: instale las herramientas de línea de comandos de Xcode (
xcode-select --install).
Luego instale la gema:
gem install wpscan
En macOSX, si se produce un Gem::FilePermissionError debido a la Protección de Integridad del Sistema (SIP) de Apple, instale RVM y vuelva a instalar wpscan, o ejecute sudo gem install -n /usr/local/bin wpscan (ver #1286)
Actualización
Puede actualizar la base de datos local usando wpscan --update
La actualización de WPScan en sí se realiza mediante gem update wpscan o el gestor de paquetes (esto es bastante importante para distribuciones como Kali Linux: apt-get update && apt-get upgrade) dependiendo de cómo se instaló (previamente) WPScan.
Docker
Descargue el repositorio con docker pull wpscanteam/wpscan
Enumerar nombres de usuario
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u
Enumerar un rango de nombres de usuario
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u1-100
** reemplace u1-100 con un rango de su elección.
Persistir la base de datos local
La imagen incluye una copia de la base de datos local compilada en el momento de la construcción. Debido a que los comandos de ejemplo anteriores usan --rm, cualquier actualización de la base de datos realizada durante una ejecución se descarta cuando el contenedor sale, por lo que la siguiente ejecución comienza nuevamente desde la copia incluida (potencialmente desactualizada).
Montar un volumen nombrado en /wpscan/.cache/wpscan/db (el directorio de caché del usuario wpscan dentro del contenedor) mantiene la base de datos entre ejecuciones, por lo que wpscan --update solo vuelve a descargar archivos cuyas sumas de verificación realmente cambiaron y el aviso de caducidad de 5 días se comporta como lo haría en una instalación local:
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --update
El volumen nombrado se crea automáticamente en el primer uso si no existe.
Uso
La documentación completa del usuario se puede encontrar aquí; https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation
wpscan --url blog.tld Esto escaneará el blog usando opciones predeterminadas con un buen equilibrio entre velocidad y precisión. Realiza detección de versiones, detección de temas y descubrimiento de hallazgos interesantes. Para enumerar plugins, temas, usuarios, carpetas de respaldo, etc., use la opción -e (p. ej., -e ap para todos los plugins, -e vp para plugins vulnerables, -e bf para carpetas de respaldo).
Si se requiere un enfoque más sigiloso, entonces se puede usar wpscan --stealthy --url blog.tld.
Como resultado, al usar la opción --enumerate, no olvide configurar --plugins-detection en consecuencia, ya que su valor predeterminado es 'passive'.
Para más opciones, abra una terminal y escriba wpscan --help (si compiló wpscan desde el código fuente, debe escribir el comando fuera del repositorio git).
Ubicación de la base de datos
La ubicación de la base de datos sigue la Especificación de directorio base XDG:
- Instalaciones nuevas:
~/.cache/wpscan/db(o$XDG_CACHE_HOME/wpscan/dbsi está configurado) - Instalaciones existentes:
~/.wpscan/db(ruta heredada, mantenida por compatibilidad hacia atrás)
Los archivos de tiempo de ejecución como la caché HTTP predeterminada y el archivo de cookies se almacenan en $TMPDIR/wpscan cuando
$TMPDIR está configurado. De lo contrario, usan el mismo directorio de caché XDG por usuario, por ejemplo
~/.cache/wpscan/cache y ~/.cache/wpscan/cookie_jar.txt. Estos valores predeterminados se pueden anular
con --cache-dir y --cookie-jar.
Para migrar una instalación existente a la ruta XDG:
mv ~/.wpscan ~/.cache/wpscan
Opcional: API de la base de datos de vulnerabilidades de WordPress
La herramienta CLI de WPScan utiliza la API de la base de datos de vulnerabilidades de WordPress para recuperar datos de vulnerabilidades de WordPress en tiempo real. Para que WPScan recupere los datos de vulnerabilidades, se debe proporcionar un token de API mediante la opción --api-token, o a través de un archivo de configuración, como se discute a continuación. Se puede obtener un token de API registrando una cuenta en WPScan.com.
Se ofrecen hasta 25 solicitudes de API por día de forma gratuita, lo que debería ser suficiente para escanear la mayoría de los sitios web de WordPress al menos una vez al día. Cuando se agoten las 25 solicitudes diarias de API, WPScan continuará funcionando con normalidad pero sin datos de vulnerabilidades.
¿Cuántas solicitudes de API necesita?
- Nuestro escáner de WordPress realiza una solicitud de API para la versión de WordPress, una solicitud por cada plugin instalado y una solicitud por cada tema instalado.
- En promedio, un sitio web de WordPress tiene 22 plugins instalados.
Cargar opciones de CLI desde archivos
WPScan puede cargar todas las opciones (incluyendo --url) desde archivos de configuración; se verifican las siguientes ubicaciones (orden: de primero a último):
$XDG_CONFIG_HOME/wpscan/scan.json(siXDG_CONFIG_HOMEestá configurado)$XDG_CONFIG_HOME/wpscan/scan.yml(siXDG_CONFIG_HOMEestá configurado)~/.config/wpscan/scan.json(siXDG_CONFIG_HOMEno está configurado)~/.config/wpscan/scan.yml(siXDG_CONFIG_HOMEno está configurado)~/.wpscan/scan.json~/.wpscan/scan.ymlpwd/.wpscan/scan.jsonpwd/.wpscan/scan.yml
Si esos archivos existen, las opciones de la clave cli_options se cargarán y se sobrescribirán si se encuentran dos veces.
p. ej.:
~/.config/wpscan/scan.yml:
cli_options:
proxy: 'http://127.0.0.1:8080'
verbose: true
pwd/.wpscan/scan.yml:
cli_options:
proxy: 'socks5://127.0.0.1:9090'
url: 'http://target.tld'
Ejecutar wpscan en el directorio actual (pwd) es equivalente a wpscan -v --proxy socks5://127.0.0.1:9090 --url http://target.tld
Se pueden agregar otras opciones de línea de comandos usando la convención snake case. p. ej.:
cli_options:
user_agent: "Testing UA"
max_threads: 1
headers: "Custom-Header: aaaa; Another Header: bbb"
Guardar token de API en un archivo
La característica mencionada anteriormente es útil para mantener el token de API en un archivo de configuración y no tener que proporcionarlo cada vez a través de la CLI. Para hacerlo, cree el archivo ~/.config/wpscan/scan.yml con el siguiente contenido:
cli_options:
api_token: 'YOUR_API_TOKEN'
Cargar token de API desde variable de entorno (desde v3.7.10)
El token de API se cargará automáticamente desde la variable de entorno WPSCAN_API_TOKEN si está presente. Si también se proporciona la opción CLI --api-token, se usará el valor de la CLI.
Estado del servicio de API
Si experimenta problemas de conexión con la API de WPScan, puede verificar el estado del servicio en https://status.wpscan.com/. Cuando ocurran errores de conexión a la API, WPScan incluirá un enlace a la página de estado en el mensaje de error.
Enumerar nombres de usuario
wpscan --url https://target.tld/ --enumerate u
Enumerar un rango de nombres de usuario
wpscan --url https://target.tld/ --enumerate u1-100
** reemplace u1-100 con un rango de su elección.
Enumerar carpetas de respaldo
wpscan --url https://target.tld/ --enumerate bf
Esto buscará carpetas de respaldo creadas por plugins populares de respaldo de WordPress. Estas carpetas pueden contener datos sensibles como volcados de base de datos, archivos de configuración o copias de seguridad completas del sitio.
LICENCIA
Licencia de Código Fuente Pública de WPScan
El software WPScan (denominado en adelante simplemente "WPScan") tiene una licencia dual - Copyright 2011-2019 WPScan Team.
Los casos que incluyan la comercialización de WPScan requieren una licencia comercial no gratuita. De lo contrario, WPScan puede usarse sin cargo bajo los términos establecidos a continuación.
1. Definiciones
1.1 "Licencia" significa este documento.
1.2 "Contribuyente" significa cada individuo o entidad legal que crea, contribuye a la creación o posee WPScan.
1.3 "Equipo WPScan" significa los desarrolladores principales de WPScan.
2. Comercialización
El uso comercial es aquel destinado a una ventaja comercial o compensación monetaria.
Ejemplos de casos de comercialización son:
- Usar WPScan para proporcionar servicios administrados/como servicio de software (SaaS) comerciales.
- Distribuir WPScan como un producto comercial o como parte de uno.
- Usar WPScan como un servicio/producto de valor añadido.
Ejemplos de casos que no requieren una licencia comercial, y por lo tanto caen bajo los términos establecidos a continuación, incluyen (pero no se limitan a):
- Probadores de penetración (u organizaciones de pruebas de penetración) que utilizan WPScan como parte de su conjunto de herramientas de evaluación.
- Distribuciones de Linux para pruebas de penetración, incluyendo pero no limitado a Kali Linux, SamuraiWTF, BackBox Linux.
- Usar WPScan para probar sus propios sistemas.
- Cualquier uso no comercial de WPScan.
Si necesita adquirir una licencia comercial o no está seguro de si necesita una, contáctenos - [email protected].
Términos y condiciones de uso gratuito;
3. Redistribución
Se permite la redistribución bajo las siguientes condiciones:
- Se proporciona la Licencia no modificada con WPScan.
- Se proporcionan avisos de derechos de autor no modificados con WPScan.
- No entra en conflicto con la cláusula de comercialización.
4. Copia
Se permite la copia siempre que no entre en conflicto con la cláusula de redistribución.
5. Modificación
Se permite la modificación siempre que no entre en conflicto con la cláusula de redistribución.
6. Contribuciones
Cualquier contribución asume que el contribuyente otorga al Equipo WPScan el derecho ilimitado y no exclusivo de reutilizar, modificar y relicenciar el contenido del contribuyente.
7. Soporte, actualizaciones y mantenimiento
WPScan se proporciona sobre una base "TAL CUAL" y sin ningún soporte, actualización o mantenimiento. El soporte, las actualizaciones y el mantenimiento pueden proporcionarse según la única discreción del Equipo WPScan.
8. Descargo de responsabilidad de garantía
WPScan se proporciona bajo esta Licencia "tal cual", sin garantía de ningún tipo, ya sea expresa, implícita o legal, incluyendo, sin limitación, garantías de que WPScan está libre de defectos, es comercializable, adecuado para un propósito particular o no infringe derechos.
9. Limitación de responsabilidad
En la medida permitida por la ley, WPScan se proporciona sobre una base "TAL CUAL". El Equipo WPScan nunca será, y sin ningún límite, responsable de cualquier daño, costo, gasto o cualquier otro pago incurrido como resultado de las acciones, fallos, errores y/o cualquier otra interacción entre WPScan y equipos finales, computadoras, otro software o cualquier tercero, equipo final, computadora o servicio.
10. Descargo de responsabilidad
Ejecutar WPScan contra sitios web sin consentimiento mutuo previo puede ser ilegal en su país. El Equipo WPScan no acepta ninguna responsabilidad y no es responsable de ningún uso indebido o daño causado por WPScan.
11. Marca registrada
El término "wpscan" es una marca registrada. Esta Licencia no otorga el uso de la marca "wpscan" ni el uso del logotipo de WPScan.