Introducción
WPScan son las siglas de WordPress Security Scanner, es un escáner de vulnerabilidades gratuito escrito con el lenguaje de programación Ruby para ayudar a los profesionales de la seguridad y a los mantenedores de blogs a probar las vulnerabilidades en sus sitios de WordPress. Ayuda a descubrir cualquier vulnerabilidad asociada con los temas, complementos de WordPress o cualquier otra amenaza de seguridad alojada en un sitio de WordPress.
Esta guía le muestra cómo instalar y usar WPScan WordPress Vulnerability Scanner en Ubuntu 18.04.
Si su intención es instalar WPScan en un servidor remoto, continúe leyendo; de lo contrario, si desea instalar WPScan en su computadora local, omita el primer párrafo "Conexión al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Prerrequisitos
Para seguir este tutorial, necesitará:
- Un servidor Ubuntu 18.04 configurado siguiendo la Guía de configuración inicial del servidor para Ubuntu 18.04, que incluye un usuario no root con privilegios sudo y un firewall configurado con ufw.
Instalar las dependencias de WPScan
Antes de que pueda instalar WordPress Security Scanner (WPScan), asegúrese de que las siguientes dependencias estén instaladas y su sistema esté actualizado.
Actualice la lista de paquetes disponibles:
sudo apt update
Actualizar paquetes disponibles:
sudo apt upgrade -y
Instale las dependencias necesarias para la instalación de WPScan:
sudo apt install curl git libcurl4-openssl-dev make zlib1g-dev gawk g++ gcc libreadline6-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config ruby ruby-bundler ruby-dev -y
WPScan se puede instalar desde los repositorios de RubyGem o desde la fuente.
Instalar WPScan con RubyGem
Para instalar WPScan desde los repositorios de RubyGem, ejecute el siguiente comando:
gem install wpscan
Para desinstalar WPScan, ejecute este comando:
gem uninstall wpscan
Instale WPScan desde la fuente
Para instalar WPScan desde la fuente, debe acceder al repositorio de Github para descargar WPScan:
git clone https://github.com/wpscanteam/wpscan
Ingrese a la carpeta creada por con el comando anterior:
cd wpscan/
Instale WPScan desde la fuente, tardará varios minutos. Desde el tipo de terminal:
sudo bundle install && sudo rake install
Debería recibir un mensaje de salida similar al siguiente:
...
Finished in 14 minutes 43 seconds (files took 23.56 seconds to load)
24314 examples, 0 failures, 48 pending
Coverage report generated for RSpec to /root/wpscan/coverage. 1819 /2119 LOC (85.84%) covered.
wpscan 3.6.3 built to pkg/wpscan-3.6.3.gem.
wpscan (3.6.3) installed.
La instalación ha finalizado, WPScan está listo para usar.
Actualizar WPScan
Puede actualizar la base de datos local usando el siguiente comando:
wpscan --update
La actualización de la utilidad WPScan se puede realizar usando el siguiente comando si se ha instalado con RubyGem:
gem update wpscan
O usando el administrador de paquetes:
sudo apt-get update && sudo apt-get upgrade
Ejemplos de escaneo
Aquí hay algunos ejemplos sobre cómo escanear el blog de WordPress en busca de vulnerabilidades. Asegúrese de ejecutar los ejemplos a continuación en su propio blog. Es ilegal rastrear los sitios de otras personas.
El comando básico para escanear todo el blog es el siguiente:
wpscan --url wordpress.example.com
WPScan puede escanear protocolos http y https. Si no se especifica, escaneará http de forma predeterminada.
Si desea guardar los resultados de la salida del escáner en un archivo, use la opción -o filename.txt:
wpscan --url http://wordpress.example.com -o nome_file.txt
Hay tres modos de detección en los que se puede ejecutar wpscan en un sitio de WordPress: pasivo, agresivo, mixto (predeterminado).
- El modo pasivo realiza una detección no intrusiva, lo que significa que envía algunas solicitudes al servidor. Por lo general, escanea la página de inicio en busca de vulnerabilidades. Es menos probable que las soluciones IDS /IPS detecten el modo pasivo.
- El modo agresivo, por otro lado, realiza un escaneo más intrusivo ya que envía muchas solicitudes al servidor. Pruebe todos los complementos posibles, incluso si el complemento no tiene vulnerabilidades conocidas adjuntas. Esto puede provocar un aumento de la carga en el servidor de destino.
- El modo mixto (predeterminado) utiliza una combinación de agresivo y pasivo.
Para especificar el modo de detección:
wpscan --url wordpress.example.com -o test --detection-mode aggressive
Compruebe si hay complementos vulnerables
Para buscar complementos vulnerables en su blog de WordPress, pase la opción -e /- enumerate [OPTS] al comando wpscan donde puede estar [OPTS]; vp (complementos vulnerables), ap (todos los complementos), p (complementos). Por ejemplo, para buscar todos los complementos que tengan vulnerabilidades adjuntas,
wpscan --url wordpress.example.com -e vp
Buscar temas vulnerables
Así como usamos la opción -e /- enumerate [OPTS] para verificar si hay complementos vulnerables, lo mismo se puede hacer cuando se buscan temas vulnerables; vt (Temas vulnerables), en (Todos los temas), t (Temas). Por ejemplo, para buscar temas con vulnerabilidades conocidas;
wpscan --url wordpress.example.com -e vt
Ver usuarios de Wordpress
Para saber qué usuarios pueden iniciar sesión en el sitio de WordPress, debe pasar la opción -e /- enumerar u donde u básicamente indica ID de usuario.
wpscan --url wordpress.example.com -eu
Prueba de fuerza de contraseña /ataque de fuerza bruta contra un usuario
Después de enumerar los nombres de usuario, puede intentar realizar un ataque de fuerza bruta como se muestra a continuación. Este proceso puede ser más lento dependiendo de la cantidad de contraseñas especificadas en el archivo de contraseñas (-P, --passwords FILE-PATH) (el archivo de contraseñas no está presente en el proyecto WPScan) y el número de subprocesos (-t, --max-threads VALUE) que está utilizando:
wpscan --url wordpress.example.com -P password-file.txt -U tuo_nome_utente-t 50
Para verificar la validez de la contraseña para varios usuarios, use el mismo comando anterior en este momento sin el nombre de usuario especificado.
wpscan --url wordpress.example.com -P password-file.txt -t 50
Escaneo de Wordpress en modo indetectable
Ejecutar wpscan en modo sigiloso significa (--random-user-agent --detection-mode passive --plugins-version-deployment passive), especificar la opción --stealthy.
wpscan --url wordpress.example.com --stealthy
Conclusión
En este tutorial ha instalado y configurado WPScan. Para obtener más información sobre el uso de WPScan:
wpscan -h