Ciao !!! I Syahrulloh, in questo blog ho discuterà su VPS server e Linux.

WP-Scan, uno dei tanti strumenti per testare(si, hai letto bene, per testare) Wordpress


Per testare la sicurezza di un'installazione Wordpress possiamo fare ricorso ad un software sviluppato dal team WPScan Team. E un prodotto che rientra nella categoria vulnerability scanner da utilizzare in modalità blackbox, vale a dire che solo con la semplice informazione dell'URL del sito/blog (sviluppato con Wordpress ovviamente) riesce a scandagliare l'intera installazione, gli utenti presenti nel database (se non debitamente patchato), i plugin e i temi installati, per poi elaborare il risultato che deve essere analizzato, con le versioni dei vari pezzetti installati e le relative vulnerabilità, per poter procedere ad esempio con il tentare attacchi basati su dizionario da un file txt che possiamo fornire noi, il tutto sempre utilizzando lo stesso tool.

ATTENZIONE:LE INFORMAZIONI SEGUENTI SONO A SCOPO INFORMATIVO PER AIUTARTI A COMPRENDERE COME POTER ANALIZZARE LE VULNERABILITA' DEL TUO SITO/BLOG, L'UTILIZZO DI QUESTO STRUMENTO PER RECARE DANNO A TERZI E' PERSEGUIBILE AI FINI DELLA LEGGE.


Per prima cosa abbiamo bisogno di un ambiente Linux, questo genere di prodotti difficilmente ha una versione Windows. In un post dedicato ti farò vedere come è possibile farlo girare anche su Windows, qui non è possibile o rischierei di dilungarmi troppo.
Possiamo creare una macchina virtuale ed installare Ubuntu, forse la distribuzione più semplice per chi non è mai uscito al di fuori dell'ambito Microsoft.
Non mi dilungo sull'installazione del Sistema Operativo, oramai tutte le distro Linux hanno l'installer grafico che ci guida fino alla fine.
Andiamo subito al sodo, dato che ci sono dei requisiti da rispettare per poter utilizzare il prodotto.

Direttamente dal sito, dobbiamo avere installati:
Ruby >= 1.9.2 - Recommended: 2.3.0
Curl >= 7.21 - Recommended: latest - FYI the 7.29 has a segfault
RubyGems - Recommended: latest
Git

Quindi, mano al terminale di Ubuntu, e digitare

sudo apt-get install libcurl4-openssl-dev libxml2 libxml2-dev libxslt1-dev ruby-dev build-essential libgmp-dev
git clone https://github.com/wpscanteam/wpscan.git
cd wpscan
sudo gem install bundler && bundle install --without test  

Bene, l'installazione è terminata e possiamo iniziare ad utilizzare lo strumento, rigorosamente solo a riga di comando.

Il comando inizierà sempre con ruby wpscan.rb, seguito dall'opzione. Se non lo utilizzate per un po' di tempo è bene effettuare l'aggiornamento del database del prodotto per essere sempre in linea con le nuove vulnerabilità.

Vediamo tutte le possibili opzioni:

--update   effettua l'aggiornamento delle vulnerabilità. Da lanciare ogni giorno che intendiamo utilizzare lo strumento;

ruby wpscan.rb --update

--url   ,l'indirizzo del blog/sito che vogliamo analizzare;

ruby wpscan.rb --url http://nomesito.it

--force   ,effettua uno skip sul controllo del sito, se sta effettivamente utilizzando Wordpress, ma passa direttamente ad analizzare utenti,plugin e temi;

ruby wpscan.rb --url http://nomesito.it --force

--enumerate   ,una delle opioni più complesse ma che se lanciata ad hoc può fornire informazioni riservate molte interessanti sul target. L'opzione va combinata con la dichiarazione di cosa vogliamo enumerare, utenti in modalità standard (quelli che hanno un ID da 1 a 10 nel database, utenti con ID tra un range definito da noi, plugin,temi e cosi via. Se diamo il comando, così, secco, verranno effettuate tutte le seguenti combinazioni.
Le possibilità sono:(si possono combinare, separandoli con una virgola)

u    ,per una scansione degli utenti che hanno sul databse un ID compreso tra 1 e 10. Questa è la query che viene effettuata di default se non dichiarato diversamente.

ruby wpscan.rb --url u http://nomesito.it --enumerate

