
wpscan v4.1.0
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.
WPScan
Scanner di Sicurezza per WordPress
Database delle Vulnerabilità WordPress di WPScan - Plugin di Sicurezza per WordPress
INSTALLAZIONE
Prerequisiti
- (Opzionale ma fortemente consigliato: rbenv)
- Ruby >= 3.3 - Consigliata: ultima versione stabile
- Curl >= 7.72 - Consigliata: ultima versione stabile
- La 7.29 presenta un segfault
- La < 7.72 potrebbe causare
Stream error in the HTTP/2 framing layerin alcuni casi
- RubyGems - Consigliata: ultima versione stabile
- Nokogiri potrebbe richiedere l'installazione di pacchetti tramite il gestore pacchetti a seconda del tuo sistema operativo, vedi https://nokogiri.org/tutorials/installing_nokogiri.html
In una distribuzione di pentesting
Quando si utilizza una distribuzione di pentesting (come Kali Linux), si consiglia di installare/aggiornare wpscan tramite il gestore pacchetti, se disponibile.
In macOSX tramite Homebrew
brew install wpscanteam/tap/wpscan
Da RubyGems
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).
- Debian / Ubuntu:
sudo apt install build-essential ruby-dev - Fedora / RHEL / CentOS:
sudo dnf install @development-tools ruby-devel - Arch Linux:
sudo pacman -S base-devel ruby - Alpine:
sudo apk add build-base ruby-dev - macOS: installa gli Xcode Command Line Tools (
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)
Aggiornamento
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
Docker
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.
Persistenza del database locale
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à.
Utilizzo
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)
Posizione del database
La posizione del database segue la XDG Base Directory Specification:
- Nuove installazioni:
~/.cache/wpscan/db(o$XDG_CACHE_HOME/wpscan/dbse impostato) - Installazioni esistenti:
~/.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
Opzionale: WordPress Vulnerability Database API
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à.
Di quante richieste API hai bisogno?
- Il nostro scanner WordPress effettua una richiesta API per la versione di WordPress, una richiesta per ogni plugin installato e una richiesta per ogni tema installato.
- In media, un sito WordPress ha 22 plugin installati.
Caricare le opzioni CLI da file
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(seXDG_CONFIG_HOMEè impostato)$XDG_CONFIG_HOME/wpscan/scan.yml(seXDG_CONFIG_HOMEè impostato)~/.config/wpscan/scan.json(seXDG_CONFIG_HOMEnon è impostato)~/.config/wpscan/scan.yml(seXDG_CONFIG_HOMEnon è impostato)~/.wpscan/scan.json~/.wpscan/scan.ymlpwd/.wpscan/scan.jsonpwd/.wpscan/scan.yml
Se 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"
Salvare il token API in un file
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'
Caricare il token API dalla variabile d'ambiente (dalla v3.7.10)
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.
Stato del servizio API
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.
Enumerazione degli username
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.
Enumerazione delle cartelle di backup
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.
LICENZA
WPScan Public Source License
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. Definizioni
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.
2. Commercializzazione
L'uso commerciale è quello finalizzato a un vantaggio commerciale o a una compensazione monetaria.
Esempi di casi di commercializzazione sono:
- Utilizzare WPScan per fornire servizi commerciali gestiti/Software-as-a-Service.
- Distribuire WPScan come prodotto commerciale o come parte di esso.
- Utilizzare WPScan come servizio/prodotto a valore aggiunto.
Esempi di casi che non richiedono una licenza commerciale e che quindi rientrano nei termini di seguito riportati includono (ma non sono limitati a):
- Penetration tester (o organizzazioni di penetration testing) che utilizzano WPScan come parte del loro toolkit di valutazione.
- Distribuzioni Linux di Penetration Testing incluse ma non limitate a Kali Linux, SamuraiWTF, BackBox Linux.
- Utilizzare WPScan per testare i propri sistemi.
- Qualsiasi uso non commerciale di WPScan.
Se devi acquistare una licenza commerciale o non sei sicuro di doverne acquistare una, contattaci - [email protected].
Termini e condizioni per l'uso gratuito;
3. Ridistribuzione
La ridistribuzione è consentita alle seguenti condizioni:
- La Licenza non modificata è fornita con WPScan.
- Gli avvisi di Copyright non modificati sono forniti con WPScan.
- Non entra in conflitto con la clausola di commercializzazione.
4. Copia
La copia è consentita purché non entri in conflitto con la clausola di Ridistribuzione.
5. Modifica
La modifica è consentita purché non entri in conflitto con la clausola di Ridistribuzione.
6. Contributi
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.
7. Supporto, aggiornamenti e manutenzione
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.
8. Esclusione di garanzia
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.
9. Limitazione di responsabilità
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.
10. Dichiarazione di non responsabilità
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.
11. Marchio
Il termine "wpscan" è un marchio registrato. La presente Licenza non concede l'uso del marchio "wpscan" né l'uso del logo WPScan.