Mimikatz

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש

Mimikatz הוא כלי השימוש בו יתבצע לאחר השגת אחיזה על עמדה (Post Explotation), והוא מאפשר גניבה מהזיכרון של סיסמאות משתמשים, Hash-ים, kerberos Tickets ועוד.

לאחר שתוקף השיג אחיזה בסיסית ברשת הוא יחפש דרכים לשפר את האחיזה ואת ההרשאות שלו. Mimikatz יודע לגשת אל ה-SAM וה-Lsass ולקרוא אותם בהינתן ההרשאות המתאימות. הרשאה עיקרית שהכלי צריך בשביל לבצע את עבודתו נקראת Debug Privilege. ה-Mimikatz צריך הרשאה זו בשביל לגשת אל תהליכים רגישים כגון Lsass, לקרוא אותם ולערוך אותם.

יכולת נוספת שהכלי מאפשר נקראת Pass The Hash, כלומר להשתמש ב-HASH של הסיסמה (כיוון שברוב המוחלט של המקרים הסיסמה תישמר כ-HASH) ולא בסיסמה עצמה בשביל לבצע את ההזדהות.

איך זה עובד

נניח שהתוקף השיג HASH של משתמש בעמדה מסוימת, ורוצה להריץ CMD עם המשתמש שה-HASH שייך לו. בשביל לבצע זאת, זה מה ש-Mimikatz יעשה:

  1. הכלי ייפתח תהליך cmd.exe עם המשתמש הרלוונטי אך עם סיסמת Dummy (סיסמה ריקה). ברגע שזה יקרה יווצר לתהליך Access Token, והוא יקבל Logon session LUID (locally unique identifier), מספר סידורי המייצג את ה-Session של משתמש עם תהליך. ברגע שנפתח במ"ה תהליך חדש, מאחורי הקלעים מה שקורה זה שה-Lsass לוקח את פרטי המשתמש שהוכנסו, מעביר את הסיסמה פונקציית HASH, יוצר Access Token ו-Logon Session LUID ומאחסן אותם בטבלה המכילה Logon Session LUID ואת הפרטים של המשתמש שלפיהם נקבע ה-Access Token שיקבל.
  2. ה-Mimikatz ישהה את התהליך (Suspend) שפתח (במקרה הזה CMD).
  3. Mimikatz יבקש Handle (מצביע למקום בזיכרון) ממ"ה ל-Access Token של התהליך, ממנו הוא מוציא את הLSLUID.
  4. Mimikatz ישתמש ב-Debug Privilege בשביל לערוך את תהליך ה-Lsass, שם הוא ייגש לטבלה, וב-Logon Session LUID של התהליך שייצר הוא ישנה את ה-HASH שקיים שם (של ה-Dunny, שזה בעצם כלום), ויזריק את ה-Hash של המשתמש הרצוי. ובכך ישיג Access Token של אותו משתמש על תהליך ה-cmd.exe שיצר.

לאחר מכן יבטל את השהיית התהליך והתהליך ימשיך בריצתו תחת הרשאותיו החדשות.

Logo hamichlol 3.png
הערך באדיבות ויקיפדיה העברית, קרדיט,
רשימת התורמים
רישיון cc-by-sa 3.0