ForceChangePassword

Summary

FSProtect ACL Alias

ForceChangePassword

AD Alias

Reset Password

Affected Object Types

Users, Computers

Exploitation Certainty

Certain

AD Right

ExtendedRight

AD Permission Guid

00299570-246d-11d0-a768-00aa006e0529

Description

The ForceChangePassword permission allows a user to reset the passwords of other user accounts within Active Directory, facilitating efficient password management and enforcement of security policies. This allows resets without requiring the current password of the target account.

However, if misconfigured, this permission can introduce a security risk. An attacker with the ForceChangePassword permission can reset passwords of vulnerable accounts without the account holders' knowledge. Exploiting this vulnerability could lead to unauthorized access, privilege escalation, and persistent access within the system.

Identification

Powershell

Active Directory Module

Using the ActiveDirectory PowerShell module, you can enumerate ForceChangePassword entries.

1. Find-ForceChangePassword function

2. Scan all user objects in the domain

3. Scan a specific object

4. To exclude default admin ACLs to improve visibility

5. Using SearchBase to limit the searching scope

.NET Directory Services

By leveraging PowerShell’s built-in .NET DirectoryServices namespace, you can enumerate ForceChangePassword entries without relying on any external modules or dependencies.

1. Find-ForceChangePasswordSimple function

2. Scan all user objects in the domain

3. Scan a specific object

Active Directory Users and Computers

1. Open Active Directory Users and Computers on your Windows server.

2. Right-click on the User name.

3. Select Properties from the context menu.

4. In the Properties window, navigate to the Security tab.

5. Click on the Advanced button to open the Advanced Security Settings dialog.

6. In the Advanced Security Settings window, locate and select the relevant Access Control Entry (ACE) for the user or group you wish to configure.

7. Click Edit to modify the selected ACE.

8. In the permissions list, locate and check the option Reset Password.

9. Click OK to save your changes and close the dialogs.

Exploitation

Windows

Example:

Linux

Using a UNIX-like system with net, a tool for administering Samba and CIFS/SMB clients

Example:

Using bloodAD

Example:

Mitigation

Access Control Entries identified as unauthorized should be removed by following the steps below.

1. Open Active Directory Users and Computers, and activate Advanced Features option.

2. Double click the affected user and open Security tab.

3. In this tab, click the Advanced button and open the unauthorized Access Control Entry.

4. Remove the Reset Password right.

5. Click OK and Apply to save changes.

Detection

Adding new Access Control Entries (ACEs) to Active Directory objects modifies the ntSecurityDescriptor attribute. These changes can be detected with Event IDs 5136 and 4662 to identify potentially malicious modifications.

Event ID
Description
Fields/Attributes
References

5136

A directory service object was modified.

ntSecurityDescriptor

https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136

4662

An operation was performed on an object.

AccessList, AccessMask

https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4662

4724

An attempt was made to reset an account's password.

TargetUserName, SubjectUserName

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4724

References

Last updated

Was this helpful?