WPScan uno strumento di analisi e test per WordPress
WPScan è uno strumento utilizzabile da linea di comando su sistemi Linux e Mac OSX per effettuare analisi approfondite di una installazione WordPress ed evidenziare le vulnerabilità presenti e correggerle. WPScan consente anche di effettuare test di penetrazione e valutare l’efficacia delle misure di sicurezza predisposte sul sito.
WPScan può estrarre tutti i nomi utente, i temi, i plugins e quanto installato sul sito oltre a poter portare attacchi “brute force” per individuare la password di accesso per un determinato utente.
WPScan non è utilizzabile in ambiente Windows, quindi per farlo funzionare è necessario un PC con Linux o un Mac Intel e procurarsi il software dal sito ufficiale o da GitHub, l’installazione non è affatto semplice perché ci sono alcuni pre-requisiti da soddisfare, in particolare la presenza di una versione aggiornata del Framework Ruby on Rails, per cui si consiglia di seguire una guida come quella pubblicata da Sucuri.net, una volta terminata l’installazione, dal terminale ci portiamo nella directory wpscan ed eseguiamo i due comandi inziali:
git pull
ruby wpscan.rb --update
il primo per verificare di avere l’ultima versione ed il secondo per aggiornare il database di WPScan, a questo punto possiamo cominciare a lavorare facendo una analisi non intrusiva di un sito WordPress lanciando WPScan con questi parametri:
ruby wpscan.rb --url www.example.com
WPScan comincerà a lavorare vi fornirà una serie di informazioni su sito che state analizzando come: versione in uso di WordPress, versione di PHP, server Web, tema in uso, plugins installati. Per avere informazioni più dettagliate si devono utilizzare alcuni parametri il più importante dei quali è “–enumerate” che elenca in dettaglio tutto quello che gli chiederete, ovvero nomi utente, plugins, plugins con vulnerabilità, temi e temi con vulnerabilità e molto altro, la lista dei comandi utilizzabili si ottiene digitando:
ruby wpscan.rb --help
Tutti i comandi devono essere dati all’interno della directory wpscan, la lista completa la trovate qui, di seguito alcuni esempi:
ruby wpscan.rb --url http://myhost/wp --enumerate u [+] Enumerating usernames ... [+] Identified the following 3 user/s: +----+---------+---------------------+ | Id | Login | Name | +----+---------+---------------------+ | 1 | admin | il mio nome | | 2 | user | utente | | 3 | admin2 | Amministratore | +----+---------+---------------------+
Con lo stesso comando possiamo ottenere una lista dei plugin installati e evidenziare delle eventuali vulnerabilità presenti, adesso per comodità lancio il comando in localhost con l’opzione -p e vediamo insieme il risultato:
ruby wpscan.rb --url http://myhost/wp --enumerate p [+] We found 6 plugins: [+] Name: contact-form-7 - v4.0 [+] Name: akismet - v3.5 [+] Name: wplightbox - v0.1.3 [+] Name: woocommerce - v.2.5 [+] Name: mailchimp - v3.1.6 [+] Name: yoast-seo - v3.2.5
Come potete vedere è possibile ottenere facilmente delle informazioni utili a pianificare un attacco. Questo è il motivo per cui l’aspetto sicurezza va impostato preventivamente e non può essere mai tralasciato in un’installazione WordPress ed in modo particolare se si tratta del sito di un cliente. E’ impossibile garantire che il sistema sia sicuro al 100% ma con un accurato check-up di sicurezza effettuato a priori si può evitare la maggior parte degli inconvenienti.
WPScan – Ricerca della password
Dopo avere estratto gli username ci manca solo di trovare le password per avere un accesso completo. WPScan permette di eseguire una scansione tramite dizionario utilizzando gli utenti trovati e un database di password già preconfezionato con tutte le password più utilizzate e con un dizionario.
ruby wpscan.rb --url http://myhost/wp --wordlist provapass.txt --username admin [+] Starting the password brute forcer [SUCCESS] Login : admin Password : teulada +----+---------+------+----------+ | Id | Login | Name | Password | +----+---------+------+----------+ | | admin | | teulada | +----+---------+------+----------+
Per fare una prova ho creato il file provapass.txt compilato con circa 50 password in cui ho infilato quella giusta, WPScan le prova tutte fino a quando non trova quella giusta. In rete sono reperibili molti dizionari di password, alcuni ne contengono oltre un miliardo e questo la dice lunga sul quanto è difficile tenere il proprio sito al sicuro, anche se nascondendo i nomi utente con una istruzione nel file .htaccess si disarma di fatto questa funzione di WPScan.
Nello specifico inserendo questa istruzione nel file .htaccess :
# block user enumeration
RewriteCond %{QUERY_STRING} (^|&)author=
RewriteRule . http://%{SERVER_NAME}/? [L]
WPScan vi restituirà questo output:
WPScan – Dizionario delle password
In rete si trovano molti dizionari di password già pronti ed aggiornati, se vi volete cimentare con un dizionario molto esteso potete scaricare crackstation.txt un file di circa 15GB con oltre un miliardo di password che potete scaricare dal sito crackstation.net, vi ricordo comunque che queste pratiche sono effettuabili solo e soltanto a scopo di test di verifica su installazioni di vostra proprietà o di vostra gestione per saggiarne la sicurezza, non fatelo mai su siti non vostri.
ruby wpscan.rb --url http://myhost/wp --wordlist crackstation.txt --username admin [+] Starting the password brute forcer [SUCCESS] Login : admin Password : caciotta +----+---------+------+-----------+ | Id | Login | Name | Password | +----+---------+------+-----------+ | | admin | | caciotta | +----+---------+------+-----------+
WPScan è un progetto sostenuto da sucuri.net, la celebre ed autorevole società di sicurezza informatica il cui blog è una delle fonti più attendibili e tempestive nella segnalazione delle vulnerabilità di WordPress e di altri CMS.
In conclusione
Ogni professionista di WordPress dovrebbe usare WPScan prima di cominciare a lavorare sul sito di un cliente per ottenere una panoramica della installazione e delle sue eventuali criticità anche se WPScan non analizza i singoli files di WordPress, occorrenza per cui necessitano plugins come Wordfence o iThemes Security a cui viene demandata una analisi profonda di ogni singolo files dell’installazione per individuare files modificati e codici malevoli, quindi WPScan serve a fare una analisi preliminare approfondita e test di sicurezza che, se avete messo bene in sicurezza il sito lasceranno WPScan con un palmo di naso..
Se volete effettuare un check-up dello stato di sicurezza del vostro sito WordPress con WPScan potete prenotarlo attraverso la pagina dei contatti o per telefono e lo eseguirò per voi fornendovi un report completo.