Skip to main content
4738SecurityAccount ManagementSecurity tier 1

Event ID 4738: A user account was changed

Event ID 4738 fires whenever an existing Windows account's attributes are modified: password state, account-control flags, delegation rights, and more. Comparing its OldUacValue and NewUacValue fields tells you exactly which control bit flipped, which is what turns a generic "account changed" event into an actionable privilege-escalation alert.

What Triggers Event 4738

Event 4738 fires every time an existing user account's attributes change, in the Audit User Account Management subcategory, and it is intentionally broad: password resets, account-control flag changes, delegation-rights grants, profile-path edits, and dozens of other attribute writes all collapse into the same event ID with the same shape. That breadth is the event's defining characteristic and its main triage challenge: "an account changed" tells you almost nothing until you look at exactly which fields moved.

SubjectUserSid, SubjectUserName, and SubjectLogonId describe who made the change, the actor, correlating back to that actor's own 4624 logon. TargetUserName and TargetSid describe the account that was modified. As with account creation, conflating Subject and Target here is the most common analyst error: a help-desk technician resetting a forgotten-password flag produces the same event shape as an attacker with a stolen admin credential quietly granting themselves delegation rights, and the only field-level difference is what actually changed and who did it.

The two fields that matter most for detection are OldUacValue and NewUacValue, a before-and-after pair of the account-control bitmask. Neither value on its own tells you much; the diff between them tells you exactly which control bit flipped. A flag that flips from password required to password not required, or from password expires to password never expires, is a durability change to how that account can be authenticated against in the future, and those specific flips are worth alerting on regardless of who made them, because a legitimate admin rarely has a reason to disable expiry on a standard user account.

AllowedToDelegateTo is the field most incumbent references skip entirely, and it is one of the highest-value fields on this event. A non-empty value here means the account is now permitted to delegate to the listed service on behalf of other users, the mechanism behind constrained Kerberos delegation. Going from empty to populated is not a routine account edit; it is a privilege grant that hands the account impersonation rights it did not have before, and it is a documented step in several real-world Kerberos-abuse chains, MITRE T1098 Account Manipulation, precisely because delegation rights are easy to grant quietly and easy to overlook in a routine account-attribute audit.

PasswordLastSet appears in the event specifically when the change touched the password, which lets you separate a password-reset 4738 from an attribute-only 4738 without needing a second event. Other attributes commonly seen changing, home directory, profile path, logon script, workstation restrictions, are lower signal individually but worth tracking in aggregate: a batch of unrelated attribute changes on one account in a short window is a pattern worth a second look even when no single change looks alarming.

4738 relates closely to two sibling events: 4720, account created, which fires once at creation and never again for that account, and 4725/4726, disabled and deleted, which are themselves special cases of an account-state change that get their own dedicated event IDs rather than folding into 4738. If you are building a full account-lifecycle view, all four events need to be correlated by TargetSid to reconstruct the account's history in order.

Event 4738 Fields

FieldWhat it tells youSimulated value
SubjectUserSidSID of the account that made the change.S-1-5-21-424242-1050
SubjectUserNameName of the admin or service account that made the change.adm.lopez
SubjectLogonIdLogon session ID of the Subject, correlates back to their 4624.0x3f2a91
TargetUserNameSAM account name of the account that was changed.a.chen
TargetSidSID of the account that was changed.S-1-5-21-424242-644878
OldUacValueBitmask of the account-control flags before the change.0x10
NewUacValueBitmask of the account-control flags after the change; diff against OldUacValue to see exactly which flag flipped.0x210
AllowedToDelegateToList of services the account can now delegate to; a new non-empty value here is a constrained-delegation privilege grant.-
PasswordLastSetTimestamp the account's password was last set, present when the change touched the password.-

Inspect Event 4738 Values

Click a field to inspect the full simulated value, the way you would expand it in a SIEM event view.

Example Event 4738 Log

A representative Security entry for Event 4738, generated deterministically by our telemetry engine so every field holds a realistic, internally consistent value.

