הרשאות- Privilege Escalation

0

שלום לכולם,

במאמר זה אדבר על איך בעצם עובד עניין ההרשאות ב-Windows.
כלומר, איך לקחת יוזר מסויים עם הרשאות עם Level מסויים ולהעלות אותם אל Level אחר.

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

אז חברים וחברות, נא להכיר את המושג SRM.

Security Reference Monitor.

ה-SRM יושב בתוך ה-Kernel, מה זה ה-Kernel? תפקידו בעצם לנהל את האלמנטים הפנימיים של מערכת ההפעלה.

בנוסף, הוא אחראי לגשר בין מערכת ההפעלה לבין החומרה של המחשב.

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

פשוט מאוד, ניגש להסבר:

כאשר אני מנסה לגשת אל אוביקט מסויים בתוך הרשת, קיים מושג שנקרא SE Check ומושג שנקרא Access Token.

SE Check - הוא אחראי להחליט בסוף האם ליזור יש גישה אל האויביקט הרצוי או לא.

איך ה-Access Token עובד?

מחזיק את ה-SID של אותו יוזר. ( יותר מאוחר אסביר על הפקודה המוכרת Whoami שמכילה בתוכה כמה דברים).

מחזיק את ה-SID GROUP, כלומר אם אותו יוזר אולי חבר בקבוצות אחרות שיכולות בעצם להקנות לו הרשאות מסויימות.

מחזיק את ה-Privilige של אותו יוזר.

קודם כל, אסביר על הפקודה Whoami.

הפקודה הזו בעצם יכולה להראות לנו את ה-SID של אותו יוזר, לדומגא אם נקיש: whoami /user. אנחנו נראה את ה-SID שלו.

פקודה נוספת, Whoami /group נראה את כל ה-SID של הקבוצות שהיוזר חבר בהם.

ודבר אחרון חביב, אם נקיש  whoami /priv יתן לנו את כל ההרשאות שיש לאותו יוזר.

אסביר על נושא ה-Privilige שיש ליוזר:

לפני זה, בואו נבין משהו חשוב, כאשר נכנסים ל-Windows, יש שני אפשריות של חשבונות. מה ז"א?

יש Local User , זה בעצם יוזר שנוצר על התחנה עצמה ואין לה הרשאות ב- Domain.

ויש Domain User , זה בעצם יוזר שנוצר בדומיין עצמו ויש לו הרשאות על כלל התחנות באירגון.

ונקודה חשובה נוספת: קיימים שני סוגים של כניסה ל-Windows:

האחת זו כניסה שנקראת – Interactive, והשנייה זו כניסה של Network.

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

Network - זו כניסה, כאשר אנחנו נכנסים לשיתוף, כלומר- 192.168.1.50\\

מסקנה, לכל יוזר יש את ה-Access Token משלו.

מה המשעמות של Privilige של יוזר?

חבר'ה, נורא פשוט להבין את זה.

יש כמה Privilige שהם באים בצורה דיפולטית ב-Windows.

ולמה הם קבועים?

מהסיבה הפשוטה, שה-SRM לא יכול לטפל בכל הבקשות. למה? כי כמו שאמרנו, חייבים להתקיים 3 דברים:

אחד, Access Token.

סיבה שניה, ה-SRM צריך להכיר את האובייקט שהיוזר רוצה לגשת אליו.

סיבה שלישית- השינויים שהיוזר רוצה לשנות באותו אובייקט.

כאמור, אם נרצה לשנות את ה-Time Zone של המחשב, הרי ה-Time Zone זה לא אובייקט, זה לא קובץ. לכן, קיים ה-Privilige. שמחזיק שני דברים פשוטים, מחזיק את השם של "הפעולה" ואת המצב שלה. כלומר אם זה ב-Enable או ב- Disable.

כלומר, כאשר ניכנס אל ה-Time Zone וננסה לשנות את ה-Time Zone, הסטטוס של האופציה הזו ישתנה ל-Enabled.

כלומר, הוא מקבל אישור רגעי על מנת לבצע את אותה פעולה על התחנה.

באופן דיפולטי לדוגמא, האופציה הזו היא ב-Disable, זאת וכאשר מפני סיבות של הגנה.

אז, לדגומא חבר'ה, אם נפעיל את ה-CMD במצב של Administrator, ניתן יהיה לראות שהכמות של ה-Privilige ולא רק, כל עניין ה-SIDS Group גדל בגלל של-Administrator יש יותר הרשאות על התחנה עצמה מאשר יוזר שרץ באופן "רגיל על התחנה".

כמה מילים על:

עניין ה-User Account Control,

נוצר ב-Windows Vista, ותפקידו לבצע בקרה על ההרשאות במחשב.

בגרסאות ישנות של מערכות הפעלה, לא היה יותר מדי התחשבות בענין ההרשאות של יוזרים.

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

נסביר את התהליך יותר לעומק:

שיוזר מבצע Login למחשב, ה-User Account Control, מבצע בדיקה האם היוזר חבר בקבוצות מסווימות שלקבוצות המסויימות האלה יש הרשאות של אדמין.

במידה ויש- יש כניסה שנקראת Full Token.

שזו כניסה על כל ההרשאות של ה-Admin.

בנוסף, אם היוזר אינו שייך לאחד מן הקבוצות האלה, יש Login שנקרא Restricited Token.

כלומר היוזר עבר פילטור, והוא אינו בעל כל ההרשאות של ה-Admin.

בהצלחה!

נכתב ע"י אבי מור.


שתף

אודות מחבר