Lozinka je tehnički definirana kao tajni niz znakova koji se koriste za provjeru autentičnosti ili pristup izvorima. Mora se držati u tajnosti i skrivati od drugih kojima nije dopušten pristup tim resursima. Lozinke se koriste s računalima od najranijih dana računalstva. Jedan od prvih sustava dijeljenja koji je uveden 1961. Imao je naredbu za prijavu koja je tražila korisničku lozinku. Nakon upisivanja PASSWORD, sustav isključuje mehanizam ispisa, ako je moguće, tako da korisnik može unijeti svoju lozinku s privatnošću.
Snaga lozinke je funkcija duljine, složenosti i nepredvidljivosti. Mjeri učinkovitost u odupiranju nagađanju ili razbijanju. S druge strane, slabe lozinke skraćuju vrijeme potrebno za pogađanje i pristup osobnim/poslovnim e-porukama, osjetljivim podacima poput financijskih podataka, poslovnih podataka, kreditnih kartica itd.
Zaporka može biti slaba na mnogo načina koji odgovaraju snazi različitih shema napada. Najpopularniji od ove vrste vjerodajničkih napada je gruba sila. to je metoda pokušaja i pogrešaka poput pogađanja, pokušaja dekodiranja šifriranih podataka kao što je lozinka ili šifriranje podataka koje koristi aplikacijski program ili alat za hakiranje.
Hydra je najbrži kreker za prijavljivanje na mrežu koji podržava brojne protokole napada. Vrlo je brz i fleksibilan, a nove module lako je dodati. Ovaj alat omogućuje istraživačima i sigurnosnim konzultantima da pokažu kako bi bilo lako dobiti neovlašteni pristup sustavu na daljinu. Hydra je napisao van Hauser, a dodatno ju je podržao David Maciejak. U najnovijem ažuriranju razvoj hidre je premješten u javno github spremište na: https://github.com/vanhauser-thc/thc-hydra.
Hydra je testirana za kompajliranje na Linuxu, Windows/Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX, QNX/Blackberry, a dostupna je pod GPLv3 s posebnim proširenjem licence za OpenSSL.
THC Hydra podržava ove protokole: 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 slušatelj, Oracle SID, PC-bilo gdje, PC-NFS, POP3, PostgreSQL, RDP, Rexec, Rlogin, Rsh, SIP, SMB (NT), SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 i v2), SSHKEY, Subverzija, Teamspeak (TS2), Telnet, VMware-Auth, VNC i XMPP.
USPOREDBA HIDRE S DRUGIM ALATIMA ZA POKRETANJE
Osim hidre, postoji i mnogo alata za krekiranje prijava, no niti jedan ne podržava ogroman popis protokola i podršku paralelnih krekera za prijavu kao što to čini hidra. Tablice u nastavku prikazuju rezultate značajki, usluga i usporedbe brzine u odnosu na meduzu i ncrack.
Značajke
Značajka | Hidra | meduza | Ncrack |
Licenca | AGPLv3 | GPLv2 | GPLv2 + Nmap pojmovi |
Podrška za IPv6 | Da | Ne | Ne |
Grafičko korisničko sučelje | Da | Da | Ne |
Internacionalizirana podrška (RFC 4013) | Da | Ne | Ne |
HTTP proxy podrška | Da | Da | Ne |
SOCKS proxy podrška | Da | Ne | Ne |
Podržani protokoli | 51 | 22 | 7 |
Usluge
Servis | Pojedinosti | Hidra | meduza | Ncrack |
ADAM-6500 | Da | Ne | Ne | |
AFP | Da | Da | Ne | |
Zvjezdica | Da | Ne | Ne | |
Cisco lozinka | Da | Ne | Ne | |
Omogući Cisco | Da | Ne | Ne | |
CVS | Da | Da | Ne | |
Žar ptica | Da | Ne | Ne | |
FTP | Da | Da | Da | |
SSL podrška | AUTH TLS & FTP preko SSL -a | AUTH TLS & FTP preko SSL -a | Ne | |
HTTP | Metode | DOBI, GLAVA, POST | DOBITI | DOBITI |
Osnovno provjeravanje autentičnosti | Da | Da | Da | |
HTTP obrazac | Metode | GET, POST | GET, POST | Ne |
SSL podrška | HTTPS | HTTPS | Ne | |
HTTP proxy | Osnovno provjeravanje autentičnosti | Da | Ne | Ne |
DIGEST-MD5 Auth | Da | Ne | Ne | |
NTLM Auth | Da | Ne | Ne | |
SSL podrška | HTTPS | Ne | Ne | |
Nabrajanje URL -a HTTP PROXY | Da | Ne | Ne | |
ICQ | v5 | Da 1 | Ne | Ne |
IMAP | LOGIN podrška | Da | Da | Ne |
AUTH LOGIN podrška | Da | Ne | Ne | |
AUTH PLAIN podrška | Da | Da | Ne | |
AUTH CRAM-MD5 podrška | Da | Ne | Ne | |
AUTH CRAM-SHA1 podrška | Da | Ne | Ne | |
AUTH CRAM-SHA256 podrška | Da | Ne | Ne | |
AUTH DIGEST-MD5 podrška | Da | Ne | Ne | |
AUTH NTLM podrška | Da | Da | Ne | |
AUTH SCRAM-SHA1 podrška | Da | Ne | Ne | |
SSL podrška | IMAPS & STARTTLS | IMAPS & STARTTLS | Ne | |
IRC | Opća lozinka poslužitelja | Da | Ne | Ne |
Lozinka načina rada OPER | Da | Ne | Ne | |
LDAP | v2, jednostavna podrška | Da | Ne | Ne |
v3, jednostavna podrška | Da | Ne | Ne | |
v3, podrška za AUTH CRAM-MD5 | Da | Ne | Ne | |
AUTH DIGEST-MD5 podrška | Da | |||
AUTH NTLM podrška | Da | Da | ||
AUTH SCRAM-SHA1 podrška | Da | |||
SSL podrška | IMAPS & STARTTLS | IMAPS & STARTTLS | ||
IRC | Opća lozinka poslužitelja | Da | ||
Lozinka načina rada OPER | Da | |||
LDAP | v2, jednostavna podrška | Da | ||
v3, jednostavna podrška | Da | |||
v3, podrška za AUTH CRAM-MD5 | Da | |||
v3, AUTH DIGEST-MD5 podrška | Da | |||
MS-SQL | Da | Da | ||
MySQL | v3.x | Da | Da | |
v4.x | Da | Da | ||
v5.x | Da | Da | ||
NCP | Da | Da | ||
NNTP | KORISNIČKA podrška | Da | Da | |
AUTH LOGIN podrška | Da | |||
AUTH PLAIN podrška | Da | |||
AUTH CRAM-MD5 podrška | Da | |||
AUTH DIGEST-MD5 podrška | Da | |||
AUTH NTLM podrška | Da | |||
SSL podrška | STARTTLS & NNTP preko SSL -a | |||
Oracle | Baza podataka | Da | Da | |
Slušatelj TNS -a | Da | |||
SID nabrajanje | Da | |||
PC-NFS | Da | |||
pcAnywhere | Izvorna provjera autentičnosti | Da | Da | |
Autentifikacija temeljena na OS -u (MS) | Da | |||
POP3 | KORISNIČKA podrška | Da | Da | Da |
APOP podrška | Da | |||
AUTH LOGIN podrška | Da | Da | ||
AUTH PLAIN podrška | Da | Da | ||
AUTH CRAM-MD5 podrška | Da | |||
AUTH CRAM-SHA1 podrška | Da | |||
AUTH CRAM-SHA256 podrška | Da | |||
AUTH DIGEST-MD5 podrška | Da | |||
AUTH NTLM podrška | Da | Da | ||
SSL podrška | POP3S & STARTTLS | POP3S & STARTTLS | POP3S | |
PostgreSQL | Da | Da | ||
Zvjezdica | Da | |||
RDP | Windows radna stanica | Da | Da | Da |
Windows poslužitelj | Da | Da | ||
Autentika domene | Da | Da | ||
REDIS | Da | Ne | ||
REXEC | Da | Da | ||
PRIJAVA | Da | Da | ||
RPCAP | Da | Ne | ||
RSH | Da | Da | ||
RTSP | Da | Ne | ||
SAP R / 3 | Da | |||
Siemens S7-300 | Da | |||
GUTLJAJ | Da | |||
SSL podrška | SIP preko SSL -a | |||
SMB | NetBIOS način rada | Da | Da | Ne |
Izvorni način rada W2K | Da | Da | Da | |
Način raspršivanja | Da | Da | Ne | |
Autorizacija brisanja teksta | Da | Da | ||
Autorizacija LMv1 | Da | Da | Da | |
LMv2 Auth | Da | Da | Da | |
NTLMv1 Auth | Da | Da | Da | |
NTLMv2 Auth | Da | Da | Da | |
SMTP | AUTH LOGIN podrška | Da | Da | |
AUTH PLAIN podrška | Da | Da | ||
AUTH CRAM-MD5 podrška | Da | |||
AUTH DIGEST-MD5 podrška | Da | |||
AUTH NTLM podrška | Da | Da | ||
SSL podrška | SMTPS & STARTTLS | SMTPS & STARTTLS | ||
Naziv korisnika SMTP -a | VRFY cmd | Da | Da | |
EXPN cmd | Da | Da | ||
RCPT TO cmd | Da | Da | ||
SNMP | v1 | Da | Da | |
v2c | Da | Da | ||
v3 | (Samo autorizacija MD5/SHA1) | |||
ČARAPE | v5, provjera lozinke | Da | ||
SSH | v1 | Da | ||
v2 | Da | Da | Da | |
SSH ključevi | v1, v2 | Da | ||
Subverzija (SVN) | Da | Da | ||
Grupni govor | TS2 | Da | ||
Telnet | Da | Da | Da | |
XMPP | AUTH LOGIN podrška | Da | ||
AUTH PLAIN podrška | Da | |||
AUTH CRAM-MD5 podrška | Da | |||
AUTH DIGEST-MD5 podrška | Da | |||
AUTH SCRAM-SHA1 podrška | Da | |||
VMware Auth Daemon | v1.00 / v1.10 | Da | Da | |
SSL podrška | Da | Da | ||
VNC | RFB 3.x podrška lozinkom | Da | Da | |
Podrška za RFB 3.x korisnika+lozinku | (Samo UltraVNC) | |||
Podrška zaporkom RFB 4.x | Da | Da | ||
Podrška za RFB 4.x korisnika+lozinku | (Samo UltraVNC) |
Usporedba brzine
Brzina (u s) | Hidra | meduza | Ncrack |
1 Zadatak / FTP modul | 11.93 | 12.97 | 18.01 |
4 Zadaci / FTP modul | 4.20 | 5.24 | 9.01 |
16 Zadaci / FTP modul | 2.44 | 2.71 | 12.01 |
1 Zadatak / SSH v2 modul | 32.56 | 33,84 | 45.02 |
4 Zadaci / SSH v2 modul | 10.95 | Slomljen | Promašeno |
16 Zadaci / SSH v2 modul | 5.14 | Slomljen | Promašeno |
To je bio kratak jednostavan uvod u hidru. Sada idemo na instalaciju.
UGRADNJA HIDRE
Hydra je unaprijed instalirana na kali linux, no ako imate drugačiji operativni sustav, možete je sastaviti i instalirati na vaš sustav. Trenutno, hidra podrška na različitim platformama:
- Sve UNIX platforme (Linux, *bsd, Solaris itd.)
- MacOS (u osnovi BSD klon)
- Windows sa Cygwinom (i IPv4 i IPv6)
- Mobilni sustavi temeljeni na Linuxu, MacOS -u ili QNX -u (npr. Android, iPhone, Blackberry 10, Zaurus, iPaq)
Da biste preuzeli, konfigurirali, sastavili i instalirali hidru, samo upišite u terminal:
git clone https://github.com/vanhauser-thc/thc-hydra.git cd thc-hydra ./configure make make install
Ako imate Ubuntu/Debian, trebat će vam neke biblioteke ovisnosti:
apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev libncp-dev
Ako niste mogli pronaći te knjižnice u svom spremištu, morate ih ručno preuzeti i instalirati.
KAKO KORISTITI HIDRU
Čestitamo, sada ste uspjeli instalirati hidru na svoj sustav. Zapravo, Hydra dolazi s dva okusa, GUI-gtk i mojom omiljenom, CLI verzijom. a osim toga hydra ima i CLI vođenu verziju, koja se zove hydra-wizard. Vodit ćete se korak po korak umjesto da ručno upisujete sve naredbe ili argumente u terminal. Za pokretanje hidre iz vašeg terminala:
Za CLI:
hydra
Za CLI-čarobnjaka:
hydra-wizard
Za GUI:
xhydra
Nakon što upišete 'hydra', prikazat će se naredbe pomoći poput ove:
[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
Bruteforce web -prijava s hidrom
Hydra podržava neke bruteforcing usluge kao što sam ranije spomenuo, jedna od njih se koristi za bruteforce prijave na webu, kao što su, obrazac za prijavu na društvenim medijima, obrazac za prijavu u korisničko bankarstvo, prijava na web usmjerivač itd. Taj http [s] -get-form koja će obraditi ovaj zahtjev. U ovom tutorijalu pokazat ću vam kako bruteforsirati ranjive web prijave. Prije nego što pokrenemo hidru, trebali bismo znati neke potrebne argumente, u nastavku:
- Cilj : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
- Korisničko ime za prijavu : admin (ako niste sigurni, bruteforce ovo)
- Popis lozinki : Mjesto popisa datoteka rječnika koje sadrži moguće lozinke.
- Parametri obrasca : općenito, upotrijebite podatke o neovlaštenom pristupu ili proxy da biste dobili oblik parametara zahtjeva. Ali ovdje koristim iceweasel, alatnoj traci za razvojne programere temeljenoj na firefoxu.
- Servisni modul : 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.
Dobivanje parametara posta pomoću preglednika, iceweasela/firefoxa
U pregledniku Firefox pritisnite tipke ' CTRL + SHIFT + Q ‘. Zatim otvorite web stranicu za prijavuhttp://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F, primijetit ćete da se neki tekst pojavljuje na kartici razvojnog programera mreže. Govori vam koje se datoteke prenose na nas. Pogledajte metodu svi su GET, jer još nismo objavili nikakve podatke.
Da biste dobili parametre post-obrasca, upišite bilo što u obrazac za korisničko ime i / ili lozinku. Primijetit ćete novu POST metodu na kartici razvojnog programera mreže. Dvaput kliknite na tu liniju, na kartici Zaglavlja kliknite gumb Uredi i ponovno pošalji s desne strane. Na tijelu zahtjeva kopirajte posljednji redak, kao što je tfUName = asu & tfUPass = raimu . the tfUName i tfUPass parametri su nam potrebni. Kao što se vidi dolje:
Kali linux ima hrpu popisa riječi, odaberite odgovarajući popis riječi ili jednostavno upotrijebite mjesto rockyou.txt u /usr/share/wordlists/ kako se vidi dolje:
U redu, sada imamo sve argumente koji su nam potrebni i spremni smo za paljenje hidre. Evo naredbenog uzorka:
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
Raščlanimo naredbe:
- the : je riječ koja sadrži korisnički račun, koristite -L za upućivanje na popis mogućih korisničkih imena u datoteci.
- P : je popis datoteka moguće lozinke, koristite -p da doslovno upotrijebite jednu riječ zaporku umjesto da je pogodite.
- testapp.vunlwebapp.com : je naziv hosta ili cilj
- http-post-obrazac : je uslužni modul koji koristimo
- /Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout = potrebna 3 parametra, sintaksa je:
{URL URL}: {Request post body form form parameters}: S = {Pronađite bilo što na stranici nakon uspješne prijave} - v = Opširni način rada
- V. = pokazati prijavu: proći za svaki pokušaj
- f = Zaustavite program ako je pronađena prijava za par: lozinka
Dopustimo sada da hidra pokuša razbiti lozinku umjesto nas, treba joj vremena jer je to napad na rječnik. Nakon što ste uspjeli pronaći par login: password hydra će odmah prekinuti posao i pokazati važeće vjerodajnice.
Hydra može toliko toga učiniti, budući da smo u ovom vodiču upravo naučili kako bruteforce prijavljivanje putem weba koristiti hidru, naučili smo samo jedan protokol, a to je protokol http-post-form. Također možemo koristiti hidru protiv drugog protokola kao što su ssh, ftp, telnet, VNC, proxy itd.