Simulated example generated by SOCSimulator Research
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Security-Auditing" />
    <EventID>4738</EventID>
    <Version>0</Version>
    <Level>0</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8020000000000000</Keywords>
    <TimeCreated SystemTime="2025-07-22T03:38:53.000Z" />
    <EventRecordID>651291</EventRecordID>
    <Channel>Security</Channel>
    <Computer>WS-SIM-001.corp.socsimulator.example</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="SubjectUserSid">S-1-5-21-424242-1050</Data>
    <Data Name="SubjectUserName">adm.lopez</Data>
    <Data Name="SubjectLogonId">0x3f2a91</Data>
    <Data Name="TargetUserName">a.chen</Data>
    <Data Name="TargetSid">S-1-5-21-424242-644878</Data>
    <Data Name="OldUacValue">0x10</Data>
    <Data Name="NewUacValue">0x210</Data>
    <Data Name="AllowedToDelegateTo">-</Data>
    <Data Name="PasswordLastSet">-</Data>
  </EventData>
</Event>

Detecting Event 4738

UAC flag flip: a sensitive bit newly set or cleared (DONT_EXPIRE_PASSWORD set, SMARTCARD_REQUIRED cleared, DONT_REQ_PREAUTH set)

Lucene is the base filter; the UAC bit diff runs in your SIEM (compare OldUacValue to NewUacValue).

index=wineventlog sourcetype=WinEventLog:Security EventCode=4738
| where Old_UAC_Value!=New_UAC_Value
| table _time, Subject_Account_Name, Target_Account_Name, Old_UAC_Value, New_UAC_Value

AllowedToDelegateTo newly populated (constrained delegation grant, T1098 privilege escalation path)

index=wineventlog sourcetype=WinEventLog:Security EventCode=4738 Allowed_To_Delegate_To=*
| where isnotnull(Allowed_To_Delegate_To) AND Allowed_To_Delegate_To!="-"
| table _time, Subject_Account_Name, Target_Account_Name, Allowed_To_Delegate_To

Account changed by someone other than the account itself or a known admin

index=wineventlog sourcetype=WinEventLog:Security EventCode=4738
| lookup domain_admins.csv Subject_Account_Name OUTPUT is_admin
| where isnull(is_admin) AND Subject_Account_Name!=Target_Account_Name
| table _time, Subject_Account_Name, Target_Account_Name

True Positive vs False Positive

The overwhelming majority of 4738 volume in any organization is legitimate account administration: help-desk password resets, HR-driven profile updates, automated provisioning tools syncing attributes from an HR system or identity provider, and routine account-lifecycle management. The baseline pattern looks like a small, stable set of Subject accounts, help-desk staff, provisioning service accounts, a handful of IT admins, making changes during business hours, each change touching one or two attributes at a time.

The pattern worth escalating starts with the specific UAC bits involved rather than the mere fact that a UAC value changed. Password-never-expires and password-not-required flipping to enabled on any account outside a documented list of legitimate exceptions, some service accounts do need this, is a durable persistence mechanism: it removes a rotation cycle an attacker would otherwise have to survive. The same flip on a human user account, especially a privileged one, is close to always worth investigating immediately.

AllowedToDelegateTo going from empty to populated is the single highest-priority 4738 pattern on this page. Legitimate constrained-delegation grants are rare, deliberate, and usually tied to a specific application deployment a change-management ticket would document. An unexplained delegation grant, particularly one pointing at a service like cifs or ldap on a domain controller, is a credential-relay or lateral-movement setup step and should be treated as a high-confidence indicator pending explanation, not a routine attribute edit.

Subject identity is the other major triage axis. A change made by an account that has never touched account management before, or by a service account whose normal job has nothing to do with user administration, is inherently more suspicious than the same change made by a known help-desk identity, independent of which attribute changed. Pair this against an allowlist of accounts with legitimate account-management responsibilities; any 4738 from outside that list is an anomaly by construction and worth a look regardless of the specific field touched.

Timing compounds both signals. A privilege-relevant attribute change, a delegation grant, an expiry-flag flip, made within minutes of the acting account's own suspicious logon, an unfamiliar source IP, an off-hours timestamp, or immediately preceding a burst of other account-management activity on the same or a different Target, moves the finding from worth a look to escalate now. A single off-pattern field in isolation is common operational noise; a privilege-relevant flag change stacked with an unusual Subject and unusual timing is the combination that should never wait for a scheduled review.

MITRE ATT&CK® Techniques

Event 4738 telemetry feeds detections for these ATT&CK® techniques:

Practice Investigating Event 4738

Reading about a user account was changed is one thing. Working the detection inside a live console is another. These free SOCSimulator operations cover the attack techniques Event 4738 helps you detect:

Account Takeover: Impossible-Travel Sign-In

Account Takeover: Impossible-Travel Sign-In

