Ci e' stato chiesto di controllare la sicurezza dell'utente "admin".
( La password e' "password", ma facciamo finta di sapere solo il nome "admin").
Useremo una tecnica chiamata "brute force" (forza bruta), dove senza tanta finezza, si provano gli utenti e/o password da una o piu' liste, uno dopo l'altro, fino a quando si trova quella giusta, o finisce la lista.
Intercetteremo un login con password sbagliata per avere le informazioni necessarie da usare con Hydra THC.
I programmi e liste usate sono tutte incluse in Kali.
NOTA: liste di password vanno da kilobytes (migliaia) a gigabytes (milioni+) di passwords o nomi di utenti. Ci sono programmi, siti e scripts per "creare" liste di password da altre liste, combinandole con prefissi e suffi e ottimizzandole a seconda della lingua o tematica. La qualita' delle passwords e' importante, e non la quantita'.
Importante: ricorda che abbiamo assegnato indirizzi IP statici:
metasploitable2 192.168.1.10
e kali VM su 192.168.1.20
entrambi sono Attaccate al Network Interno > intnet
La pagina http://192.168.1.10/dvwa/login.php ha una "Web Form" per entrare.
Quando si compila una web form, si riempiono i "campi" (fields) con nome/password/data/eta/area/etc, queste informazioni vengono mandate e controllate dal Server, che risponde dando accesso ad un altra pagina/risorsa o con un messaggio di errore.
Prima di poter iniziare a automatizzare le prove, abbiamo bisogno di alcune informazioni, come che tipo di forma e' usata, quanti e quali campi (fields) usa, e che messaggio da in caso di password sbagliata.
In particolare, Hydra ha bisogno di almeno:
- indirizzo IP del sito
- URL della pagina del login
- tipo di forma (HTTP/HTTPS/POST/GET)
- nome dei "campi" (fields) per utente e password
- messaggio di errore
<inizio crack web form>
Fai partire Metasploitable2 VM.
Fai partire Kali VM.
Apri Firefox (web browser) e preparalo per far passare tutto il traffico su Burp Suite
Edit > Preferences > Advanced > Network > Settings > Connection Settings
Cambia HTTP proxy a 127.0.0.1 porta 8080
v usa questo proxy per tutti i protocolli
Socks5
![]() |
Firefox Advanced> Network > Settings > Connection Settings |
controlla che Proxy >> Intercept >> intercept is on
vai su Proxy > Options > SSL Pass Trough e accendi v Automatically add entries...
Su Firefox, vai su http://192.168.1.10/dvwa/login.php
Su Burp, nota che ha intercettato la richiesta per la pagina, clicca Forward
Su Firefox, entra username: admin e password: 1234
Su Burp, nota che ha intercettato la richiesta per la pagina, clicca Forward
Su Firefox, nota, in basso alla pagina, il messaggio di errore: Login Failed
Su Burp, vai su Target > Site Map
Interessante per noi, e' la richiesta con metodo POST
Abbiamo quindi le seguenti informazioni per Hydra
- indirizzo IP del sito: 192.168.1.10
- URL della pagina del login: /dvwa/login.php
- tipo di forma (HTTP/HTTPS/POST/GET): HTTP-POST-FORM
- nome dei "campi" (fields) per utente e password:
username=admin&password=1234&Login=Login - messaggio di errore: " Login Failed "
- il dizionario /usr/share/dirb/wordlists/small.txt (uno dei tanti in Kali)
Useremo quindi la seguente sintassi:
hydra -l <username> -p <password list> <IP Address> <parametri form > <messaggio di errore>
Con i dati ottenuti da Burp, il comando diventa:
hydra -l admin -P /usr/share/dirb/wordlists/small.txt 192.168.1.10 HTTP-POST-FORM "dvwa/login.ph:username=^USER^&password=^PASS^&Login=Login:Login Failed" -V
hydra
- -l il nome di un singolo utente (usa -L per usare una lista di utenti)
- -P usa la seguente password list >
- http-post-form usa questo metodo per la connessione
- /dvwa/login-php usa questa URL per trovare la pagina del login
- username nome del"campo" (field) dell'utente
- ^USER^ Hydra inserisci qui il nome utente (singolo o da una lista)
- password nome del "campo" (field) della password
- ^PASS^ Hydra- inserisci qui la password dalla lista di password
- Login usa il seguente Messaggio di errore >
- Login failed messaggio di errore
- -V mostra i tentantivi (verboso)
Dopo un paio di minuti, al 718esimo tentativo, Hydra trova la password.
<fine crack web form>
Conclusioni
Bruteforce e Hydra sono un ottimo metodo per testare un sito web o applicazione PRIMA che sia pubblicata. Per assicurarsi che nessuno ha usato password facilmente indovinabili.Questo metodo e' valido per dare un idea generale del processo, e "nel mondo reale" verrebbe bloccato al secondo o terzo tentativo.
Articolo originale:
https://null-byte.wonderhowto.com/how-to/hack-like-pro-crack-online-web-form-passwords-with-thc-hydra-burp-suite-0160643/
Appendice - Burp Suite
Burp Suite (versione pagata) e' uno dei migliori programmi nell'arsenale del Pentesting ed usato da molti professionisti nel settore.Ha la capacita' di intercettare, analizzare, modificare e rimandare indietro qualsiasi pacchetto indirizzato al browser.
Per completezza, e stuzzicare la curiosita', aggiungiamo che e' possibile usare Burp Suite per cercare una password in una web form. '
Su Burp, in Target > Site Map
selezione l'entrata del tentativo di login > Right-click > Send to Intruder
Sulla tab di Intruder, 4 sotto-tabs: Target, Positions, Payloads e Options
- Target: 192.168.1.10 port 80
- Positions: qui si dice a Burp quali "campi" (fields) tentare, metodo: Sniper
Il simbolo § circonda l'elemento da usare per i tentativi.
"Clear §" per pulire
Seleziona (highlight) 1234 e clicca "Add §" per ottenere §1234§ - Payloads
Payload Set: 1, Payload type: Simple List
Payload Options > Load > /usr/share/dirb/wordlists/small.txt
Payload Encoding > spento (inattivo) - Options
Pause before retry (milliseconds): 500
![]() |
posizione del Payload |
![]() |
password trovata |
Burp e' decisamente piu' lento di Hydra nel tentare passwords, e neanche necessario per questo tutorial (una semplice estensione (add-on) sarebbe bastata), tuttavia, prendiamo l'occasione di introdurre l'idea che programmi possono avere molti usi diversi e possono essere usati fra di loro.
L'output di un programma diventa input per un altro programma.
Simile programma, ma Open source OWASP Zed Attack Proxy (ZAP)
https://it.wikipedia.org/wiki/Open_Web_Application_Security_Project
Ulteriore materiale su HTTP protocolli, le richieste GET e POST, i codici delle pagine.
https://it.wikipedia.org/wiki/Hypertext_Transfer_Protocol
https://it.wikipedia.org/wiki/Codici_di_stato_HTTP
https://it.wikipedia.org/wiki/Suite_di_protocolli_Internet