Torna agli aggiornamenti
New releaseAug 4, 2026

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.

Condividi

WPScan logo

WPScan

Scanner di Sicurezza per WordPress

Database delle Vulnerabilità WordPress di WPScan - Plugin di Sicurezza per WordPress

Maintainability Coverage Status

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 layer in 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/db se 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 (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.yml
  • pwd/.wpscan/scan.json
  • pwd/.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.

Categorie