כיצד להשתמש בתוכנת hashcat כדי לפצץ כל מיני hash

פורסם · מחבר:מסמך סיסמאות שחזור מאסטר

אפס, ידע רקע

1. פונקציית hash

פונקציית hash היא מונח כללי עבור סוג של פונקציות. הפלט הוא נתונים בינאריים באורך קבוע, לסוג זה של פונקציה יש את המאפיינים הבאים:

  • : מחושב מקלט מהתנגשות היא פשוטה ומהיר, אבל מציא את אותה קלט מהפלט הוא נקודות פלט שונות נתונים מסוימים משמשים כקלט של פונקציית hash, והפלט מחושב, אשר מתייחס באופן רגיל לפלט זה לערך hash של הנתונים.

    תפקידים מרכזיים של פונקציית hash הוא לאחסן את הסיסמה בבטחה. במקום לשמור את הסיסמה ישירות (כלומר, סיסמה בטקסט ברור), אלא לשמור את ערך ה-hash של הסיסמה בעת אימות, אתה צריך לחשב שוב את הערך ה-hash של הסיסמה שהושמר. על ידי השוואה לערך ה-hash של הסיסמה שנשמרת, תוכל לדעת אם הסיסמה נכונה. בשל האופי החד-כיווני של פונקציית hash ומאפיינים של אילוצים התנגשות, תוקף קשה לדעת את הסיסמה עצמה גם אם הוא מקבל את ערך hash של הסיסמה.

    2.hashcat

    תוקף קיבל את ערך האש של הסיסמה האם באמת אין דרך לדעת את הסיסמה עצמה? כמובן שלא. למרות שזה לא ריאלי לחשב את הסיסמה ישירות על פי ערך ה-hash של הסיסמה מבחינה מתמטית, אנחנו יודעים שפונקציית ה-hash מחושבת מקלט פשוטה ומהירה. במקרה הגרוע ביותר, אתה יכול לנסות את הסיסמאות שבני אדם עשויים להגדיר הם רק אותם, נבדק בזה אחר זה. אם אתה מזל, עדיין יכול לנסות אותם. הפעולה של ניסיון מתמיד לקבל את הקלט המתאים לערך האש נקרא פיצוץ.

    בהתבסס על הרעיון הזה, הופיע hashcat. אומרים כי hashcat נולד כדי להוכיח כי פיצוץ hash הוא עניין פשוט מאוד. hashcat טוען שהוא כלי הפיצוץ hash המהיר ביותר בעולם, והוא אפילו תומך ב-GPU ו-FGPA, אם יש לך.


    hashcat לא רק מהיר, אלא גם תומך באופן מקצועי יותר מ-200 פונקציות hashcat פקודת השימוש:

    hashcat - help

    אתה יכול לראות את רשימה של כל פונקציות hashcat הנתמכות על ידי hashcat אם יש יותר מדי, אני לא אפרסם אותם כאן. hashcat מותקן ברירת מחדל ב-

    Kali וניתן להשתמש בו ישירות. אבל Kali שלי מותקן ב- VirtualBox, תמיד מרגיש כי הזדמנויות וירטואליות איטיות יותר, אז אני רוצה להשתמש ב- hashcat במארח פיזי. הולך תחילה לאתר הרשמי של hashchat כדי להוריד את hashchat עד כה, הגרסה האחרונה היא v3.5.0, שפורסמה ב-2017.04.05. ממועד העדכון, ניתן לראות כי hashchat מלא חיוניות. כדי להימנע מהצרות של הידור, הורדה ישירות את החבילה הבינארית, רק 2.7M, וזה קטן מאוד בהשוואה למשחקים שעלולים לעתים קרובות עשרות ג'.

    לאחר השלמת ההורדה, דחיק את hashcat ותראה:

    • hashcat32.bin

    • hashcat32.exe

    • hashcat64.bin

    • hashcat64.exe

      hashcat64.exe> <55x56>hashcat64.exe> בחרתי hashcat64.bin למען היופי, הוסיף שורה לקובץ ~/.bashrc:

      alias hashcat='hashcat64.bin ' 

      לאחר ששמור, פתח מחדש את הטרמינל הווירטואלי כדי להפוך את קובץ ~/.bashrc לתוקף, לא משנה איפה, הזן את הפקודה hashcat ישירות.

      בסדר, עכשיו אתה יכול להתחיל להשתמש ב-hashcat כדי לפצץ hash שונים.

      1. פיצוץ MD5

      MD5 צריך להיות אחת הפונקציות hash המפורסמות ביותר והנפוצות ביותר. תחילה השתמש ב-Python כדי ליצור כמה ערכים MD5 לפיצוץ, הקוד הוא כדלקמן:

         יבוא   hashlib 
        passwords  =  ['>123123',  ' bond007', ' xxxxx ',  ' *H @&(NT*@BR#^'] 
        for password  in  passwords: 
          MD5 = hashlib.MD5() 
          MD5.update (password) 
          הדפס MD5.hexdigest ()

      בהתאמה, התוצאות התפוקה הן:

        <122x121>4297f44b13955235245b2497399d7a93 
        cbdb7e2b1ed566ceb796af2df07205a3 
        dad3a37aa9d50688b5157698acfd7aee 
        d77db958c179bbffae04b2b908b75c26

      שמור את תוצאות הפלט בקובץ MD5.hash, עם ערך hahs בשורה אחת. לאחר מכן השתמש ב- hashcat כדי לפצץ את ערכי האש האלה, הפקודה היא כדלקמן:

         hashcat -w 3 -A 0 -m 0 --remove -o MD5.out MD5.hash wordlist.dic

      } פרמטרים-w משמשים למצב עבודה מצוין, ישנם ארבעה סוגים, כפי שמוצג בטבלה להלן:

      ; Borit = -} ( } {} {} {100017}; Borx Borx: Borx Borx ; Borx Borx: Borx; Borx Borx Borit; Borx Borit; Borit ; Borit ; Borit ; Borit; Borit ; Borit ; Borit; Borit Borit Borit; Borit - Borit Borit: Borit Borit: - Borit: Borit: Borit Borit - Borit Borit: Borit: - Borit: -">High
      NPerformanceRuntime Power Consumption Desktop Impact
      1 Low 2 ms Low מינים
      } 2 Default כלכלה {} Noticeable
      96 msHighUnresponsive
      4Nightmare 480 msInsane Headless

      הפרמטר-A משמש לציין מצב ההתקפה המשמעות של 0 היא ישירה ורציפה, כלומר, פיצוץ עם מילון סיסמה. ישנם חמישה ערכים של -A, כפי שמוצג בטבלה להלן:

      {1000P}
      N מצב
      0 Street
      Combination
      3 Brute-force
      6 Hybrid Wordlist + Mask
      7 Hybrid Mask + Wordlist
      {} } {100017} {100017} {100017} }

      {100017} } } {

      } {100018} {100018} {100018} {100018} } } {100018} {100018} } } } } פונקציית hash של הערך, 0 מצביע על כך שפונקציית hash היא MD5, הערכים האחרים מוצגים בטבלה הבאה:

      <- - Fontage (0.Fontage: :0); קופס;0);">300{}
      N שם Cattage; Fontage; Fontage
      0 MD5 <1.5> Raw Hash = "קופס 2x18> " "קופס 2x18> "קופס; "קופס; "קופס 2x18"; 2x18"; "; ; "; 2x18"; 2x19"; ; ; ";
      MySQL4.1/MySQL5 שרת Database
      1000 NTLM
      1800 sha512crypt border-right: 0px; בודר-בוטום: 0px; border-left: 0px; צבע העליון: rgb (235, 235); פונה-משפחה: אנריט; פונט-סגנון: אנריט; מרגין: 0px; outline: 0px; padding: 0.75 RAM; vertical-align: top; קו גבוה: 1.5;">2611vBulletin<v3.8.5Forums, CMS, E-Commerce, מסגרות

      טבלה זו ארוכה מדי אני מראה רק כמה פונקציות hash הכרובות במאמר זה, אתה יכול לראות את כל בפרמטר -help כדי להצביע על כולם.

      המשמעות של פרמטר 5. שני הפרמטרים האחרונים של

      MD5.hash ו-wordlist.dic הם ערך ה-hash ומילון הסיסמה שיהיה להתפוצץ בהתאמה. שניהם ערך ה-hash ומילון הסיסמה הם שורה אחת. התוכן ב-MD5.hash מחושב על ידי Python אם אין לך מילון סיסמה מתאים ביד, תוכל להשתמש בפקודה:

        wget -O wordlist.dic https://samsclass.info/123/proj10/500_passwords.txt

      下载一个。现在完事具备,按下回车,结果华丽地报错:(

        clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR

      >. התקין את הדברים האלה בסך הכל:

        sudo  apt get  install  gcc  make  p7zip-full   git  lsb-core 
        wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9019/opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz 
        tar  -xvf  opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz 
        cd opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 
        sudo ./install.sh

      אם מהירות האינטרנט טובה, הפקודה הראשונה תדווח על טעות:

        /sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 mbis not1>1>   
        /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 הוא not A symbolic link

      אבל נראה שזה לא משפיע על משהו, אז הוא התעלם מזה. לאחר התקנת אלה, לחץ שוב על RECUE ופעלתי את הפקודה המקורית לדיווח על השגיאה, ומצאתי שלא דווחו שוב על השגיאה, והושלמה בהרף. לאחר ביצוע הפקודה, בדקתי את התוכן של הקבצים MD5.hash ו-MD5.out ומצאתי שיש רק hash אחד שנותרו ב-MD5.hash שלושת hash שהתפוצצו בהצלחה הועברו לקובץ MD5.out. ב-MD5.out יש שלושה ערכי hash וערכים המקוריים שלהם, כפי שמוצג באיור להלן:

      2. פיצוץ סיסמת הכניסה של Windows. בדרך כלל, הוא ממוקם ב

        C:\Windows\system32\config\SAM

      קובץ SAM מוגנים על ידי Windows ולא ניתן לקרוא אותו ישירות ודורש כלים כגון SAMInside. מצא מכונה וירטואלית של Windows2< > יבוא משתמש מנהל חדש בשם hashcat, והגדר סיסמה, הורד ולדחיק את SAMInside ב-Windows7 ולהפעל אותו עם הרשאות מנהל, ולאחר מכן לחץ על קובץ > יבוא משתמש מקומי vis Scheduler, כפי שמוצג בתמונה למטה:

      1> לאחר שזה, לאחר ש92>

        hashcat -w 3 -A 0 -m 1000 --remove -o win7.out: win7.out>win7.out: win7.hash wordlist.dic

      לאחר ביצוע, בדוק את הקובץ win7.out ומצא כי הפיצוץ בהצלחה 16x7.16   356ceae0c89fb65ed6d6aa7a445c4ce5:rush2112

      כיצד לקבל קובץ SAM אנא להתייחס ל"כיצד לייצא Windows Hash Series 1". להלן מתעד את תהליך הקריאה שלי של קבצי סאם במכונה וירטואלית Windows 7.

      אם מדובר במכונה פיזית, פשוט השתמש ב-Win PE כדי להפעיל את המכונה וקרא את קובץ SAM בדיסק. אני מכונה וירטואלית, אתה יכול לקרוא את הקבצים בדיסק הווירטואלי על ידי התקנת קובצי דיסק וירטואלי למערכת הקבצים. המכונה הווירטואלית שאני משתמש היא VirtualBox, אשר יכול לעשות זאת באמצעות הפקודה vdfuse. אם אין vdfuse, עליך להתקין תחילה את virtualbox-fuse:

        sudo apt-get install virtualbox-fuse

      תוכל גם להוריד את חבילת ההתקנה של virtualbox-fuse ולהתקין את עצמך.

      לאחר ההתקנה, יש את הפקודה vdfuse, שיכולה להתחיל מיפוי דיסק וירטואלי ולהתקנה:

        mkdir -p ~/vmdisk 
        sudo vdfuse -t vmdk -f Win7Pro32.vmdk ~/vmdisk/

      לאחר ביצוע הצעד הזה, בדוק את ספריית ~/vmdisk, ישנם שלושה קבצים: EntireDisk, Partition1/Partition1/Partition2, ספריית חדש 59~ 59~ disk   mkdir -p ~/vmdisk_1   mkdir -p ~/vmdisk_2

      השתמש בפקודה mount כדי לתקן את שלושת הקבצים של EntireDisk, Partition1 ו-Partition2 בהתאמה:

        sudo mount ~/vmdisk/EntireDisk/diskmdisk/diskmdiskmdiskmdiskmdiskmdiskmdiskmdisk 7> 
        sudo  mount  ~/vmdisk / Partition1    ~/vmdisk_1 
        sudo mount ~/vmdisk/Partition2   ~/vmdisk>~/vmdisk_2

      ) מצא שהרכבה של EntireDisk נכשל, התוכן של Partition1 לא היה מה שרציתי, Partition2 הוא קובץ במכונת וירטואלית של Windows 7, שזה בדיוק מה שרציתי. העתיק את קובץ SAM היעד שלנו מ-vmdisk_fs:

        cp  ~/vmdisk_2/Windows/System32/config/SAM  ./

      אגב, העתיק גם את קובץ המערכת:

        /cp/11x x1x x10x x x x x 12>/ / בדוק את התוכן של קובץ ה-SAM, כפי שמוצג בתמונה למטה, זה לא קובץ טקסט פשוט זה אכן בסגנון של Windows, 

      בסדר, למרות שקובץ ה-SAM נפתח בהצלחה, אבל עדיין לא קיבלנו hash מה עלינו לעשות הבא? אתה יכול רק להשתמש בכלים כדי לנתח את התוכן של קובץ SAM. קבל את קובצי SAM והן את קובצי מערכת ל-Kali, הפעל את הפקודה:

        samdump2 -o sam.hash SYSTEM SAM

      ואז צפו ב-sam.hash, תוכלו גם לראות את ערך ה-hash של סיסמת ההתכנס של כל משתמש. כל שורה בקובץ sam.hash היא משתמש, והפורמט של כל שורה הוא:

        שם משתמש: RID:LM-hash ערך: NTLM-hash ערך 

      שים לב שהפורמט הזה הוא פורמט פלט הפקודה samdump2, לא "פורמט סיסמת hash תחת Windows".

      3. פיצוץ סיסמת כניסה לינוקס hash

      קודם כל, עליך להיות מחשב המפעיל את מערכת לינוקס. זה קל לומר, מכונה וירטואלית מספיק. לאחר מכן, הפעל את הפקודה הבאה כדי להוסיף משתמש חדש ולהגדיר סיסמה למטרות פיצוץ שלנו:

         sudo adduser -justforfun

      linux ערך הכניסה של משתמש מאוחסן בקובץ / preview/

      x0x

      xx xxxxxxx144x4x14x justforfund: $ 6 $ 0fokwg59 $ 6hpMS5dM9wDT/42DDoSD0i0g/whab50xs9ievlc3v20yf1krmxzhgxcm0efv6xu69hdgmz4fwamzso4hqagq0:17373:0:999:7:7:::

      משמש לקרוא קובץ ברירת המחדל. המשתמש החדש שאנחנו רק יצרנו נמצא באופן טבעי בשורה האחרונה, אז השתמשו ב-TAIL-N 1 כדי לקרוא אותו. התוצאה שנקראה היא הנתונים מחולקים ב":", החלק הראשון הוא שם המשתמש "justforfun", החלק השני הוא ערך hash של הסיסמא.החלקים האחרים אינם צריכים לדאוג במאמר זה. אנו מתמקדים בחלק השני.

      "$ 6$" בתחילת

      מתייחס לסוג הפונקציה hash המשמשת הוא SHA512, למעט "$ 6$", ב-linux, "$ 1$" מתייחס ל-MD5, "$ 2a$" מתייחס ל-Blowfish, "$ 2y$" מתייחס ל-Blowfish (correct handling of 8-bit chars), "$ 5$" מתייחס SHA256, ראה ויקיפדיה: passwd לפרטים. בנוסף, הקובץ / etc/login.defs מתואר גם את האלגוריתם hash. החלק "0fokwg59" לפני

      "$6$" עד "$" הבא הוא מלח. מה זה מלח? Baidu יודע שהתשובה של CNB2009 לשאלה "מה זה ערך מלח MD5" היא פשוטה וקלה להבנה:

      היא אמצעי להפוך לאותה סיסמה להיות ערכי hash שונים, זה מלוח. MD5 עצמו אינו הפיך, אבל כיום יש מסדי נתונים רבים באינטרנט התומכים בשאילתה אנטי. אם מסד הנתונים של סיסמת המשתמש דלפף בטעות, האקרים יכולים לקבל את סיסמת המשתמש באמצעות שאילתה אנטי, או לפצח באלימות על קוד hash (כלומר, המשמש על ידי אנשים רבים) המופיעים בתדירות גבוהה יותר במסד הנתונים (כי הוא בדרך כלל סיסמה חלשה). ערך המלח הוא ערך אקראי נוסף שנוסף במהלך תהליך hash של הסיסמה. לדוגמה, הזהות שלי הוא אפילפסיה ω ④ והסיסמה היא 123456. כאשר היא מאוחרת במסד הנתונים, ניתן להש את המחרוזת "123456/אפילפסיה ω ④", ובעת אימות הסיסמה, משמש גם את המחרוזת "(הסיסמה שיש לאמת)/אפילפסיה ω ④". כאשר סיסמה טיפשת נוספת היא 123456, אתה עדיין יכול לבנות ערכים שונים של hash וניתן לאמת אותה בהצלחה. בשלב זה, הזהות שלי משמש כערך מלח כדי לסיסמה מורכב. אז.. תפקידו של ערך מלח הוא להפחית את הפסדים הנגרמים על ידי דליפת מסד נתונים. אם RP שלך טוב מאוד, ניחש שהסיסמה שלי היא 123456, אני לא יכול לעצור אותך

      התשובה היא עבור MD5, ופונקציות hash אחרות זהות. החלק לאחר המלח הוא ערך האש. כעת העתיק את כל החלק השני לקובץ linux.hash, התוכן של linux.hash צריך להיות:

        $ 6 $ 0xxxg59x <23hms5dm9wdt / 42DDoSD0i0g/whab50xs9ievlc3v20yf1krmxzhgx0efv6xu6xu69hdgmz4fz4wamzso4hqagq0  ואז השתמש בפקודה הבא לאחר זמן קצת, הפיצוץ הושלם, צפו את התוצאות: 

      werner@Yasser:~/hashcat$ cat linux.out 
      $ 6 $ 0fokwg59$ 6hpMS5dM9wDT/42DDoSD0i0g/whab50xs9ievvlc3V20YF1krmxzhgcm0efv6xu69HDGMZ4fwamzso4hqagq0:4321

      .

      4. פיצוץ סיסמת הכניסה Mysql hash

      ראשית, חייב להיות Mysql. זה רק במכונה הווירטואלית שלי. Baidu יודע שערך hash של סיסמת הכניסה של Mysql נשמר בקובץ user.MYD. איפה הקובץ user.MYD? גם אני לא יודע, פשוט מחפש אותו:

        test@test-VirtualBox:~$ sudo find / -שם user.MYD 
      <52x7773> /var/lib/mysql/mysql/user.MYD
      <55x54><55x

      5>. אם הקובץ זה לא משתמש בקובץ
      xl/mysql/user.MYD
      1>/var/lib/mysql/
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      x
      1> לאחר זמן קצת, הפיצוץ הושלם ותוצאות:

        werner@Yasser: ~/hashcat$ cat mysql.out 
        6b825255fb466413d6b1b724644e23428c94bbcb: viper

      ניתן לראות כי הפיצוץ מוצלח.

      5. פיצוץ Discuz! סיסמת פורום

      Discuz! זוהי תוכנית פורום php ידועה בסין והוא נמצא בשימוש נרחב. עכשיו בואו נפוצץ את דיסקוז! ערך hash של סיסמת המשתמש. קודם כל, אתה צריך למצוא את ערך האש, איפה אתה יכול למצוא את זה? כמובן מדיסקוז! במסד הנתונים.

      יכול להיות Discuz! איפה מסד הנתונים? פתרתי את זה, הורד את הגרסה האחרונה של Discuz מהאתר הרשמי שלו! קוד מקור, הפעל והתקין, תקבל Discuz! מסד הנתונים :smile:

      Discuz! שם מסד הנתונים המוחדל נקרא ultrax, שבו טבלה pre_ucenter_members שומר את ערך hash של סיסמת הכניסה "pre_" הוא קידומה ברירת המחדל שניתן לשנות במהלך התקנה, אבל "ucenter_members" לא ישתנה. השתמש בהצהרת sql הבאה כדי לבדוק את ערך hash של סיסמת הכניסה:

         בחר  password, salt  מ  pre_ucenter_members; 

      שמור ערך hash וערך מלח לקובץ:

        echo 69bcba126b93c6f397983629a0f70553:c13fd9 >  discuz.hash

      ערך המלח באותה שורה, מחולק ב":". לבסוף, פוצץ את סיסמת הכניסה של Discuz hash עם הפקודה הבאה:

         hashcat  -w   3 -a   0 -m  2611 - revive -o  discuz.out  discuz.hash wordlist.dic 

      לאחר רגע, הפיצוץ הושלם. התוצאות:

        werner@Yasser: ~/hashcat$ cat discuz.out 
        69bcba126b93c6f397983629a0f70553:c13fd9:winter

      ניתן לראות כי הפיצוץ מוצלח.

      6. מבחן מילון גדול

      עד כה, השתמשנו במילון קטן עם רק 500 מילים בכל פעם, וזה לוקח רק רגע לכל פעם כדי להתפוצץ בהצלחה כל מיני hash. זה לא מוזר? הסיבה לכך היא כי הגדרתי בכוונה את הסיסמה החלשה במילון כדי להתאמן את השימוש ב- hashcat, אחרת זה לא יגרום לאנשים להרגיש רע מאוד. בפועל, זה בלתי אפשרי להיות כל כך מזל טוב. בואו נחשב באופן אקראי את ערך MD5 של סיסמה פחות חלשה, לפצץ אותו עם מילון גדול, מצד אחד, לנסות מזל, ומצד שני, לראות כמה מהיר hashcat יכול להיות.

      חישוב תחילה את ערך MD5:

         import  hashlib 
         MD5 =  hashlib.MD5 () 
         MD5.update (" werner123456!!") 
          הדפסת  MD5.hexdigest ()

      הפלט הוא:

      {
      }     b17133f9abff287ed0546c1af2b171f7

      ולאחר מכן בחר מילון בגודל 10.5G המכיל 940 מיליון סיסמאות, להתחיל להתפוצץ:

            }  } 100072} 100Bigcat 100072, 100073} " 100072, 100072 100073 100072, 100072 100072 100072, 100072, 100072, 100072, 100072, 100Bigcat Ling82 100072, 100073 יכול 100072, יכול 100072, 100Bigcat 100072, 100072, 100072 יכול 100072, יכול 100072, 100072 100072, 100072 התחלתי להתפוצץ לפני השינה, וקמתי למחרת כדי להסתכל על התוצאות ומצאתי: 

         סטארted:  Wed Jul 26 22:55:27 2017 
         Stopped:  Wed Jul 26 23:02:28 2017

      {

      } זה לקח רק 7 דקות! חשבתי שזה ייקח 7 שעות, 60 פעמים מהר יותר ממה שציפיתי! למרבה הצער, ערך hash לא התפוצץ בהצלחה, נראה כי "werner123456 !!!" אינו במילון הסיסמה. נראה שאני צריך להכין מילון סיסמה של 100G, אבל זה מאוד לא נוח לשמור ולהעביר מילון כל כך גדול. האם אין דרך אחרת? כמובן, אתה זוכר את מצב ההתקפה? השתמשנו במצב "Streight", והבא, בואו נבחן כמה דפוסים אחרים.

      7. סיכום

      משתמש ב-hashcat Flasting hash, הראשון הוא למצוא את ה-hash במערכות שונות, תוכנה שונות יש מיקומות אחסון ה-hash שונים, ולכן יש צורך למצוא במדויק את הערך ה-hash; השני הוא לקבוע נכון את סוג hash, לקבוע אם hashcat תומך בזה hash, ולבחור את הפרמטר -m הנכון, אחרת זה כמעט בלתי אפשרי להצליח; השלישית היא שמילון הסיסמה צריך להיות טוב יותר אם זה יכול להתפוצץ בהצלחה בסופו של דבר תלוי במילון. למרות שמילון הסיסמה הוא גדול ככל שזה טוב יותר, הוא עדיין גדול יותר, hashcat ידוע גם במהירות שלה, מילון גדול אינו בעיה עבור hashcat. כאן מילון טוב יותר: דלת דליפה קודמת + אוסף מילון סיסמה חלשה נפוץ 7Z , סיסמה דחיסה היא: anywlan. בנוסף, אם אתה אוסף הרבה מילונים קטנים, אתה יכול למזג, למיין ולכפול את המילונים הקטנים כדי לקבל מילון גדול כדי להקל על פיצוץ hashcat. אם המילון הקטן נמצא באותו ספרייה, אתה יכול להשתמש בפקודה:

           cat *   |   sort >  Merge.dic
      {
      }

      אם המילון הקטן מסודר לפי קטגוריה ומופץ בספריות מרובות שכבות? ברור שלא ניתן להשתמש בפקודת cat בלבד, אבל למעשה זה צריך רק פקודה אחת בהנחה שהמילונים הקטנים מאוחסנים בספריית MyDictionary, ניתן לכתוב את הפקודה כדלקמן:

           find ./MyDictionary -type f -exec cat  ;   |   sort  |   uniq >  Merge.dic

קודם:אילו סוגים של קבצים מוצפפים יכול להחזיר סיסמאות מסמך לפתור? להלן קובץ הפורמט התומך בסדק
הבא:כמה מצבי התקפה של hashcat חתול