PracticU

ניהול אוטומטי של סיסמאות
עבור Service עם gMSA

בלי כתוביותעם כתוביות
PracticU › קורס פריצה ומבדקי חדירה לתשתית ארגונית - בדיקות חוסן מתקדמות ל-Active Directory - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP › ניהול אוטומטי של סיסמאות עבור Service עם gMSA
מילון מושגים:
קבוצה - אוסף של משתמשים או אובייקטים שמנוהלים יחד, כדי להעניק הרשאות או הגדרות משותפות בבת אחת.
שם משתמש - מזהה ייחודי שמשתמש מזין כדי להזדהות במערכת, לרוב יחד עם סיסמה.
Active Directory - שירות מדריך של מיקרוסופט לניהול מרכזי של משתמשים, מחשבים והרשאות ברשת ארגונית מבוססת דומיין.
חשבון שירות - חשבון ייעודי שתחתיו רצים שירותים ותהליכים, בנפרד מחשבונות של משתמשים אנושיים.
PowerShell - סביבת שורת פקודה ושפת סקריפטים של מיקרוסופט לניהול אוטומטי של מערכות Windows ושירותים.
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.
שורת פקודה - ממשק טקסטואלי שבו מקלידים פקודות למערכת ההפעלה ומקבלים תגובה בטקסט, במקום להשתמש בעכבר.
האש - פונקציה שממירה מידע לערך קצר באורך קבוע. שינוי קטן בקלט משנה את התוצאה, והיא חד-כיוונית.

ניהול אוטומטי של סיסמאות עבור Service עם gMSA