A finance analyst's Microsoft Entra account is accessed without MFA from Moldova 18 minutes after their normal London sign-in. Impossible travel confirmed. The unauthorized session reads the inbox via Graph and adds an external recovery address. Work the Entra audit trail to identify the attacker IP, the compromised mailbox, and the persistence mechanism.

25m·256 tasks
View Operation
Cloud Identity Under Siege

Cloud Identity Under Siege

Nine days of telemetry from a cloud-first Azure estate: Entra ID sign-ins, Windows endpoints, a Kubernetes cluster, an Azure Function and the storage accounts behind them all report into one SIEM. Something inside that window does not fit the shape the estate normally has. Work the SIEM, XDR, firewall and cloud panels together, pin each observation to a host and a principal you can name, and rebuild the sequence from the records themselves.

1h·508 tasks
View Operation
Finance Mailbox Takeover at MegaCorp Logistics

Finance Mailbox Takeover at MegaCorp Logistics

A finance analyst at MegaCorp Logistics reported that colleagues were receiving replies to messages she never sent, and her account was disabled while the investigation runs. You have the SIEM feed and the endpoint XDR telemetry for the workstation estate and the mail platform, covering the week around the report. Reconstruct what happened: which host produced the endpoint evidence, what its browser reached, how the account was taken over, and what was left behind on the mail platform so the containment plan is complete.

45m·508 tasks
View Operation
Start investigating free

Frequently Asked Questions

What does event ID 4738 mean?
It means an existing user account's attributes were changed: password reset flag, account-control bits, delegation settings, home directory, and similar. It carries both OldUacValue and NewUacValue so you can see exactly which control flag changed, not just that something changed.
What is the AllowedToDelegateTo field in event 4738?
It lists the services the account is now permitted to delegate to on behalf of other users. A new non-empty value here is how constrained delegation is granted, and it is one of the higher-value fields to alert on because it hands the account impersonation rights it did not have before.
What is the difference between event 4738 and event 4720?
4720 fires once, when the account is first created. 4738 fires every time an existing account's attributes are modified afterward, which is why 4738 is the event to watch for privilege changes made long after an account's creation.

Sources

“Field schema (SubjectUserSid/SubjectLogonId/TargetUserName/TargetSid/OldUacValue/NewUacValue/AllowedToDelegateTo/PasswordLastSet) for the User Account Changed event”

“T1098 Account Manipulation is the current MITRE ATT&CK Enterprise technique covering modification of account permissions and delegation rights to maintain access”

Event ID

Event ID 4723: Password Change Attempt (Self-Service) & Detection

Event ID 4723 fires when a user changes their own password. Learn the difference from 4724, the Audit Failure signal, an…

Read more
Event ID

Event ID 4724: Password Reset Attempt & How to Catch Mass Resets

Event ID 4724 fires when someone resets another account's password. Learn the Subject/Target fields, the 4724 vs 4723 di…

Read more
Event ID

Event ID 4728: Member Added to a Global Group & Privilege Escalation Detection

Event ID 4728 fires when someone joins a security-enabled global group. Learn to catch Domain Admins additions and the a…

Read more
Glossary

What is Persistence? SOC Glossary

Persistence is the set of techniques an adversary uses to keep access to a compromised system after whatever gave them t…

Read more
Glossary

What is Least Privilege? SOC Glossary

The principle of least privilege states that users, processes, and systems should hold only the minimum access rights re…

Read more
Glossary

What is SIEM? SOC Glossary

Security Information and Event Management (SIEM) is a platform that aggregates, normalizes, and correlates log data from…

Read more
Career Path

SOC Analyst (Tier 1) Career Guide: Salary & Skills

Tier 1 SOC Analysts are the front line. You monitor alert queues, triage incoming detections, classify them as true or f…

Read more
Career Path

Incident Responder Career Guide: Salary & Skills

Incident Responders lead the technical response when confirmed breaches happen. You coordinate containment, run forensic…

Read more
Technique

Account Manipulation (T1098): Detection Training

Account Manipulation keeps an already-compromised account usable by changing its properties rather than creating a new o…

Read more
Comparison

SOCSimulator vs. LetsDefend: Platform Comparison

SOCSimulator wins on operational realism. You get multi-tool shift simulation with SLA pressure, noise injection, and al…

Read more
Event ID

Windows Event ID Library: SOC Reference

Windows Security and Sysmon event IDs with simulated log samples, field tables, and tested detection queries.

Read more
Feature

Shift Mode: Real-Time SOC Simulation

Practice alert triage under realistic time pressure with SLA timers and noise injection.

Read more