Introduzione

WPScan è l'acronimo di WordPress Security Scanner, è un scanner di vulnerabilità gratuito scritto con il linguaggio di programmazione Ruby per aiutare i professionisti della sicurezza e i manutentori di blog a testare le vulnerabilità sui loro siti WordPress. Aiuta a scoprire eventuali vulnerabilità associate a temi WordPress, plugin o qualsiasi altra minaccia alla sicurezza ospitata su un sito WordPress.

Questa guida illustra come installare e utilizzare WPScan WordPress Vulnerability Scanner su Ubuntu 18.04.

Se il vostro intento è installare WPScan su di un server in remoto continuate a leggere, altrimenti se volete installare WPScan sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Prerequisiti

Per seguire questo tutorial, avrai bisogno di:

Installare le dipendenze di WPScan

Prima di poter installare WordPress Security Scanner (WPScan), assicurarsi che siano installate le seguenti dipendenze e che il sistema sia aggiornato.

Aggiornare la lista di pacchetti disponibili:

sudo apt update

Aggiornare i pacchetti disponibili:

sudo apt upgrade -y

Installare le dipendenze necessarie per l'installazione di WPScan:

sudo apt installa 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 -y

WPScan può essere installato dai repository RubyGem o da sorgente.

Installare WPScan con RubyGem

Per installare WPScan dai repository RubyGem, eseguire il comando seguente:

gem install wpscan

Per disinstallare WPScan eseguire questo comando:

gem uninstall wpscan

Installare WPScan da sorgente

Per installare WPScan dai sorgenti, devi  accedere al repository Github, per scaricare WPScan:

git clone https://github.com/wpscanteam/wpscan

Entrare nella cartella creata dal con il comando precedente:

cd wpscan/

Installare WPScan da sorgente, ci vorranno diversi minuti. Da terminale digitare:

bundle install && rake install

Dovreste ricevere un messaggio di output simile al seguente:

...
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.

L'installazione è terminata, WPScan è pronto all'uso.

Aggiornare WPScan

È possibile aggiornare il database locale usando il seguente comando:

wpscan --update

L'aggiornamento dell'utility WPScan si può effettuare tramite il seguente comando se è stato installato con RubyGem:

gem update wpscan

Oppure utilizzando il gestore dei pacchetti:

sudo apt-get update && sudo apt-get upgrade

Esempi di scansione

Ecco alcuni esempi su come eseguire la scansione delle vulnerabilità del blog di WordPress. Assicurati di eseguire gli esempi seguenti sul tuo proprio blog. È illegale scansionare i siti di altre persone.

Il comando base per scansionare l'intero blog è il seguente:

wpscan --url wordpress.example.com

WPScan può eseguire la scansione dei protocolli http e https . Se non specificato, scansionerà http per impostazione predefinita.

Se si desidera salvare i risultati dell'output dello scanner in un file, utilizzare l'opzione -o nome_file.txt:

wpscan --url http://wordpress.example.com -o nome_file.txt

Esistono tre modalità di rilevamento in cui wpscan può essere eseguito su un sito WordPress: passive, aggressive, mixed(default).

  • La modalità passive esegue un rilevamento non intrusivo, ovvero invia alcune richieste al server. Di solito esegue la scansione della home page per individuare eventuali vulnerabilità. È meno probabile che la modalità passiva venga rilevata dalle soluzioni IDS/IPS.
  • La modalità aggressive invece esegue una scansione più invadente in quanto invia moltissime richieste al server. Prova tutti i plugin possibili anche se il plugin non ha vulnerabilità note ad esso collegate. Ciò può comportare un aumento del carico sul server di destinazione.
  • La modalità mixed(default) utilizza una combinazione di aggressivo e passivo.

Per specificare la modalità di rilevamento:

wpscan --url wordpress.example.com -o test --detection-mode aggressive

Verificare la presenza di plugin vulnerabili

Per cercare plugin vulnerabili sul tuo blog WordPress, passa l'opzione -e/--enumerate [OPTS] al comando wpscan dove [OPTS]può essere; vp (vulnerable plugins), ap (all plugins), p (plugins). Ad esempio, per cercare tutti i plugin che hanno vulnerabilità ad esso collegate,

wpscan --url wordpress.example.com -e vp

Verificare la presenza di temi vulnerabili

Proprio come abbiamo usato l'opzione -e/--enumerate [OPTS] per verificare la presenza di plugin vulnerabili, lo stesso può essere fatto quando si controllano i temi vulnerabili; vt (Vulnerable themes), at (All themes), t (Themes). Ad esempio, per cercare temi con vulnerabilità note;

wpscan --url wordpress.example.com -e vt

Visualizzare gli utenti di Wordpress

Per scoprire gli utenti che possono accedere al sito WordPress, dovresti passare l'opzione  -e/--enumerate u dove u sostanzialmente indica gli ID utente.

wpscan --url wordpress.example.com -e u

Test forza della password / Bruteforce Attack contro un utente

Dopo aver elencato i nomi utente, puoi provare a eseguire un attacco di Brute force come mostrato di seguito. Questo processo potrebbe essere più lento a seconda del numero di password specificato nel file delle password (-P, --passwords FILE-PATH) (il file con le password non è presente nel progetto WPScan) e del numero di thread (-t, --max-threads VALUE) che stai utilizzando:

wpscan --url wordpress.example.com -P password-file.txt -U tuo_nome_utente-t 50

Per verificare la validità della password per più utenti, utilizzare lo stesso comando sopra in questo momento senza il nome utente specificato.

wpscan --url wordpress.example.com -P password-file.txt -t 50

Scansione di Wordpress in modalità non rilevabile

Eseguire wpscan in una modalità invisibile  significa (--random-user-agent --detection-mode passive --plugins-version-detection passive), specificare l'opzione --stealthy.

wpscan --url wordpress.example.com --stealthy

Conclusione

In questo tutorial hai installato e configurato WPScan. Per ulteriori informazioni sull'utilizzo di WPScan:

wpscan -h