בשיעור זה אנו מכירים את חשבונות השירות המנוהלים כקבוצה, מבינים את הבעיה שהם פותרים בניהול סיסמאות שירותים, ומקימים אותם לכל הדברים בפועל על שני שרתי SQL.
נושאי הסיכום המוצגים בשיעור:
1. רעיון חשבונות השירות המנוהלים: שירותים שרצים ברקע צריכים לרוץ עם שם משתמש וסיסמה, ובמקום שמנהלי הרשת ינהלו את הסיסמה ביד, משאירים את הניהול למערכת עצמה שמחליפה את הסיסמה באופן אוטומטי, גם מכיוון שבפועל אף אחד אינו מקליד את הסיסמה הזאת בכלל.
2. הבעיה של שרתים מרובים: כאשר נותנים את ניהול הסיסמה לווינדוס מקומי של שרת אחד, שרת אחר שצריך לרוץ עם אותו היוזר לא ידע שהסיסמה התחלפה, ולכן הפתרון הוא לתת לבקר הדומיין לנהל את הסיסמאות, ושאר השרתים ישלפו ממנו את הסיסמה הנוכחית.
3. רקע היסטורי: התכונה של חשבונות שירות מנוהלים נוספה ל-Active Directory ב-2012, והיא נועדה לפתור את הסיטואציה שבה חשבון שירות שנוצר ידנית אינו מחליף סיסמה בכלל, מפני שהחלפתו מחייבת מעבר ידני על כל השרתים.
4. הסרת החשבון הישן: מוחקים את חשבון השירות שנוצר ידנית, ומיד מסתבר שהשירות של ה-SQL מפסיק לעבוד כי שם החשבון כבר אינו תקף, מה שמדגים שהשירות תלוי בחשבון הזה.
5. הקמת שירות ניהול המפתחות: בשרת הניהול נכנסים ל-PowerShell ומייצרים עבור שירות מפתחות הראשי את המפתח הראשי שלו, ואומרים לו להתחיל לעבוד מיידית במקום להמתין לתקופה של עשר שעות, משום שבארגון אמיתי יש כמה בקרי דומיין וממתינים לשעות עד שתתבצע העתקת המידע ביניהם, וכל הפקודות נלקחות מהתיעוד הרשמי של מיקרוסופט.
6. מה עושה השירות הזה: מספק ניהול אוטומטי של חשבונות השירות ומחליף להם את הסיסמה כל תקופה של כשלושים יום.
7. הקמת קבוצת ההרשאות: יוצרים ב-Active Directory קבוצה שבתוכה יהיו כל המחשבים שמותר להם לקבל את הסיסמה של היוזר הווירטואלי החדש, מסוג קבוצת אבטחה, ומוסיפים אליה את המחשבים הרלוונטיים, ואת החברים בה אפשר לבדוק גם ב-PowerShell בפקודה שמציגה חברי קבוצה, מה שמדגים שכל פעולה בממשק גרפי אפשרית גם בשורת פקודה.
8. יצירת היוזר הווירטואלי: בפקודת יצירת חשבון שירות חדש של Active Directory נותנים לו שם, וגם שם מארח בצורת שם נקודת הדומיין, מסיבות טכניות שנובעות מכך שהאובייקט יורש את כל התכונות של אובייקט מחשב ומחשב חייב להיות בעל שם מחשב.
9. הגדרת תדירות ההחלפה ומי רשאי לשלוף: בפקודה מגדירים את המרווח להחלפת סיסמה, שגם בלי ציון יהיה כשלושים יום, והכי חשוב את רשימת הגורמים שרשאים לשלוף את הסיסמה המנוהלת, שם קובעים שרק חברי הקבוצה שיצרנו יורשו לקבל אותה.
10. בדיקה ראשונה והתקנת כלי הניהול: בשרת ה-SQL הניסיון לבדוק ב-PowerShell נכשל כי הפקודה אינה מוכרת, מכיוון שאינם מותקנים בו כלי הניהול של Active Directory, ולכן מוסיפים בניהול השרת רכיב של כלי ניהול מרחוק ובתוכו את המודול של Active Directory ל-PowerShell, ולאחר ההתקנה הפקודה כבר מוכרת.
11. רענון חברויות קבוצה: הבדיקה מחזירה שאין אישור לשלוף את הסיסמה, מכיוון שהוספנו את המחשב לקבוצה אך המחשב עוד לא קיבל את חברויות הקבוצה החדשות שלו, ולכן יש לבצע הפעלה מחדש או יציאה וכניסה, ואחרי ההפעלה מחדש התשובה היא אישור.
12. הגדרת השירות לעבוד עם היוזר החדש: בשירותים של וינדוס מגדירים לשירות ה-SQL שירוץ תחת היוזר החדש, ובבחירת המשתמש מחפשים בתוך Active Directory רק חשבונות שירות, מוצאים את החשבון הווירטואלי שיצרנו, משאירים את הסיסמה ריקה ומפעילים את השירות, ומנהל המשימות מאשר שהשירות רץ עם היוזר הזה עם סימן הדולר בסופו.
13. הגדרת השרת השני והפתרון של הכשל: בשרת השני חוזרים על התהליך, אך הפעלת השירות נכשלת בהתחברות כי המחשב אינו רשאי לשלוף את הסיסמה, והפתרון הוא להוסיף אותו גם לקבוצה שיצרנו, לבצע הפעלה מחדש כדי שיקבל את החברויות, ואז השירות מופעל בהצלחה, כך ששני השרתים רצים עם אותו יוזר בדיוק והסיסמה שלו מתחלפת אוטומטית בלי שמנהל הרשת יצטרך לדאוג לכך.
14. היתרונות האבטחתיים: הסיסמה שמנוהלת אוטומטית ארוכה מאוד ואין סיכוי שתימצא במילון, וכך מגינים מפני התקפות ששוברות את ההאש של חשבון השירות על ידי כך שהסיסמה שקבועה אינה נמצאת באף מילון.
15. בדיקת שם שירות עקבי: בצפייה במאפייני היוזר מבחינים שאין לו ממשק גרפי מעוצב ושהוא נוהל דרך עורך התכונות, ושהשדה של שמות שירות ראשיים עוד לא הוזן, והוא חייב להיות מוזן כדי ש-Active Directory ידע איזה שירות מופעל על ידי היוזר הזה ומאיזה שרת, אחרת קרברוס לא יעבוד כראוי.
16. פתרון בעיית ה-SPN: מוסיפים במאפייני האבטחה של האובייקט הרשאה שהאובייקט עצמו יוכל לשנות את כל המאפיינים של עצמו, ואז לאחר הפעלה מחדש של השירות בכל שרת, היוזר עצמו מרשום במקום הנכון את השירות שהוא משרת ועל איזה מחשב הוא עובד, ולשני השרתים נרשמים הרשומות המתאימות, וזהו תנאי חובה לתפקוד קרברוס.
לסיכום, בשיעור זה הקמנו חשבון שירות מנוהל כקבוצה מקצה לקצה, הקמנו את שירות ניהול המפתחות בבקר הדומיין, יצרנו קבוצה שמגדירה מי רשאי לשלוף את הסיסמה, יצרנו את היוזר הווירטואלי עם תדירות החלפה, הגדרנו את שירות ה-SQL בשני השרתים לרוץ תחתיו, התמודדנו עם ההתקנות וההפעלות מחדש הנדרשות, והשלמנו את רישום השם הראשי של השירות שחובה לתפקוד קרברוס, ובכך הגנו גם מפני פיצוח סיסמאות שירות. SR12925HE