u[10-20]    ,per una scansione degli utenti che hanno sul database un ID compreso tra 10 e 20. Più sono gli utenti che vogliamo ricercare, maggiore sarà il tempo della scansione, perchè l'enumeration partirà con http://nomesito.it/?author=10,http://nomesito.it/?author=11, fino al numero che inseriamo come finale. Se un sito è stato ben ottimizzato il primo utente potrebbe rispondere oltre il tremila...

ruby wpscan.rb --url http://nomesito.it --enumerate u[10-20]

p    ,restituisce la lista dei plugin installati sul sito target analizzando il codice della pagina (nel codice sorgente vengono dichiarati i plugin...) e ci fornisce le vulnerabilità che eventualmente riesce a reperire;

ruby wpscan.rb --url http://nomesito.it --enumerate p

vp   ,restituisce solo la lista dei plugin installati sul sito target che risultano avere una vulnerabilità, sempre analizzando il codice sorgente della pagina;

ruby wpscan.rb --url http://nomesito.it --enumerate vp

ap     ,effettua la query direttamente nel database e restituisce la lista totale dei plugin presenti (attivi e non) sul sito target. Questo comando può impiegare molto tempo prima di dare una risposta ed è molto invasivo in termini di aggressività;

ruby wpscan.rb --url http://nomesito.it --enumerate ap

tt    ,ricerca e restituisce l'eventuale presenza di timthumbs, uno script php utilizzato per il resize delle immagini.

ruby wpscan.rb --url http://nomesito.it --enumerate tt

t     ,ricerca e restituisce facendo analisi del codice sorgente il tema in uso sul sito target ed eventuali vulnerabilità;

ruby wpscan.rb --url http://nomesito.it --enumerate t

vt    ,ricerca e restituisce la lista dei temi installati sul sito target con una vulnerabilità rilevata;

ruby wpscan.rb --url http://nomesito.it --enumerate vt

at     ,effettua la query direttamente nel database e restituisce la lista totale dei temi presenti sul sito target. Questo comando può impiegare molto tempo prima di dare una risposta ed è molto invasivo in termini di aggressività;

ruby wpscan.rb --url at http://nomesito.it --enumerate at

Se non utilizziamo nessuna combinazione possibile, l'opzione --enumerate esegue di default "vt,tt,u,vp, quindi analisi da sorgente di pagina di temi e plugin con vulnerabilità, utenti con una query ID da 1 a 10 ed eventuale vulnerabilità timthumbs. Come vedi, una scansione veloce, perchè se utilizzato per simulare un attacco (si hai letto bene, per simulare), un eventuale Firewall potrebbe bloccare l'indirizzo IP del chiamante se ritenuto troppo aggressivo per policy di sicurezza (il Web Application Firewall rileva i tentativi di enumeration).


Tutti i risultati dei comandi elencati fino ad ora vengono stampati a video nella finestra del terminale dove abbiamo eseguito il comando. WPScan offre la possibilità di salvare l'output su un file di testo dedicato che potrà essere poi comodamente analizzato.

ruby wpscan.rb --url http://nomesito.it --debug-output 2>scan.log

Siamo pronti a verificare cosa viene realmente esposto sul nostro sito. Volendo utilizzare il tool per forzare l'autenticazione degli utenti e cercare di indovinare la password possiamo cercare su internet dei file di testo contenenti password (ce ne sono a bizzeffe nell'etere con nome utente e password...) e vedere se qualche utente nel nostro sito ha una password troppo comune. Per farlo dobbiamo inidicare a WPScan il percorso del file di testo, che per comodità inseriremo nella stessa cartella del software. E' bene specificare quanti tentativi vogliamo effettuare (nell'esempio i primi 20 utenti/password contenuti nel file).
Non esagerare, se hai un file con 10 mila utenze rischi la blacklist in caso di Firewall attivo sul target.

ruby wpscan.rb --url http://nomesito.it --wordlist password.txt --threads 20

Per testare invece solo l'attacco basato su un utente specifico (magari la query author=1 ci ha risposto perchè ancora non abbiamo effettuato il tuning del database, quindi conosciamo il nome utente amministratore di Wordpress)

ruby wpscan.rb --url http://nomesito.it --wordlist password.txt --username nomeutente




arulajeh.id Situs Berita Terbaru Dan Terbaik