
Scanner di sicurezza WordPress che rileva vulnerabilità, enumera plugin/temi/utenti e verifica la presenza di password deboli. Si integra con l'API WPScan per dati sulle vulnerabilità in tempo reale.
Scanner di Sicurezza per WordPress
Database delle Vulnerabilità WordPress di WPScan - Plugin di Sicurezza per WordPress
Stream error in the HTTP/2 framing layer in alcuni casiQuando si utilizza una distribuzione di pentesting (come Kali Linux), si consiglia di installare/aggiornare wpscan tramite il gestore pacchetti, se disponibile.
brew install wpscanteam/tap/wpscan
WPScan dipende da gem con estensioni native (es. yajl-ruby, nokogiri, ffi), quindi una toolchain C funzionante e gli header di sviluppo Ruby devono essere presenti prima di gem install wpscan. Senza di essi, l'installazione fallisce con errori come Failed to build gem native extension o make: x86_64-linux-gnu-gcc: No such file or directory (vedi #1844).
sudo apt install build-essential ruby-dev
sudo dnf install @development-tools ruby-devel
sudo pacman -S base-devel ruby
sudo apk add build-base ruby-dev
xcode-select --install).Quindi installa la gem:
gem install wpscan
Su MacOSX, se viene sollevato un Gem::FilePermissionError a causa della System Integrity Protection (SIP) di Apple, installa RVM e re-installa wpscan, oppure esegui sudo gem install -n /usr/local/bin wpscan (vedi #1286)
Puoi aggiornare il database locale usando wpscan --update
L'aggiornamento di WPScan stesso si effettua tramite gem update wpscan oppure tramite il gestore pacchetti (questo è piuttosto importante per distribuzioni come Kali Linux: apt-get update && apt-get upgrade) a seconda di come WPScan è stato (pre)installato
Scarica il repository con docker pull wpscanteam/wpscan
Enumerazione degli username
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u
Enumerazione di un intervallo di username
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --url https://target.tld/ --enumerate u1-100
** sostituisci u1-100 con un intervallo a tua scelta.
L'immagine include una copia del database locale integrata al momento della build. Poiché i comandi di esempio sopra utilizzano --rm, qualsiasi aggiornamento del database effettuato durante un'esecuzione viene scartato all'uscita del container, quindi l'esecuzione successiva riparte dalla copia integrata (potenzialmente obsoleta).
Montare un volume con nome in /wpscan/.cache/wpscan/db (la directory cache dell'utente wpscan all'interno del container) mantiene il database tra le varie esecuzioni, così wpscan --update riscarica solo i file i cui checksum sono effettivamente cambiati e il prompt di obsolescenza di 5 giorni si comporta come per un'installazione locale:
docker run -it --rm -v wpscan-db:/wpscan/.cache/wpscan/db wpscanteam/wpscan --update
Il volume con nome viene creato automaticamente al primo utilizzo se non esiste già.
La documentazione completa per l'utente si trova qui; https://github.com/wpscanteam/wpscan/wiki/WPScan-User-Documentation
wpscan --url blog.tld Questa scansione analizza il blog utilizzando le opzioni predefinite con un buon compromesso tra velocità e accuratezza. Esegue il rilevamento della versione, il rilevamento del tema e la scoperta di risultati interessanti. Per enumerare plugin, temi, utenti, cartelle di backup, ecc., usa l'opzione -e (es. -e ap per tutti i plugin, -e vp per i plugin vulnerabili, -e bf per le cartelle di backup).
Se è necessario un approccio più furtivo, si può usare wpscan --stealthy --url blog.tld.
Di conseguenza, quando si usa l'opzione --enumerate, non dimenticare di impostare --plugins-detection di conseguenza, poiché il suo valore predefinito è 'passive'.
Per maggiori opzioni, apri un terminale e digita wpscan --help (se hai compilato wpscan dal sorgente, dovresti digitare il comando fuori dalla repository git)
La posizione del database segue la XDG Base Directory Specification:
~/.cache/wpscan/db (o $XDG_CACHE_HOME/wpscan/db se impostato)~/.wpscan/db (percorso legacy, mantenuto per compatibilità con le versioni precedenti)I file runtime come la cache HTTP predefinita e il cookie jar vengono memorizzati in $TMPDIR/wpscan quando
$TMPDIR è impostato. In caso contrario, utilizzano la stessa directory cache XDG per utente, ad esempio
~/.cache/wpscan/cache e ~/.cache/wpscan/cookie_jar.txt. Questi valori predefiniti possono essere sovrascritti
con --cache-dir e --cookie-jar.
Per migrare un'installazione esistente al percorso XDG:
mv ~/.wpscan ~/.cache/wpscan
Lo strumento CLI di WPScan utilizza la WordPress Vulnerability Database API per recuperare i dati sulle vulnerabilità di WordPress in tempo reale. Affinché WPScan possa recuperare i dati sulle vulnerabilità, è necessario fornire un token API tramite l'opzione --api-token, oppure tramite un file di configurazione, come discusso di seguito. Un token API può essere ottenuto registrando un account su WPScan.com.
Fino a 25 richieste API al giorno sono fornite gratuitamente, un numero sufficiente per scansionare la maggior parte dei siti WordPress almeno una volta al giorno. Quando le 25 richieste API giornaliere sono esaurite, WPScan continuerà a funzionare normalmente ma senza dati sulle vulnerabilità.
WPScan può caricare tutte le opzioni (inclusa la --url) da file di configurazione; vengono controllate le seguenti posizioni (in ordine: dalla prima all'ultima):
$XDG_CONFIG_HOME/wpscan/scan.json (se XDG_CONFIG_HOME è impostato)$XDG_CONFIG_HOME/wpscan/scan.yml (se XDG_CONFIG_HOME è impostato)~/.config/wpscan/scan.json (se XDG_CONFIG_HOME non è impostato)~/.config/wpscan/scan.yml (se XDG_CONFIG_HOME non è impostato)~/.wpscan/scan.json~/.wpscan/scan.ymlpwd/.wpscan/scan.jsonpwd/.wpscan/scan.ymlSe questi file esistono, le opzioni della chiave cli_options verranno caricate e sovrascritte se trovate due volte.
es.:
~/.config/wpscan/scan.yml:
cli_options:
proxy: 'http://127.0.0.1:8080'
verbose: true
pwd/.wpscan/scan.yml:
cli_options:
proxy: 'socks5://127.0.0.1:9090'
url: 'http://target.tld'
Eseguire wpscan nella directory corrente (pwd) equivale a wpscan -v --proxy socks5://127.0.0.1:9090 --url http://target.tld
Altre opzioni della riga di comando possono essere aggiunte usando la convenzione snake case. es.:
cli_options:
user_agent: "Testing UA"
max_threads: 1
headers: "Custom-Header: aaaa; Another Header: bbb"
La funzione menzionata sopra è utile per mantenere il token API in un file di configurazione e non doverlo fornire tramite CLI ogni volta. Per farlo, crea il file ~/.config/wpscan/scan.yml contenente quanto segue:
cli_options:
api_token: 'YOUR_API_TOKEN'
Il token API verrà caricato automaticamente dalla variabile d'ambiente WPSCAN_API_TOKEN se presente. Se viene fornita anche l'opzione CLI --api-token, verrà utilizzato il valore dalla CLI.
Se riscontri problemi di connessione con l'API di WPScan, puoi controllare lo stato del servizio su https://status.wpscan.com/. Quando si verificano errori di connessione all'API, WPScan includerà un link alla pagina di stato nel messaggio di errore.
wpscan --url https://target.tld/ --enumerate u
Enumerazione di un intervallo di username
wpscan --url https://target.tld/ --enumerate u1-100
** sostituisci u1-100 con un intervallo a tua scelta.
wpscan --url https://target.tld/ --enumerate bf
Questa operazione verifica la presenza di cartelle di backup create dai plugin di backup WordPress più diffusi. Queste cartelle possono contenere dati sensibili come dump del database, file di configurazione o backup completi del sito.
Il software WPScan (d'ora in poi indicato semplicemente come "WPScan") è concesso in licenza duale - Copyright 2011-2019 WPScan Team.
I casi che includono la commercializzazione di WPScan richiedono una licenza commerciale a pagamento. In caso contrario, WPScan può essere utilizzato gratuitamente secondo i termini di seguito riportati.
1.1 Per "Licenza" si intende il presente documento.
1.2 Per "Collaboratore" si intende ogni individuo o entità legale che crea, contribuisce alla creazione o possiede WPScan.
1.3 Per "WPScan Team" si intendono gli sviluppatori principali di WPScan.
L'uso commerciale è quello finalizzato a un vantaggio commerciale o a una compensazione monetaria.
Esempi di casi di commercializzazione sono:
Esempi di casi che non richiedono una licenza commerciale e che quindi rientrano nei termini di seguito riportati includono (ma non sono limitati a):
Se devi acquistare una licenza commerciale o non sei sicuro di doverne acquistare una, contattaci - [email protected].
Termini e condizioni per l'uso gratuito;
La ridistribuzione è consentita alle seguenti condizioni:
La copia è consentita purché non entri in conflitto con la clausola di Ridistribuzione.
La modifica è consentita purché non entri in conflitto con la clausola di Ridistribuzione.
Eventuali Contributi presuppongono che il Collaboratore conceda al WPScan Team il diritto illimitato e non esclusivo di riutilizzare, modificare e ri-licenziare il contenuto del Collaboratore.
WPScan è fornito su base "così com'è" (AS-IS) e senza alcun supporto, aggiornamento o manutenzione. Supporto, aggiornamenti e manutenzione possono essere forniti a sola discrezione del WPScan Team.
WPScan è fornito ai sensi della presente Licenza su base "così com'è", senza garanzia di alcun tipo, esplicita, implicita o prevista dalla legge, incluse, a titolo esemplificativo, le garanzie che WPScan sia esente da difetti, commerciabile, idoneo a uno scopo particolare o non violi diritti di terzi.
Nella misura consentita dalla legge, WPScan è fornito su base "così com'è" (AS-IS). Il WPScan Team non sarà mai, e senza alcun limite, responsabile per qualsiasi danno, costo, spesa o altro pagamento sostenuto a seguito delle azioni di WPScan, di un suo malfunzionamento, di bug e/o di qualsiasi altra interazione tra WPScan e apparecchiature finali, computer, altro software o qualsiasi terza parte, apparecchiatura finale, computer o servizi.
Eseguire WPScan contro siti web senza previo consenso reciproco può essere illegale nel tuo paese. Il WPScan Team non accetta alcuna responsabilità e non è responsabile per qualsiasi uso improprio o danno causato da WPScan.
Il termine "wpscan" è un marchio registrato. La presente Licenza non concede l'uso del marchio "wpscan" né l'uso del logo WPScan.