פרקי ההרצאה: ניהול אוטומטי של סיסמאות עבור Service עם gMSA

  1. 00:00

    חשבונות סרוויס מנוהלים אוטומטית

  2. 00:45

    ניהול הסיסמה על ידי ה-Domain Controller

  3. 01:40

    מחיקת המשתמש הידני של הסרוויס

  4. 02:17

    הפעלת שירות KDS ו-Root Key

  5. 03:37

    יצירת קבוצת GMSA למחשבים מורשים

  6. 04:50

    יצירת חשבון השירות עם New-ADServiceAccount

תמלול ההרצאה: ניהול אוטומטי של סיסמאות עבור Service עם gMSA

הטקסט המלא של הדקות הראשונות בהרצאה «ניהול אוטומטי של סיסמאות עבור Service עם gMSA» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם בהרצאה הזו נדבר על managed service accounts חשבונות של סרוויסים של תוכנות שרצות ברקע היוזר והסיסמה שהם רצות איתם רק שלא אנחנו מנהלים אותם לא מנהלי רשת מחליפים להם סיסמה אלא מערכת עצמה מנהלת אותם הרעיון שניתן לרובוט לווינדוס להחליף סיסמה באופן אוטומטי כי גם ככה אף אחד לא מקליד את הסיסמה הזאת

  2. 00:31

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

  3. 01:06

    עם היוזר הזה בגלל הבעיה הזאת אני אתן לנהל סיסמה באופן אוטומטי ל-dc dc domain controller השרת הראשי ינהל בעצמו את הסיסמאות של היוזר הווירטואלי הזה ואחרים ישלפו ממנו את הסיסמאות האלו האמת שבאקטיב דרקטור יוסיפו את הפיצ'ר הזה יחסית לא מזמן רק לפני איזה עשר שנים ב-2012 וזה נקרא Manage Service Accounts חשבונות

  4. 01:32

    מנוהלים כרגע אין לי אף אחד אז מה אנחנו רוצים אנחנו רוצים להיפטר מהיוזר SQL Service שעשינו ידנית כי כשעשינו אותו ידנית הסיסמה שלו אף פעם לא מתחלפת כי לאף אחד אין כוח להחליף את הסיסמה שלו כי תחשבו שאם אני עושה פה reset password או change password אני צריך לרוץ לכל השרתים להחליף שם ידנית אין לי כוח אני רוצה שהמערכת תעשה את זה לבד אז אני מוחק את היוזר הזה ברגע שאני מחקתי את היוזר

  5. 01:59

    הזה שימו לב הסרוויס כבר לא יכול לרוץ איתו אתם רואים הוא אומר the account name is invalid חשבון לא תקף account חשבון באקטיב דירקטורי בווינדוס is invalid הוא לא running יותר הוא לא עובד יותר כי אין לו יוזר לעבוד איתו אז איך אנחנו עושים את הניהול האוטומטי הזה קודם כל אנחנו חייבים להפעיל שירות שמנהל את כל המפתחות האלו ואת כל הסיסמאות האלו נכנסים לpower shell זה כמובן

  6. 02:25

    מובנה בווינדוס זה פיצ'ר שהם הוסיפו אותו אמרנו ב-2012 אנחנו מייצרים עבור שרת KDS עבור שרת מפתחות הראשי את הרודקי שלו כדי שיוכל לנהל ולעבוד כמו שצריך ואומרים לו אל תחכה 10 שעות תתחיל עכשיו לעבוד מיידי 10 שעות כדאי לחכות אם יש לנו כמה דומיין קונטרולרים כמה שרתים שמנהלים את הארגון את Active

  7. 02:28

    Directory ולרוב יש יותר מאחד כמובן כי אם הוא נופל אף אחד לא יודע שם וסיסמה של אף יוזר אף אחד לא יכול לבדוק ולעמת יוזרים לכן בארגון אמיתי יש כמה DC, DC1, DC2, DC3, DC4, תלוי בגודל הארגון.

  8. 03:02

    צריך לחכות 10 שעות שתהיה רפליקציה, העתקה של כל המידע ביניהם. בכל מקרה, הפקודה הזאת עושה את זה מיידית. דרך אגב, את כל הפקודות אני לוקח מאתר של מייקרוסופט, זאת אומרת, בתוך האתר של מייקרוסופט יש פה Getting Started, ולקחתי את זה מפה, Create KDS Root Key.

  9. 03:20

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

  10. 03:32

    בואו ניצור עכשיו קבוצה ב-Active Directory שבתוכה יהיו כל המחשבים שרשאים להשתמש בסיסמה הזאת. אז אני עושה פה Right Click, נהיה Group, קבוצה חדשה, נותן לה שם Group Manage Service Account, GMSA, ואני קורא לקבוצה הזאת SQL/Comp Group.

  11. 03:53

    במובן שאתם יכולים לתת כל שם שבא לכם, העיקר שזה יהיה Security, עושים אוקיי יש לנו פה קבוצה כרגע בקבוצה הזאת אין אף אחד אין אף מחשב אני מכניס לכאן מחשבים שאני רוצה שיוכלו לקבל את הסיסמה של היוזר הווירטואלי החדש שלנו בוא נתחיל מזה שניתן את זה לsql ופה באובג'קט אני בודק שיש פה קומפיוטר כי אני מכניס מחשבים עושה אוקיי check name in sql server 1 שימו לב שם של מחשב נגמר בדולר בלוגו

  12. 04:22

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

  13. 04:34

    אז יש לי סתם קבוצה באקטיב דירקטורי שבתוכה יש מחשב כחבר. אני יכול דרך אגב לבדוק את הממברים של הקבוצה הזאת גם עם פאורשייל, זאת אומרת אני יכול לבוא לפאורשייל, לתת פקודה get active directory group member ולתת את השם של הקבוצה, והוא כותב לי פה sql srv1 כל מה שאני עושה בממשק גרפי אפשר לעשות גם בפאורשל אני לא

  14. 04:56

    רוצה לסבך אתכם ועכשיו הדבר האמיתי ליצור את היוזר הזה שיכיל את הסיסמה שמתחלפת אוטומט כל 30 יום וזאת פקודת המחץ שלנו ניו אקטיב דירקטורי סרוויס אקאונט אני כותב פה ניו אקטיב דירקטורי סרוויס אקאונט נותן לזה שם זה היוזר הזה שהולך להיות בsql חייב לתת לו host

לקורס המלא: מבדקי חדירה ל‑Active Directory

ההרצאה הקודמת: שליפת סיסמה של Service - עם PowerShell

ההרצאה הבאה: הסבר על NTLM Hash - ועל התקפת Pass-The-Hash

הרצאות קשורות מקורסים אחרים

  • קביעת סיסמאות עבור Setting a Password to MySQL
  • ניהול OU
  • קובץ עם 14 מילון סיסמאות
  • Service Throttling

קורסים נוספים במסלול

  • קורס SOC - מיישם הגנת סייבר
  • קורס סייבר למתחילים - Hacking - בדיקות חוסן תשתיתי ופריצה ל-Windows 10/11 - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס פריצה ומבדקי חדירה לאתרי אינטרנט - בדיקות חוסן לאתרים - Web Pentesting - קורס זה נדרש למבחן ההסמכה היוקרתי OSCP
  • קורס סייבר והאקינג ל-Android - פריצה לטלפונים ואפליקציות אנדרואיד - בודק חוסן - Mobile App Pentesting