זיהוי המקור של נעילות חשבון Active Directory: פתרון בעיות
במאמר זה, נראה לך כיצד לעקוב אחר אירועי נעילה של חשבון משתמש בבקרי תחום של Active Directory ונגלה מאיזה מחשב, התקן ותוכנית החשבון נעול כל הזמן. באפשרותך להשתמש ביומני הרישום של אבטחת Windows, קבצי script של PowerShell או בכלי נעילה וניהול חשבון (Lockoutstatus.exe) כדי למצוא את המקור של נעילות חשבונות משתמשים ב- AD.
החשבון שאליו בוצעה הפניה נעול כעת וייתכן שלא יהיה מחובר אליו
מדיניות אבטחת חשבונות התחום של Active Directory ברוב הארגונים דורשת לנעול חשבון משתמש אם מוזנת סיסמה שגויה מספר פעמים ברציפות. בדרך כלל, החשבון ננעל על ידי בקר התחום למשך מספר דקות (5-30), שבמהלכן המשתמש אינו יכול להיכנס לדומיין AD. לאחר זמן מה (מוגדר על-ידי מדיניות האבטחה של התחום), חשבון המשתמש מתבטל באופן אוטומטי. נעילה זמנית של חשבון AD מפחיתה את הסיכון להתקפות brute-force נגד חשבונות משתמשי AD.
אם חשבון המשתמש בתחום נעול, מופיעה אזהרה בעת ניסיון להיכנס ל- Windows:
החשבון שאליו מתבצעת הפניה נעול כעת וייתכן שלא יהיה מחובר אליו.
כיצד לבדוק אם חשבון משתמש AD נעול מחוץ למערכת?
באפשרותך לבדוק אם החשבון נעול באמצעות המסוף הגרפי של ADUC או באמצעות ה- cmdlet Get-ADUser ממודול Active Directory עבור PowerShell:
Get-ADUser -Identity jsmith -Properties LockedOut,DisplayName | Select-Object samaccountName, displayName,Lockedoutאו:
Get-ADUser jsmith -Properties Name,Lockedout, lastLogonTimestamp,lockoutTime,logonCount,pwdLastSet | Select-Object Name, Lockedout,@{n='LastLogon';e={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},@{n='lockoutTime';e={[DateTime]::FromFileTime($_.lockoutTime)}},@{n='pwdLastSet';e={[DateTime]::FromFileTime($_.pwdLastSet)}},logonCountחשבון המשתמש נעול כעת (
Lockedout = True) ולא ניתן להשתמש בו לצורך אימות בתחום. גם בפלט של הפקודה, אתה יכול לראות מידע על הפעם האחרונה שהסיסמה של המשתמש השתנתה בתחום ואת הזמן החשבון היה נעול.
באפשרותך לפרט את כל החשבונות הנעולים כעת בתחום באמצעות ה- cmdlet Search-ADAccount:
Search-ADAccount -UsersOnly -lockedoutבאפשרותך לבטל נעילה ידנית של חשבון באמצעות מסוף ADUC מבלי להמתין עד לביטול נעילה אוטומטי שלו. מצא את חשבון המשתמש ב-AD (השתמש באפשרות החיפוש ביישום ה- Snap-in של AD), לחץ לחיצה ימנית ובחר מאפיינים. עבור אל הכרטיסיה חשבון וסמן את התיבה בטל נעילת חשבון. חשבון זה נעול כעת בבקר תחום זה של Active Directory. לחץ על אישור.
באפשרותך גם לבטל באופן מיידי נעילה של חשבון משתמש באמצעות הפקודה הבאה של PowerShell:
Get-ADUser -Identity jsmith | Unlock-ADAccountבאפשרותך לבדוק את זמן נעילת החשבון, את מספר ניסיונות הכניסה באמצעות סיסמה שנכשלו ואת שעת הכניסה המוצלחת האחרונה במאפייני החשבון במסוף ADUC (בכרטיסיה עורך תכונות) או באמצעות PowerShell:
Get-ADUser jsmith -Properties Name, lastLogonTimestamp,lockoutTime,logonCount,pwdLastSet | Select-Object Name,@{n='LastLogon';e={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},@{n='lockoutTime';e={[DateTime]::FromFileTime($_.lockoutTime)}},@{n='pwdLastSet';e={[DateTime]::FromFileTime($_.pwdLastSet)}},logonCount
מדיניות נעילת חשבון בתחום Active Directory
מדיניות נעילת החשבון מוגדרת בדרך כלל במדיניות התחום המהווה ברירת מחדל עבור התחום כולו באמצעות
gpmc.mscיישום Snap-in. המדיניות שאנו מעוניינים בה נמצאת בתצורת המחשב -> הגדרות Windows -> הגדרות אבטחה -> מדיניות חשבון -> מדיניות נעילת חשבון. להלן קווי המדיניות הבאים:
סף נעילת חשבון - לאחר מספר ניסיונות הסיסמה הכושלים יש לנעול חשבון;
משך נעילת החשבון למשך כמה זמן החשבון יינעל (לאחר זמן זה המנעול יוסר באופן אוטומטי);
אפס את מונה נעילת החשבון לאחר - הזמן לאפס את מונה ניסיונות ההרשאה הכושלים.
כדי להתגונן מפני התקפות brute-force של סיסמאות, מומלץ להשתמש בסיסמאות משתמש חזקות ב-AD (השתמש באורך סיסמה של לפחות 8 תווים והפעל דרישות מורכבות). הגדרה זו מוגדרת במקטע מדיניות סיסמה באפשרויות סיסמה חייבת לעמוד בדרישות המורכבות ובאורך סיסמה מינימלי. מעת לעת, עליך לבדוק את חוזק סיסמת המשתמש.
המקרים שבהם המשתמש שוכח את הסיסמה וגורם לנעילת החשבון עצמם מתרחשים לעתים קרובות למדי. אם המשתמש שינה לאחרונה את הסיסמה ושכח אותה, באפשרותך לאפס אותה. אבל במקרים מסוימים, נעילת החשבון מתרחשת ללא סיבה ברורה. כלומר, המשתמש מצהיר כי מעולם לא טעה בעת הזנת סיסמה, אך חשבונו ננעל מסיבה כלשהי. מנהל המערכת יכול לבטל את נעילת החשבון באופן ידני לבקשת המשתמש, אך לאחר זמן מה, המצב עשוי לחזור על עצמו.
כדי לפתור את בעיית המשתמש, מנהל המערכת צריך למצוא מאיזה מחשב ותוכנית חשבון המשתמש ב- Active Directory ננעל.
מזהי אירועים של נעילת חשבון 4740 ו-4625
קודם כל, מנהל מערכת צריך לגלות מאיזה מחשב או מכשיר להתרחש ניסיונות סיסמה גרועה הולך עוד נעילות חשבון.
כדי להפוך אירועי נעילת חשבון לזמינים ביומני הרישום של בקר התחום, עליך להפעיל את מדיניות הביקורת הבאה עבור המת"קים שלך. עבור אל סעיף GPO תצורת מחשב -> מדיניות -> הגדרות Windows -> הגדרות אבטחה -> מדיניות ביקורת מתקדמת -> כניסה/יציאה והפעל את המדיניות הבאה:
נעילת חשבון ביקורת
ביקורת כניסה
ביקורת התנתקות
לאחר מכן עבור אל הקטע ניהול חשבון והפעל את המדיניות:
ביקורת על ניהול חשבונות משתמשים: הצלחה
הדרך הקלה ביותר להפעיל מדיניות זו היא באמצעות
gpmc.mscמסוף על-ידי עריכת מדיניות ברירת המחדל של בקר תחום.
אם המשתמש מזין סיסמה שגויה, בקר התחום הקרוב ביותר למשתמש (LogonServer) מנתב מחדש את בקשת האימות ל- DC עם תפקיד FSMO אמולטור PDC (DC מסוים זה אחראי לעיבוד מנעולי חשבון). אם האימות נכשל גם ב- PDC, הוא מגיב ל- DC הראשון שהאימות נכשל. אם מספר ניסיונות האימות הכושלים חורג מהערך שהוגדר עבור התחום במדיניות סף נעילת החשבון, חשבון המשתמש ננעל באופן זמני.
במקרה זה, אירוע עם מזהה אירוע 4740 נרשם ביומן האבטחה של שני בקרי התחום. האירוע מכיל את שם ה- DNS (כתובת IP) של המחשב שממנו הגיעה הבקשה הראשונית לאימות משתמש. כדי לא לנתח את היומנים בכל DCs, הכי קל לחפש את אירועי הנעילה ביומן האבטחה ב- PDC. באפשרותך למצוא את בקר התחום הראשי בתחום שלך באופן הבא:
(Get-AdDomain).PDCEmulatorניתן למצוא את אירועי נעילת חשבון התחום ביומן האבטחה בבקר התחום (מציג האירועים -> יומני הרישום של Windows). סנן את יומן האבטחה לפי מזהה האירוע 4740. אתה אמור לראות רשימה של אירועי נעילת החשבון האחרונים. מלמעלה, גלול בין כל האירועים ומצא אירוע המציין שהחשבון של המשתמש שאתה מחפש נעול (שם המשתמש מופיע בערך שם החשבון ובתיאור האירוע "חשבון משתמש ננעל מחוץ למערכת").
הערה. בסביבת AD גדולה, אירועים רבים נכתבים ביומן האבטחה בבקרי התחום, אשר חדשים יותר מחליפים בהדרגה. לכן, מומלץ להגדיל את גודל היומן המקסימלי במת"קים ולהתחיל לחפש את מקור הנעילה בהקדם האפשרי.
פתח אירוע זה. שם המחשב (שרת) שממנו נרשם אירוע נעילת החשבון מצוין בשדה שם מחשב מתקשר. במקרה זה, שם המחשב הוא DACZCZL5-Z.
אם השדה 'שם מחשב' מכיל שם מחשב/התקן לא ידוע שאינו מזוהה ברשת שלך באמצעות DNS (מחשב שאינו תחום, או התקן שאינו Windows התומך באימות Kerberos), באפשרותך לקבל את כתובת ה- IP של התקן זה. לשם כך, עליך להפוך את הגדרות הביקורת הבאות לזמינות במדיניות בקר התחום המהווה ברירת מחדל. עבור אל תצורת מחשב -> מדיניות -> הגדרות Windows -> הגדרות אבטחה -> תצורת ביקורת מתקדמת והפעל את אפשרויות הביקורת הבאות:
כניסה לחשבון
ביקורת Kerberos Authentication Service: הצלחה, כישלון
ביקורת תפעול כרטיסי שירות Kerberos: הצלחה, כישלון
כניסה/התנתקות
ביקורת כניסה מיוחדת: הצלחה, כישלון
פתח את מציג האירועים -> יומן האבטחה והפעל את המסנן במזהי אירועים 4740 ו- 4741. שים לב שכעת לפני התרחשות אירוע נעילת המשתמש (4740), האירוע 4771 (
Kerberos Authentication Failed) משירות האימות של Kerberos מופיע. הוא מכיל את שם המשתמש שניסה לאמת ואת כתובת ה- IP של המכשיר (שדה מידע רשת -> כתובת לקוח) שממנו הגיעה בקשת האישור.
אם ההתקן המרוחק משתמש באימות תחום NTLM, עליך לחפש את EventID 4625 (NTLM Authentication Failed) בתקליטורי DC (הוא כלול רק בבקר התחום שדרכו נעשה ניסיון לאימות NTLM).
פתח את האירוע האחרון עם מזהה אירוע 4625 עבור המשתמש שלך (שם חשבון). כאן תוכל לראות שכאשר אתה מנסה לבצע אימות NTLM (חבילת אימות:
NTLMתהליך כניסה:,
NtLmSsp), החשבון ננעל (
Failure Reason: Account locked out,
Status: 0xC0000234). תיאור האירוע מכיל הן את שם המחשב (שם תחנת עבודה) והן את כתובת ה- IP שלו (כתובת רשת מקור).
אם אינך מוצא את מקור נעילת המשתמש ביומן מציג האירועים, באפשרותך להפעיל רישום איתור באגים עבור netlogon בבקר התחום. הפעל את הפקודה:
nltest /dbflag:2080ffffffהפעל מחדש את שירות Netlogon
net stop netlogon && net start netlogonחפש אירועים בקובץ netlogon.log:
0xc000006a - נעשה ניסיון כניסה לא חוקי על ידי המשתמש הבא;
0xc0000234 - חשבון המשתמש ננעל באופן אוטומטי מכיוון שהתבקשו יותר מדי ניסיונות כניסה לא חוקיים או ניסיונות לשינוי סיסמה.
באפשרותך למצוא את אירועי הנעילה עבור המשתמש
a.bakerב
netlogon.logקובץ באמצעות הפקודה:
type C:\Windows\debug\netlogon.log | findstr a.baker| findstr /i "0xC000006A"בדוגמה זו, באפשרותך לראות שהמשתמש a.baker נעול מחוץ להתקן DESKTOP-12361B.
הקפד להשבית כניסה מתקדמת של netlogon ל- DC לאחר השלמת איתור הבאגים:
nltest /dbflag:0x0קבל את המקור (מחשב) של נעילות חשבון באמצעות PowerShell
באפשרותך להשתמש בקובץ ה-script הבא של PowerShell כדי למצוא את המקור של נעילת חשבון של משתמש ספציפי ביומני האירועים של PDC. קובץ ה- Script הבא מחפש אירועים עם מזהה אירוע 4740 ביומן אירועי האבטחה ב- PDC ומחזיר את זמן הנעילה ואת שם המחשב שממנו הוא התרחש:
$Usr = ‘username1’
$Pdc = (Get-AdDomain).PDCEmulator
$ParamsEvn = @{
‘Computername’ = $Pdc
‘LogName’ = ‘Security’
‘FilterXPath’ = "*[System[EventID=4740] and EventData[Data[@Name='TargetUserName']='$Usr']]"
}
$Evnts = Get-WinEvent @ParamsEvn
$Evnts | foreach {$_.Properties[1].value + ' ' + $_.TimeCreated} באופן דומה, באפשרותך לבצע שאילתה על כל בקרי התחום ב- Active Directory באמצעות PowerShell:
$Usr = ‘username1’
Get-ADDomainController -fi * | select -exp hostname | % {
$ParamsEvn = @{
‘Computername’ = $Pdc
‘LogName’ = ‘Security’
‘FilterXPath’ = "*[System[EventID=4740] and EventData[Data[@Name='TargetUserName']='$Usr']]"
}
$Evnts = Get-WinEvent @ParamsEvn
$Evnts | foreach {$_.Computer + " " +$_.Properties[1].value + ' ' + $_.TimeCreated}
}עקוב אחר אירועי נעילת AD באמצעות כלי הנעילה והניהול של החשבון
באפשרותך להשתמש בכלי Lockoutstatus.exe הגרפי מתוך ערכת הנעילה וכלי הניהול של חשבון Microsoft כדי למצוא את המקור לנעילות חשבונות משתמשים (באפשרותך להוריד אותו כאן). כלי שירות זה בודק את מצב נעילת החשבון בכל בקרי התחום.
הפעל את
Lockoutstatus.exeציין את שם החשבון הנעול (Target User Name) ואת שם התחום (Target Domain Name).
הרשימה שתופיע תכיל את רשימת DCs ומצב החשבון (נעול או לא נעול). בנוסף, זמן הנעילה והמחשב שממנו חשבון זה נעול מוצגים (Orig Lock).
התכונות badPwdCount ו- LastBadPasswordAttempt אינן משוכפלות בין בקרי תחום.
באפשרותך לבטל את נעילת חשבון המשתמש, או לשנות סיסמה ישירות מהחלון Lockoutstatus.
החיסרון העיקרי של הכלי LockoutStatus הוא שהוא שואל את כל בקרי התחום במשך זמן רב למדי (חלקם עשויים שלא להיות זמינים).
כיצד למצוא תוכנית הנועלת את חשבון תחום המשתמש?
אז, מצאנו מאיזה מחשב או מכשיר החשבון היה נעול. עכשיו זה יהיה נהדר לדעת מה בדיוק תוכנית או תהליך עושה ניסיונות כניסה כושלים הוא המקור של אירועי נעילת החשבון.
לעתים קרובות, משתמשים מתחילים להתלונן על נעילת חשבונות הדומיין שלהם לאחר שינוי הסיסמאות שלהם. ברוב המקרים, משמעות הדבר היא שהסיסמה הישנה (השגויה) נשמרת בתוכנית, סקריפט או שירות מסוימים שמנסים מעת לעת לבצע אימות ב- DC עם הסיסמה הישנה והשגויה. בוא נבחן את המקומות הנפוצים ביותר שבהם ייתכן שמשתמש שמר סיסמה ישנה:
כונני רשת ממופים (דרך
net use);
משימות מתזמן המשימות של Windows;
קיצורי דרך עם מצב RunAs מוגדר (המשמש להפעלת תוכנית בשם משתמש אחר);
שירותי Windows שתצורתם נקבעה לפעול תחת חשבון תחום;
אישורים שנשמרו במנהל האישורים (בלוח הבקרה); לפעמים ניתן לאחסן סיסמאות משתמש בהקשר של SYSTEM. באפשרותך לרשום אותם אם תפתח את שורת הפקודה כ- LocalSystem (באמצעות הכלי psexec) ותפעיל את הפקודה
rundll32 keymgr.dll,KRShowKeyMgrכדי להציג סיסמאות שמורות עבור NT AUTHORITY\SYSTEM.
מכשירים ניידים (לדוגמה, אלה המשמשים לגישה לתיבת דואר ארגונית);
סיסמאות שמורות (מאוחסנות במטמון) בתוכניות עם תכונת כניסה אוטומטית או כניסה אוטומטית מוגדרת של Windows;
הפעלות RDP מנותקות/לא פעילות במחשבים אחרים או בחוות/מארחים של RDS (תמיד הגדר פסק זמן עבור הפעלות RDP);
סיסמאות שמורות בפרופילי רשת Wi-Fi של Windows (אם אתה משתמש באימות WPA2-Enterprise 802.1x ברשת אלחוטית).
כדי לבצע ביקורת מפורטת של נעילת חשבון במחשב שמצאת ביומני DC , עליך להפוך מספר פריטי מדיניות ביקורת מקומיים של Windows לזמינים. לשם כך, פתח עורך מדיניות קבוצתית מקומי (
gpedit.msc) במחשב (שבו ברצונך למצוא את מקור הנעילה) והפעל את פריטי המדיניות הבאים בסעיף תצורות מחשב -> הגדרות Windows -> הגדרות אבטחה -> מדיניות מקומית -מדיניות ביקורת >:
מעקב אחר תהליכי ביקורת: הצלחה, כישלון
ביקורת אירועי כניסה: הצלחה, כישלון
לאחר מכן עדכן את הגדרות המדיניות הקבוצתית במחשב הלקוח:
gpupdate /forceהמתן לנעילת החשבון הבאה ומצא את האירועים עם מזהה האירוע 4625 ביומן האבטחה. במקרה שלנו, אירוע זה נראה כך:
An account failed to log on.
Failure Reason: Account locked out.כפי שניתן לראות מתיאור האירוע, מקור נעילת החשבון הוא תהליך mssdmn.exe (רכיב Sharepoint). במקרה זה, המשתמש צריך לעדכן את הסיסמה בפורטל האינטרנט של Sharepoint.
לאחר סיום פתרון הבעיות וסיבת הנעילה מזוהה ומסולקת, אל תשכח להשבית את מדיניות הביקורת המקומית.
אם עדיין לא הצלחת למצוא את מקור נעילת החשבון במחשב ספציפי, פשוט נסה לשנות את שם חשבון המשתמש ב- Active Directory לשנות את SAMaccountName ואת UPN של המשתמש במודעה). זוהי בדרך כלל שיטת ההגנה היעילה ביותר מפני מנעולים פתאומיים של משתמש ספציפי אם לא הצלחת לקבוע את מקור הנעילה.















