Bienvenidos a todos a un nuevo post en ByteMind. En este caso os traigo la herramienta WPScan, un escáner de vulnerabilidades muy útil cuando queremos encontrar información acerca de un sitio realizado con wordpress.
Esta herramienta es conocida por escanear y encontrar vulnerabilidaes en el core del propio drupal, los módulos y temas utilizados. Es capaz incluso de encontrar contraseñas débiles, problemas de configuración del usuario y de seguridad.
Índice
Instalación de WPScan
Para la instalación de esta herramienta podemos hacerlo mediante 4 opciones, descargando la gema de ruby, descargando desde el repositorio oficial en github, a través de paquetería o mediante una imagen docker. Procedemos a explicar como hacerlo con cada una de las opciones indicadas:
Instalación de Gema
Para ello deberemos tener ruby instalado en nuestro sistema y lanzar el siguiente comando:
1 |
gem install wpscan |
Instalación desde Github
Para ello deberemos en primer lugar clonarnos el repositorio con el siguiente comando:
1 |
git clone https://github.com/wpscanteam/wpscan.git |
Accederemos a la carpeta recién creada y lanzaremos el siguiente comando:
1 |
bundle install && rake install |
Instalación desde paquetería
En caso de que utilicemos Kali Linux como es nuestro caso, podemos instalarlo con un simple comando:
1 |
sudo apt-get install wpscan |
Instalación desde imagen docker
Para la descarga de la imagen, necesitaremos tener instalado y corriendo docker en nuestro sistema. Si no lo tienes instalado puedes hacerlo con el siguiente comando:
1 |
sudo curl -fsSL https://get.docker.com | sh |
Y, una vez instalado, arrancar el servicio con el siguiente comando:
1 |
sudo systemctl start docker |
Una vez hecho nos descargaremos la imagen con el siguiente comando:
1 |
docker pull wpscanteam/wpscan |
Cómo funciona WPScan
WPScan, al igual que la gran mayoría de herramientas dispone de un comando de ayuda, que será el siguiente:
1 |
wpscan -h |
En nuestro caso hemos instalado wpscan como herramienta pero en caso de utilizar la imagen de docker los comandos seguirían la siguiente estructura:
1 |
docker run wpscanteam/wpscan [opciones] |
Vista la ayuda y las opciones disponibles, necesitaremos primero actualizar la base de datos del plugin con las últimas vulnerabilidades. Podemos hacerlo con el siguiente comando:
1 |
wpscan --update |
Completada la actualización vamos a realizar un primer escaneo básico para ver como funciona esta herramienta, para ello nosotros hemos creado un sitio wordpress bajo el dominio wordpress.local que utilizaremos para realizar las pruebas.
Podemos ver un ejemplo en la siguiente imagen:
Como vemos en la anterior captura, hemos obtenido información acerca del servidor y algunos ficheros disponibles de forma directa a través de su url.
Visto un primer ejemplo de la herramienta, podemos obtener más información mediante la clásica opción verbose, con el siguiente comando:
1 2 3 |
wpscan --url www.example.com --verbose # o wpscan --url www.example.com -v |
Entre todas las opciones disponibles, vamos a indicar algunas muy útiles para detectar información sensible del portal. Por ejemplo, podemos realizar un ataque por diccionario con el que buscar ciertos strings concretos que queramos:
1 |
wpscan --url www.example.com --wordlist wordlist.txt --threads 30 |
Y como observamos en el comando anterior también podemos especificar el número de hilos a utilizar en el escaneo.
Podemos realizar un ataque de diccionario contra el login de un usuario concreto:
1 |
wpscan --url www.example.com --wordlist wordlist.txt --username admin |
También es posible realizar una enumeración de plugins, temas, etc, utilizando el siguiente comando:
1 |
wpscan --url www.example.com --enumerate |
Entre las opciones de enumeración disponibles tenemos las siguientes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
vp Vulnerable plugins ap All plugins p Plugins vt Vulnerable themes at All themes t Themes tt Timthumbs cb Config backups dbe Db exports u User IDs range. e.g: u1-5 Range separator to use: '-' Value if no argument supplied: 1-10 m Media IDs range. e.g m1-15 Note: Permalink setting must be set to "Plain" for those to be detected Range separator to use: '-' Value if no argument supplied: 1-100 |
Con las opciones contempladas, si quisiésemos por ejemplo buscar plugins vulnerables el comando sería de la siguiente forma:
1 |
wpscan --url www.example.com --enumerate vp |
Esta información se publica sólo con fines eductivos. Cualquier tipo de escaneo a un portal que no sea de nuestra propiedad o sin disponer de la autorización requerida para llevarlo a cabo es ilegal, nosotros no nos hacemos responsables de cualquier uso indebido de dicha herramienta.
Y esto es todo por ahora. Espero les sea de utilidad y ya saben cualquier duda, opinión o aporte es bienvenido.