Geslo je tehnično opredeljeno kot skrivni niz znakov, ki se uporabljajo za preverjanje pristnosti ali dostop do virov. Hraniti ga je treba v skrivnosti in ga skriti pred drugimi, ki nimajo dostopa do teh virov. Gesla se v računalnikih uporabljajo že od prvih dni računalništva. Eden prvih sistemov za skupno rabo je bil uveden leta 1961. Imel je ukaz za prijavo, ki je zahteval uporabniško geslo. Po vnosu GESLA sistem po možnosti izklopi tiskalniški mehanizem, tako da lahko uporabnik vnese svoje geslo z zasebnostjo.
Moč gesla je odvisna od dolžine, kompleksnosti in nepredvidljivosti. Meri učinkovitost pri upiranju ugibanja ali zloma. Šibka gesla pa skrajšajo čas, potreben za ugibanje in dostop do osebne/poslovne e-pošte, občutljivih podatkov, kot so finančni podatki, poslovni podatki, kreditne kartice itd.
Geslo je lahko šibko, kar ustreza moči različnih shem napadov. Najbolj priljubljen tovrstni napad poverilnic je brutalna sila. to je metoda poskusov in napak, kot je ugibanje, poskus dekodiranja šifriranih podatkov, kot je geslo ali šifriranje podatkov, ki jih uporablja aplikacijski program ali orodje za vdor.
Hydra je najhitrejši kreker za prijavo v omrežje, ki podpira številne protokole napadov. Je zelo hiter in prilagodljiv, nove module pa je enostavno dodati. To orodje raziskovalcem in varnostnim svetovalcem omogoča, da pokažejo, kako enostavno bi bilo nepooblaščen dostop do sistema na daljavo. Hydro je napisal van Hauser, dodatno pa jo je podprl David Maciejak. V zadnji posodobitvi je razvoj hidre premaknjen v javno skladišče github na: https://github.com/vanhauser-thc/thc-hydra.
Hydra je bila preizkušena za prevajanje v sistemih Linux, Windows/Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX, QNX/Blackberry in je na voljo pod GPLv3 s posebno razširitvijo licence OpenSSL.
THC Hydra podpira te 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 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 in v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC in XMPP.
PRIMERJAVA HIDRE Z DRUGIMI ORODJI ZA POČKANJE
Poleg hidre je tudi veliko orodij za razbijanje prijav, vendar nobeno ne podpira velikega seznama protokolov in podpore za paralelno krmarjenje prijav, kot to počne hidra. Spodnje tabele prikazujejo rezultate funkcij, storitev in primerjave hitrosti medusa in ncrack.
Lastnosti
Lastnost | Hidra | meduze | Ncrack |
Licenca | AGPLv3 | GPLv2 | Izrazi GPLv2 + Nmap |
Podpora za IPv6 | Da | Ne | Ne |
Grafični uporabniški vmesnik | Da | Da | Ne |
Internacionalizirana podpora (RFC 4013) | Da | Ne | Ne |
Podpora proxy HTTP | Da | Da | Ne |
Podpora proxy SOCKS | Da | Ne | Ne |
Podprti protokoli | 51 | 22 | 7 |
Storitve
Storitev | Podrobnosti | Hidra | meduze | Ncrack |
ADAM-6500 | Da | Ne | Ne | |
AFP | Da | Da | Ne | |
Zvezdica | Da | Ne | Ne | |
Geslo za Cisco | Da | Ne | Ne | |
Omogoči Cisco | Da | Ne | Ne | |
CVS | Da | Da | Ne | |
Ognjena ptica | Da | Ne | Ne | |
FTP | Da | Da | Da | |
Podpora SSL | AUTH TLS & FTP prek SSL | AUTH TLS & FTP prek SSL | Ne | |
HTTP | Metode | GET, HEAD, POST | DOBI | DOBI |
Osnovno preverjanje pristnosti | Da | Da | Da | |
Obrazec HTTP | Metode | GET, POST | GET, POST | Ne |
Podpora SSL | HTTPS | HTTPS | Ne | |
HTTP proxy | Osnovno preverjanje pristnosti | Da | Ne | Ne |
DIGEST-MD5 Auth | Da | Ne | Ne | |
NTLM Auth | Da | Ne | Ne | |
Podpora SSL | HTTPS | Ne | Ne | |
Preštevanje URL -jev strežnika HTTP PROXY | Da | Ne | Ne | |
ICQ | v5 | Da 1 | Ne | Ne |
IMAP | LOGIN podpora | Da | Da | Ne |
Podpora za AUTH LOGIN | Da | Ne | Ne | |
Podpora AUTH PLAIN | Da | Da | Ne | |
Podpora AUTH CRAM-MD5 | Da | Ne | Ne | |
Podpora AUTH CRAM-SHA1 | Da | Ne | Ne | |
Podpora AUTH CRAM-SHA256 | Da | Ne | Ne | |
Podpora AUTH DIGEST-MD5 | Da | Ne | Ne | |
AUTH NTLM podpora | Da | Da | Ne | |
AUTH SCRAM-SHA1 podpora | Da | Ne | Ne | |
Podpora SSL | IMAPS & STARTTLS | IMAPS & STARTTLS | Ne | |
IRC | Splošno geslo strežnika | Da | Ne | Ne |
Geslo za način OPER | Da | Ne | Ne | |
LDAP | v2, preprosta podpora | Da | Ne | Ne |
v3, preprosta podpora | Da | Ne | Ne | |
v3, podpora AUTH CRAM-MD5 | Da | Ne | Ne | |
Podpora AUTH DIGEST-MD5 | Da | |||
AUTH NTLM podpora | Da | Da | ||
AUTH SCRAM-SHA1 podpora | Da | |||
Podpora SSL | IMAPS & STARTTLS | IMAPS & STARTTLS | ||
IRC | Splošno geslo strežnika | Da | ||
Geslo za način OPER | Da | |||
LDAP | v2, preprosta podpora | Da | ||
v3, preprosta podpora | Da | |||
v3, podpora AUTH CRAM-MD5 | Da | |||
v3, podpora AUTH DIGEST-MD5 | Da | |||
MS-SQL | Da | Da | ||
MySQL | v3.x | Da | Da | |
v4.x | Da | Da | ||
v5.x | Da | Da | ||
NCP | Da | Da | ||
NNTP | USER podpora | Da | Da | |
Podpora za AUTH LOGIN | Da | |||
Podpora AUTH PLAIN | Da | |||
Podpora AUTH CRAM-MD5 | Da | |||
Podpora AUTH DIGEST-MD5 | Da | |||
AUTH NTLM podpora | Da | |||
Podpora SSL | STARTTLS & NNTP prek SSL | |||
Oracle | Baza podatkov | Da | Da | |
Poslušalec TNS | Da | |||
Naštevanje SID | Da | |||
PC-NFS | Da | |||
pcAnywhere | Native Authentication | Da | Da | |
Preverjanje pristnosti na podlagi OS (MS) | Da | |||
POP3 | USER podpora | Da | Da | Da |
Podpora APOP | Da | |||
Podpora za AUTH LOGIN | Da | Da | ||
Podpora AUTH PLAIN | Da | Da | ||
Podpora AUTH CRAM-MD5 | Da | |||
Podpora AUTH CRAM-SHA1 | Da | |||
Podpora AUTH CRAM-SHA256 | Da | |||
Podpora AUTH DIGEST-MD5 | Da | |||
AUTH NTLM podpora | Da | Da | ||
Podpora SSL | POP3S & STARTTLS | POP3S & STARTTLS | POP3S | |
PostgreSQL | Da | Da | ||
Zvezdica | Da | |||
RDP | Delovna postaja Windows | Da | Da | Da |
Windows Server | Da | Da | ||
Preverjanje 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 | |||
SIP | Da | |||
Podpora SSL | SIP prek protokola SSL | |||
SMB | Način NetBIOS | Da | Da | Ne |
Domači način W2K | Da | Da | Da | |
Način razpršitve | Da | Da | Ne | |
Preverjanje jasnega besedila | Da | Da | ||
LMv1 avt | Da | Da | Da | |
LMv2 Auth | Da | Da | Da | |
NTLMv1 avt | Da | Da | Da | |
NTLMv2 avt | Da | Da | Da | |
SMTP | Podpora za AUTH LOGIN | Da | Da | |
Podpora AUTH PLAIN | Da | Da | ||
Podpora AUTH CRAM-MD5 | Da | |||
Podpora AUTH DIGEST-MD5 | Da | |||
AUTH NTLM podpora | Da | Da | ||
Podpora SSL | SMTPS & STARTTLS | SMTPS & STARTTLS | ||
Številka uporabnikov SMTP | VRFY cmd | Da | Da | |
EXPN cmd | Da | Da | ||
RCPT TO cmd | Da | Da | ||
SNMP | v1 | Da | Da | |
v2c | Da | Da | ||
v3 | (Samo avtorizacija MD5/SHA1) | |||
NOGAVICE | v5, preverjanje gesla | Da | ||
SSH | v1 | Da | ||
v2 | Da | Da | Da | |
SSH ključi | v1, v2 | Da | ||
Subverzija (SVN) | Da | Da | ||
TeamSpeak | TS2 | Da | ||
Telnet | Da | Da | Da | |
XMPP | Podpora za AUTH LOGIN | Da | ||
Podpora AUTH PLAIN | Da | |||
Podpora AUTH CRAM-MD5 | Da | |||
Podpora AUTH DIGEST-MD5 | Da | |||
AUTH SCRAM-SHA1 podpora | Da | |||
VMware Auth Daemon | v1.00 / v1.10 | Da | Da | |
Podpora SSL | Da | Da | ||
VNC | Podpora za gesla RFB 3.x | Da | Da | |
Podpora za uporabnika in geslo RFB 3.x | (Samo UltraVNC) | |||
Podpora za gesla RFB 4.x | Da | Da | ||
Podpora za uporabnika in geslo RFB 4.x | (Samo UltraVNC) |
Primerjava hitrosti
Hitrost (v s) | Hidra | meduze | Ncrack |
1 Naloga / modul FTP | 11.93 | 12.97 | 18.01 |
4 Naloge / modul FTP | 4.20 | 5.24 | 9.01 |
16 Opravila / modul FTP | 2.44 | 2.71 | 12.01 |
1 Modul Task / SSH v2 | 32,56 | 33,84 | 45.02 |
4 Naloge / modul SSH v2 | 10.95 | Zlomljeno | Zgrešeno |
16 Naloge / modul SSH v2 | 5.14 | Zlomljeno | Zgrešeno |
To je bil kratek preprost uvod v hidro. Zdaj pa preidimo na namestitev.
NAMESTITEV HYDRE
Hydra je vnaprej nameščen na kali linux, če pa imate drug operacijski sistem, ga lahko sestavite in namestite v svoj sistem. Trenutno hidra podpira na različnih platformah:
- Vse platforme UNIX (Linux, *bsd, Solaris itd.)
- MacOS (v bistvu klon BSD)
- Windows s Cygwinom (IPv4 in IPv6)
- Mobilni sistemi, ki temeljijo na Linuxu, MacOS -u ali QNX -u (npr. Android, iPhone, Blackberry 10, Zaurus, iPaq)
Če želite prenesti, konfigurirati, prevesti in namestiti hidro, vtipkajte v terminal:
git clone https://github.com/vanhauser-thc/thc-hydra.git cd thc-hydra ./configure make make install
Če imate Ubuntu/Debian, boste potrebovali nekaj knjižnic odvisnosti:
apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev libncp-dev
Če teh knjižnic ne najdete v svojem skladišču, jih morate ročno prenesti in namestiti.
KAKO UPORABLJATI HYDRA
Čestitamo, zdaj vam je uspelo namestiti hidro na vaš sistem. Pravzaprav Hydra prihaja z dvema okusoma, GUI-gtk in mojo najljubšo različico CLI. poleg tega ima hydra tudi vodeno različico CLI, imenovano hydra-wizard. Namesto da ročno vnesete vse ukaze ali argumente v terminal, vas bodo vodili korak za korakom. Če želite zagnati hidro, iz tipa terminala:
Za CLI:
hydra
Za čarovnika CLI:
hydra-wizard
Za grafični vmesnik:
xhydra
Ko vnesete 'hydra', bodo prikazani ukazi pomoči, kot je ta:
[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
Spletna prijava Bruteforce s hidro
Hydra podpira nekatere storitve bruteforcing, kot sem že omenil, ena od njih se uporablja za bruteforce spletne prijave, kot so obrazec za prijavo v družabne medije, obrazec za prijavo v bančništvo uporabnikov, spletna prijava vašega usmerjevalnika itd. Ta http [s] -get-form ki bo obravnaval to zahtevo. V tej vadnici vam bom pokazal, kako bruteforsirati ranljive spletne prijave. Preden zaženemo hidro, bi morali poznati nekaj potrebnih argumentov, kot so spodaj:
- Target : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
- Uporabniško ime za prijavo : admin (če niste prepričani, bruteforce to)
- Seznam gesel : Lokacija seznama datotek slovarja, ki vsebuje možna gesla.
- Parametri obrazca : na splošno uporabite podatke o nedovoljenem dostopu ali proxy za pridobitev oblike parametrov zahteve. Toda tukaj uporabljam orodno vrstico za razvijalce omrežij, ki temelji 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.
Pridobivanje parametrov objave z brskalnikom, iceweasel/firefox
V brskalniku Firefox pritisnite tipke ' CTRL + SHIFT + Q ‘. Nato odprite spletno stran za prijavohttp://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F, boste opazili, da se na zavihku za razvijalce omrežja pojavi nekaj besedila. Pove vam, katere datoteke se nam posredujejo. Oglejte si metodo, vse so GET, saj še nismo objavili nobenih podatkov.
Če želite pridobiti parametre po obrazcu, vnesite karkoli v obrazec za uporabniško ime ali geslo. Na zavihku razvijalec omrežja boste opazili novo metodo POST. Dvokliknite to vrstico, na zavihku Glave kliknite gumb Uredi in znova pošlji na desni strani. V telesu zahtevka kopirajte zadnjo vrstico, kot je npr tfUName = asu & tfUPass = raimu . the tfUName in tfUPass so parametri, ki jih potrebujemo. Kot je prikazano spodaj:
Kali linux ima veliko besedil, izberite ustrezen seznam besed ali preprosto uporabite mesto rockyou.txt v /usr/share/wordlists/ kot je prikazano spodaj:
V redu, zdaj imamo vse argumente, ki jih potrebujemo, in pripravljeni smo sprožiti hidro. Tu je vzorec ukaza:
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
Razčlenimo ukaze:
- the : je beseda, ki vsebuje uporabniški račun, uporabite -L za sklicevanje na seznam možnih uporabniških imen v datoteki.
- P : je seznam datotek možnega gesla, uporabite -p, da dobesedno uporabite eno besedno geslo, namesto da bi ga uganili.
- testapp.vunlwebapp.com : je ime gostitelja ali cilj
- http-post-form : je servisni modul, ki ga uporabljamo
- /Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout = potrebni 3 parametri, sintaksa je:
{page URL}: {Request post body body form parameters}: S = {Poiščite kar koli na strani po uspešni prijavi} - v = Natančen način
- V = pokaži prijavo: dovoljenje za vsak poskus
- f = Končajte program, če najdete parno prijavo: geslo
Zdaj pa pustimo, da nam hydra poskuša zlomiti geslo. Potrebuje čas, saj gre za napad na slovar. Ko boste uspeli najti par prijav: geslo, bo hidra takoj prekinila delo in prikazala veljavno poverilnico.
Hydra bi lahko naredila toliko, saj smo se v tej vadnici pravkar naučili, kako z uporabo hidre bruteforce prijavljati na splet, se naučimo le enega protokola, to je protokol http-post-form. Hidro lahko uporabimo tudi proti drugemu protokolu, kot so ssh, ftp, telnet, VNC, proxy itd.