Excessive Failed Logins Monitoring
Purpose
The solution monitors the domain controller for excessive logon failures within one hour, indicating a possible brute force attack.
Associated Content
Custom Fields
| Content | Level | Function |
|---|---|---|
| Is Primary Domain Controller | Endpoint | Used to determine whether a Domain Controller is an infrastructure master or not. |
Groups
| Content | Type | Function |
|---|---|---|
| Domain Controllers | Dynamic Group | Stores the Domain Controllers in a single place. |
| Infrastructure Master | Dynamic Group | Stores all the available infrastructure masters in a single place. |
Tasks/Scripts
| Content | Type | Function |
|---|---|---|
| Validate Primary Domain Controller | Task | Validate whether a computer is an infrastructure master or not and update the custom field Is Primary Domain Controller. |
Monitor
| Content | Type | Function |
|---|---|---|
| Excessive Failed Logins Attempt | Monitor | Check the computer for security event log event ID 4625 where the count of occurrences is greater than 10 in the last 60 minutes. |
Implementation
-
Create the required Custom Fields (if not exist) using the documentation below:
-
Create the following Dynamic Groups (if not exist):
-
Create and schedule the following Task(s) (if not exist):
-
Create and enable the following monitor:
Troubleshooting
General Troubleshooting Steps:
1. Identify the Account Type:
-
Domain Account:Check in Active Directory Users and Computers (ADUC). -
Local Account:Use Computer Management > Local Users and Groups. -
Service Account:Check services or scheduled tasks using the account. -
Unknown Account:Investigate for potential brute-force or enumeration attacks.
2. Review Event Logs:
- Look for Event ID
4625in the Security log.
3. Pay attention to:
-
Status/SubStatus codes
-
Logon Type
-
Source IP/Workstation
-
Target Account Name
4. Error Code Specific Troubleshooting:
| Error Code | Meaning | Action Steps |
|---|---|---|
| 0xC000006A | Bad password |
|
| 0xC000006D | Bad username or auth info |
|
| 0xC0000064 | Bad or misspelled username |
|
| 0xC000005E | No logon servers available |
|
| 0xC000006F | Logon outside authorized hours |
|
| 0xC0000070 | Unauthorized workstation |
|
| 0xC0000072 | Account disabled |
|
| 0xC000015B | Logon type not granted |
|
| 0xC0000192 | Netlogon service not started |
|
| 0xC0000193 | Expired account |
|
| 0xC0000413 | Auth firewall restriction |
|
5. Service Account Specific Checks:
-
Find Services Using the Account.
-
Run:
Get-WmiObject win32_service | Where-Object { $_.StartName -like "*accountname*" }
Or check manually in Services.msc.
6. Update Password:
-
Change the password in AD.
-
Update it in all services, scheduled tasks, and applications using it.
7. If the Account is Unknown or Suspicious
Investigate Source IP:Use firewall logs or SIEM tools.Check for Patterns:Repeated failures from the same IP or targeting multiple accounts.Block IP or Account:If malicious, take immediate action.Enable Account Lockout Policies:To prevent brute-force attacks or excessive logon attempts.