| } { | } = |
| Straight{ | |
| {100026 | |
| Brute-force | |
| 6 | Hybrid Wordlist + Mask |
| 7 | Hybrid Mask + Wordlist |
דוגמה:
hashcat -A -0 -m 400 example400.hash example.dict
} Baidu אמר לי שCombination הוא שם, המשמעות: "שילוב; קונסורציום; שילוב סיסמה". מצב ההתקפה הזה הוא למעשה פשוט מאוד, שהוא משלב את התוכן של שני מילוני סיסמה. שימוש במצב התקפה זה דורש יותר, פחות, יותר, יותר, ציין שני מילוני סיסמאות. נניח שיש לנו שני מילוני סיסמאות dict1.txt ו dict2.txt, התוכן שלהם הם:
hunting kitty rainbow
ו
paris רוק
אז פקודה:
hashcat -m 0 -A 1 hash.txt dict1.txt dict2.txt
למעשה, המילון לנסות הוא: {100UNTIS}
{}
huntingrock
kittyparis
kittyrock
rainbowparis
rainbowrock
המילים ב-dict1.txt הן משמאל והמילים ב-dict2.txt הן מימין, בסך הכל 3×2=6.
הפרמטרים הקשורים למצב זה הם:
-j, --Rule-Reft
-k, --rule-right
- הכללים לאחר -k פועלים על הצד השמאלי, והכללים לאחר -k פועלים על הצד הימין, כגון הוספת פרמטר -j '$--', אז המילון הניסיון בפועל הוא:
hunting-paris
hunting-rock
קיטי-פארס
קיטי-רוק
rain-bowparis
rain-bowrock
הוסיף פרמטר -j '^!', המילון הניסיון בפועל הוא:
! huntingparis
! huntingrock
! קיטופריס
! קיטרוק
! rainbowparis
! rainbowrock
להוסיף פרמטר -k '^>', ואז המילון הניסיון בפועל הוא:
hunting> paris
hunting> רוק
kitty> paris
kitty> רוק
rain> bowparis
rain> bowrock
מה הכלל הזה? השימוש ב"$" ו-"^" דומה לביטויים רגילים, אז האם זה רגיל? למעשה, לא, הכללים של hashcat מיושמים בעצמך, וזה עוד חלק גדול של תוכן לפרטים, עיין תכמויות מבוססות
3.Brute-force
כדי לנסות שילובים שונים של קבוצה תווים נתונה. על פי wiki הרשמי של hashcat, שיטה זו מיושנת ומוחלפת באופן מקיף על ידי Mask-Attack, ולכן אין מחקר.
4.Mask Attack
זו שיטת התקפה חדשה יחסית, הדוגמה היא כדלקמן:
-A 3 -m -0 md5.h ? ל? ל? ל? ל? lלמרות שעל פי הטבלה "מודלים אתליים", -A 3 מתאימה ל-Brute-force, למעשה, -A 3 משתמש ב-Mask Attack. ניתן לראות את Mask Attack כBrute-force מתקדמת. הפרמטר
-m משמש לציין סוג פונקציית hash, וערך md5 מאוחסן בקובץ md5.hash. המפתח הוא המחרוזת האחרונה "? l? l? l? l? l", מחרוזת כזו נקראת mask.
mask הוא מחרוזת המורכבת ממספר מחזיקי מקומות. "?l" הוא מחזיק מקום, שבו "?" היא מילת מפתח המשמשת לשנות את "l" שלאחר מכן "?l", "?l", "?H", "?s", "?A" ו"?b", המייצג את אוסף התווים המוצג בטבלה להלן.
| ? | Charset |
|---|---|
| l | abcdefghijklmnopqrstuvxyz |
| u | abcdefghijklmnopqrstuvxyz | {}
| 0123456789 | |
| H | 0123456789ABCDEF |
| H | 0123456789ABCDEF |
| s} { | } | {} } {100017} {100018} {100018} } } {100017} {100017} {100018} {100017} } {100018} } {100017} {100017} {100018} } { "#$% &'() * +, -./:;<=>? @ [\]^ _` ~{|}
| A | ? ל? u? ד? s |
| b | 0 – 0xff |
בדרך זו, אנו מבינים כי "?l" הוא למעשה שווה למילון הסיסמה:
aaaAAAA AAAB ... zzzzz
באופן דומה, "?l?u?d" שווה ערך למילון סיסמה:
aA0 aA1 ... bA0 ... אוסף התווים בטבלה לעיל zZ9
מובנית ב-hashcat, ואנחנו יכולים גם לציין את אוסף התווים בעצמנו:
--custom-charset1=אוסף תווים 1 --custom-charset2 = קבוצה תווים 2 --custom-charset3 = קבוצה תווים 3 --custom-charset4=ערכת תווים 4
פרמטר – custom-charsetN יכול להיות מקצר ל-N, כגון -custom-charset1 יכול להיות מקצר ל-1. אוסף התווים שצוין ב- N מצוין בצורה של מחזיק מקום "?N" במסק, כגון:
-1 abc123 ? 1? 1? 1
שווה ערך למילון סיסמה:
aaa aab ... aa3 ... 333
-N בנוסף לחיבור מחרוזת המייצג את ערכת התווים, זה יכול להיות גם קובץ מסתיים ב.hcchr, שבו אוסף תווים מאוחסן בקובץ. hashcat מגיע עם קבצי .hcchr רבים, בספריה charsets/של חבילת ההתקנה.
אוסף התווים המיוצג על ידי מחזיק המקום "?" הוא "?" עצמו. בנוסף, כאשר התווים הנותרים משמשים כבעלי מקום, הם מייצגים את התווים עצמם, כגון "?lwerner? d" שווה ערך למילון הסיסמה:
awerner0 awerner1 ... zwerner9
עם הידע לעיל, קל להבין את המסק. מסק מורכב ממספר מחזיי מקום, כל אחד מהם הוא קבוצה של תווים, ומסק הוא שילוב של קבוצות תווים של כל מחזיי מקום. מספר מחזיקי המקום שווה לאורך הסיסמה. מהם היתרונות של עיצוב כזה מאשר פשוט לקחת קבוצה של תווים ואורך סיסמה?
מניח שאנחנו יודעים שסיסמה של מישהו יש 7 ספרות, הראשון הוא האותיות הגדולות, 3 הספרות הבאות הם האותיות קטנות, ו3 הספרות האחרונות הם מספרים. אם מדובר בפיצוח אלימות מסורתית, יש צורך קבוצות תווים A-Z, A-Z ו-0-9, בסך הכל 62 תווים, עליך לנסות עד 62^7=3 521 614 606 208 פעמים, שהיא ברמת טריליון. השימוש במסק כדי לתאר את הסיסמה הזו הוא "\u\l\l\l\d\d\d\d\d", שקל לחישוב ויש בסך הכל (26^4)×(10^3)=456 976,000 אפשרויות, שהן 100 מיליון רמות, 4 סדר גודל מופחת מהשיטה הקודמת.
לקחת צעד אחורה, גם אם אנחנו לא יודעים את התפלגות הסיסמאות, ניתן בקלות לדמות את ההשפעה של פיצוח אלימות מסורתית עם מאסק.
הבעיה כעת היא שהמאסק קבוע, וכמה מחזיקי מקומות נכתבים מוות מה עלינו לעשות אם אנחנו לא יודעים את אורך הסיסמה? הסיסמה ארוכה מדי, אם סיסמה של מישהו יש רק 3 ספרות ויש לנו 4 מחזיי מקום, האם זה לא יהיה הפסד גדול. האם אתה צריך להתחיל מ-1 ולכתוב את כל המסק של כל אורכים? כמה מטריד זה.
יש שני פתרונות האחד הוא להשתמש בקובץ mask, לכתוב מספר מסקים בקובץ אחד, ולאחר מכן לציין את הקובץ בשורת הפקודה. שים לב כי קובץ המאסק צריך לסיים ב.hcmask.
לדוגמה, התוכן של test.hcmask הוא:
? ל ? ל? ל ? ל? ל? ל ? ל? ל? ל? l
משתמש בקובץ זה עם הפקודה הבאה:
hashcat -m 0 -A 3 --show md5.hash test.hcmask
{
} פתרון נוסף הוא להוסיף פרמטר ישיר - פרמטר זה אומר ל hashcat. אם אנו כותבים את בעל מקום זה "abc", ולאחר מכן לחשב את ערך md5 של המחרוזת הבאה:
a:0cc175b9c0f1b6a831c399e269772661 b: 92EB5FeE6AE2FEC3AD71C77531578F c: 4a8a08f09d37b73795649038408b5f33 ab: 187ef4436122d1cc2f40dc2b92f0eba0 ac: E2075474294983E013E4D2201C7A73 ba: 07159C47E1B19AE4FB9C40D480856C4 bc: 5360af35bde9ebd8f01f492dc059593c ca: 5435c69ed3bcc5b2e4d580e393e373d3 cb: D0D7FDB697B26929FB68C6083C0B439 abc: 900150983cd24fb0d6963f7d28e17f72 abc: 900150983cd24fb0d6963f7d28e17f72 bac:79ec16df80b57696a03bb364410061f3 bca: b64eab8ce39e013604e243089c687e4f cba: 3944B025C9CA7EEC3154B4666AE04A0 cab:16ecfd64586ec6c1ab212762c2c38a90
" לפני":" הוא מחרוזת המקורית לחישוב ערך hash, ולאחר ":" הוא ערך hash המחושב. שמור את התוכן לעיל בקובץ md5.hash ולאחר מכן הפעל את הפקודה הבאה:
hashcat -m 0 -A 3 --show --username md5.hash abc
הוסיף פרמטר זה מכיוון שכל אחד מהפרמטר זה יכול להיות hash. התוצאה של ריצה של
היא שרק hash אחד נפתרה:
{ } 900150983cd24fb0d6963f7d28e17f72:abchashcat{100er }-m sho66 - } sho66{ } - הפעם, שני hash נוספים נפתרו:0cc175B9C0F1B6A831C399E26972661:a 187EF4436122D1CC2F40DC2B9F0EBA0:abניתן לראות כי - increment משחק תפקיד. אבל במקביל, אנו יודעים גם כי עם פרמטר זה, hashcat רק ינסה A, ab ו- abc בסדר, ולא יארגן את מחזיקי המקום באופן אקראי, לנסות אפשרויות שונות.
5.Hybrid Tack
Hybrid Tack הוא שילוב של שני מילונים, בעוד Hybrid Tack הוא מילון אחד ומסק, השניים דומים.
נניח שיש לנו כבר מילון example.dict, התוכן כדלקמן:
hello wernerפקודה:
hashcat -m 0 -A 6 md5.hash example.dict ? ד? dשווה ערך לשימוש פשוט במילון:
hello00 hello01 ... hello99 werner00 werner01 ... werener99לאחר מכן פקודה:
hashcat -m 0 -A 7 md5.hash ? ד? dexample.dictשווה ערך לשימוש פשוט במילון:
00hello 01hello ... 99hello 00werner 01werner ... 99werener