Consulta INSTALL.md <https://github.com/wapiti-scanner/wapiti/blob/master/INSTALL.md>__ per maggiori dettagli sull'installazione.
È possibile eseguire Wapiti su Windows tramite l'uso di WSL <https://learn.microsoft.com/en-us/training/modules/get-started-with-windows-subsystem-for-linux/>__.
Come funziona
Wapiti funziona come uno scanner di vulnerabilità "black-box", il che significa che non studia il codice sorgente delle applicazioni web ma funziona come un fuzzer, scansionando le pagine dell'applicazione web distribuita, estraendo link e moduli e attaccando gli script, inviando payload e cercando messaggi di errore, stringhe speciali o comportamenti anomali.
Funzionalità generali
Genera report di vulnerabilità in vari formati (HTML, XML, JSON, TXT, CSV, Markdown).
Può sospendere e riprendere una scansione o un attacco (meccanismo di sessione che utilizza database sqlite3).
Può mostrare colori nel terminale per evidenziare le vulnerabilità.
Diversi livelli di verbosità.
Modo rapido e semplice per attivare/disattivare i moduli di attacco.
Aggiungere un payload può essere semplice quanto aggiungere una riga a un file di testo.
Numero configurabile di attività concorrenti per eseguire richieste HTTP.
Funzionalità di navigazione
Supporta proxy HTTP, HTTPS e SOCKS5.
Autenticazione HTTP sul target (Basic, Digest, NTLM)
Autenticazione compilando moduli di login.
Possibilità di limitare l'ambito della scansione (dominio, cartella, pagina, url).
Rimozione automatica di uno o più parametri negli URL.
Molteplici salvaguardie contro i loop infiniti della scansione (ad esempio, limite di valori per un parametro).
Possibilità di impostare i primi URL da esplorare (anche se fuori ambito).
Può escludere alcuni URL dalla scansione e dagli attacchi (ad es.: URL di logout).
Importa i cookie dal tuo browser Chrome o Firefox oppure utilizzando lo strumento wapiti-getcookie.
Può attivare / disattivare la verifica dei certificati SSL.
Tenta di estrarre URL dal javascript (interprete JS molto basilare).
Compatibile con HTML5 (comprende i tag HTML recenti).
Diverse opzioni per controllare il comportamento e i limiti del crawler.
Salta alcuni nomi di parametri durante l'attacco.
Impostazione di un tempo massimo per il processo di scansione.
Aggiunta di alcuni header HTTP personalizzati o impostazione di un User-Agent personalizzato.
Utilizzo di un browser Firefox headless per il crawling
Caricamento del proprio codice python per casi di autenticazione complicati (vedi opzione --form-script)
Aggiunta di URL o PATH personalizzati per aggiornare il database Wappalyzer
Scansione di API REST fornite da un file OpenAPI (swagger)
Attacchi supportati
Iniezioni SQL (basate su errori, booleane, basate sul tempo) e iniezioni XPath
Iniezioni LDAP (basate su errori e booleane)
Cross Site Scripting (XSS) riflesso e permanente
Rilevamento di divulgazione di file (inclusione locale e remota, require, fopen, readfile...)
Rilevamento di esecuzione di comandi (eval(), system(), passtru()...)
Iniezione XXE (Xml eXternal Entity)
Iniezione CRLF
Ricerca di file potenzialmente pericolosi sul server (grazie al database Nikto)
Bypass di configurazioni htaccess deboli
Ricerca di copie (backup) degli script sul server
Shellshock
Enumerazione di cartelle e file (simile a DirBuster)
Server Side Request Forgery (tramite l'utilizzo di un sito Wapiti esterno)
Open Redirect
Rilevamento di metodi HTTP non comuni (come PUT)
Valutatore CSP di base
Brute Force sul modulo di login (utilizzando un dizionario)
Verifica degli header di sicurezza HTTP
Verifica dei flag di sicurezza dei cookie (flag secure e httponly)
Rilevamento di base di Cross Site Request Forgery (CSRF)
Fingerprinting delle applicazioni web tramite il database Wappalyzer, fornisce informazioni sulle CVE correlate
Enumerazione dei moduli CMS per Wordpress, Drupal, Joomla, Magento, SPIP, Typo3, ecc.
Rilevamento di subdomain takeover
Rilevamento di Log4Shell (CVE-2021-44228)
Rilevamento di Spring4Shell (CVE-2022-22965)
Verifica dei reindirizzamenti https
Verifica delle vulnerabilità di upload di file
Rilevamento di dispositivi di rete
Inietta payload anche nel corpo JSON
Wapiti supporta sia i metodi HTTP GET che POST per gli attacchi.
Supporta anche multipart e può iniettare payload nei nomi dei file (upload).
Mostra un avviso quando viene trovata un'anomalia (ad esempio errori 500 e timeout)
Distingue tra vulnerabilità XSS permanenti e riflesse.
Nomi dei moduli
Gli attacchi sopra menzionati sono collegati ai seguenti nomi di moduli:
backup (Cerca copie degli script e archivi sul server web)
brute_login_form (Brute Force del modulo di login utilizzando un dizionario)
buster (Modulo simile a DirBuster)
cms (Scansione per rilevare CMS e le loro versioni)
cookieflags (Verifica i flag Secure e HttpOnly)
crlf (Iniezione CR-LF negli header HTTP)
csp (Rileva l'assenza di CSP o una configurazione CSP debole)
csrf (Rileva moduli non protetti contro CSRF o che utilizzano token anti-CSRF deboli)
exec (Esecuzione di codice o iniezione di comandi)
file (Path traversal, inclusione di file, ecc.)
htaccess (Restrizioni htaccess configurate in modo errato)
htp (Identifica le tecnologie web utilizzando il database HashThePlanet)
http_headers (Verifica gli header di sicurezza HTTP)
https_redirect (Verifica i reindirizzamenti https)
ldap (Rilevamento di iniezioni LDAP basate su errori e booleane)
log4shell (Rileva siti web vulnerabili a CVE-2021-44228)
methods (Cerca metodi HTTP non comuni disponibili come PUT)
network_device (Cerca file comuni per rilevare dispositivi di rete)
nikto (Cerca vulnerabilità note testando l'esistenza degli URL e verificando le risposte)
permanentxss (Riscansiona l'intero target dopo l'esecuzione del modulo xss cercando payload precedentemente contaminati)
printer (Rileva stampanti di rete, recupera informazioni su modello e firmware)
redirect (Open Redirect)
shellshock (Testa l'attacco Shellshock, vedi Wikipedia <https://en.wikipedia.org/wiki/Shellshock_%28software_bug%29>__)
spring4shell (Rileva siti web vulnerabili a CVE-2020-5398)
sql (Rilevamento di iniezioni SQL basate su errori e booleane)
ssl (Valuta la sicurezza della configurazione dei certificati SSL/TLS, richiede sslscan <https://github.com/rbsec/sslscan>__)
ssrf (Server Side Request Forgery)
takeover (Subdomain takeover)
timesql (Vulnerabilità di iniezione SQL rilevate con metodologia basata sul tempo)
upload (Vulnerabilità di upload di file)
wapp (Non è un modulo di attacco, recupera le tecnologie web con versioni e categorie in uso sul target, trova le CVE corrispondenti)
wp_enum (Enumera plugin e temi su un sito Wordpress)
xss (Modulo di iniezione XSS)
xxe (Attacco XML External Entity)
I nomi dei moduli possono essere forniti come elenco separato da virgole utilizzando l'opzione "-m" o "--module".
Come ottenere i migliori risultati
Per trovare più vulnerabilità (poiché alcuni attacchi si basano sugli errori), puoi modificare le configurazioni del tuo server web.
Ad esempio, puoi impostare i seguenti valori nella tua configurazione PHP:
.. code-block::
root@kitploit:~
safe_mode = Off
display_errors = On (recommended)
magic_quotes_gpc = Off
allow_url_fopen = On
mysql.trace_mode = On
Dove ottenere aiuto
Nel prompt, digita semplicemente il seguente comando per ottenere l'utilizzo di base:
root@kitploit:~
wapiti -h
Puoi anche dare un'occhiata alla pagina man (wapiti.1 o wapiti.1.html) per maggiori dettagli su ciascuna opzione.
Crea o migliora i generatori di report e i modelli
Invia bugfix, patch...
Scrivi alcune GUI
Crea uno strumento per convertire file PCAP in file di sessione sqlite3 di Wapiti
Parla di Wapiti in giro
Licenza
Wapiti è rilasciato sotto la GNU General Public License versione 2 (GPL).
Il codice sorgente è disponibile su Github <https://github.com/wapiti-scanner/wapiti>__.
Wapiti è un software di cybersicurezza. Esegue valutazioni di sicurezza su un target fornito, il che può causare malfunzionamenti e crash sul target, oltre a una potenziale perdita di dati.
L'utilizzo di Wapiti per attaccare un target senza il consenso preventivo del suo proprietario è illegale. È responsabilità dell'utente finale rispettare tutte le leggi locali applicabili.
Gli sviluppatori e le persone coinvolte nel progetto Wapiti non si assumono alcuna responsabilità e non sono responsabili per qualsiasi uso improprio o danno causato da questo programma.