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

No

No

Interfaccia utente grafica

No

Supporto internazionalizzato (RFC 4013)

No

No

Supporto proxy HTTP

No

Supporto proxy SOCKS

No

No

Protocolli supportati

51

22

7

 

Servizi

Crack pagina di accesso basata sul Web con

Servizio

Particolari

Idra

Medusa

Ncrack


ADAM-6500


No

No


AFP


No


Asterisco


No

No


Password Cisco


No

No


Cisco Enable


No

No


CVS


No


Firebird


No

No


FTP




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



Modulo HTTP

Metodo/i

GET, POST

GET, POST

No



Supporto SSL

HTTPS

HTTPS

No


Proxy HTTP

Autenticazione di base

No

No

DIGEST-MD5 Aut


No

No


Autenticazione NTLM


No

No


Supporto SSL


HTTPS

No

No


Enumerazione URL PROXY HTTP


No

No


ICQ

v5

1

No

No


IMAP

LOGIN supporto

No



ACCESSO AUTOMATICO supporto

No

No



Supporto AUTH PLAIN

No



Supporto AUTH CRAM-MD5

No

No



Supporto AUTH CRAM-SHA1

No

No



Supporto AUTH CRAM-SHA256

No

No



Supporto AUTH DIGEST-MD5

No

No



AUTH supporto NTLM

No



Supporto AUTH SCRAM-SHA1

No

No



Supporto SSL

IMAPS & STARTTLS

IMAPS & STARTTLS

No


IRC

Password generale del server

No

No



Password modalità OPER

No

No


LDAP

v2, supporto semplice

No

No



v3, supporto semplice

No

No



v3, supporto AUTH CRAM-MD5

No

No



Supporto AUTH DIGEST-MD5




AUTH supporto NTLM




Supporto AUTH SCRAM-SHA1





Supporto SSL

IMAPS & STARTTLS

IMAPS & STARTTLS




IRC

Password generale del server




Password modalità OPER





LDAP

v2, supporto semplice




v3, supporto semplice





v3, supporto AUTH CRAM-MD5





v3, supporto AUTH DIGEST-MD5





MS-SQL




MySQL

v3.x



v4.x




v5.x




PCN




NNTP

Supporto UTENTE



ACCESSO AUTOMATICO supporto





Supporto AUTH PLAIN





Supporto AUTH CRAM-MD5





Supporto AUTH DIGEST-MD5





AUTH supporto NTLM





Supporto SSL

STARTTLS e NNTP su SSL





Oracolo

Banca dati



Ascoltatore TNS





Enumerazione SID





PC-NFS





pcAnywhere

Autenticazione nativa



Autenticazione basata sul sistema operativo (MS)





POP3

Supporto UTENTE


Supporto APOP





ACCESSO AUTOMATICO supporto




Supporto AUTH PLAIN




Supporto AUTH CRAM-MD5





Supporto AUTH CRAM-SHA1





Supporto AUTH CRAM-SHA256





Supporto AUTH DIGEST-MD5





AUTH supporto NTLM




Supporto SSL

POP3S & STARTTLS

POP3S & STARTTLS

POP3S



PostgreSQL




Asterisco





RDP

Windows Workstation


Windows Server




Autenticazione dominio




REDIS


No



REXEC




RLOGIN




RPCAP


No



RSH




RTSP


No



SAP R/3





Siemens S7-300





SORSO





Supporto SSL

SIP su SSL





PMI

Modalità NetBIOS

No


Modalità nativa W2K



Modalità hash

No



Autenticazione testo chiaro




Autorizzazione LMv1



Autorizzazione LMv2



Autenticazione NTLMv1



Autenticazione NTLMv2



SMTP

ACCESSO AUTOMATICO supporto



Supporto AUTH PLAIN




Supporto AUTH CRAM-MD5





Supporto AUTH DIGEST-MD5





AUTH supporto NTLM




Supporto SSL

SMTP e STARTTLS

SMTP e STARTTLS




Enumerazione utente SMTP

cmd VRfy



EXPN cmd




RCPT TO cmd




SNMP

v1



v2c




v3

(solo autenticazione MD5/SHA1)





CALZINI

v5, autenticazione password




SSH

v1




v2



Chiavi SSH

v1, v2




Sovversione (SVN)




TeamSpeak

TS2




Telnet



XMPP

ACCESSO AUTOMATICO supporto




Supporto AUTH PLAIN





Supporto AUTH CRAM-MD5





Supporto AUTH DIGEST-MD5





Supporto AUTH SCRAM-SHA1





Demone di autenticazione VMware

v1.00 / v1.10



Supporto SSL




VNC

Supporto per password RFB 3.x



RFB 3.x supporto utente+password


(solo UltraVNC)




Supporto per password RFB 4.x




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:

git clone https://github.com/vanhauser-thc/thc-hydra.git

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

Post popolari in questo blog

Smart Working ai tempi del Covid 19