Skip to main content
5136SecurityDS AccessSecurity tier 1

Event ID 5136: A directory service object was modified

Event ID 5136 records that an attribute of an Active Directory object was changed, and event 5137 records that an object was created. A domain controller logs both only where a SACL matches. Each change appears as a Value Deleted and Value Added pair sharing one correlation ID, so you can see the old and new value.

What Triggers Event 5136, and Where 5137 Fits

Event 5136 is the directory change record of the Audit Directory Service Changes subcategory. A domain controller writes it every time an attribute of an Active Directory object is modified, provided the object carries a SACL entry that audits Write on that attribute. One Microsoft caveat: some objects and properties do not generate audit events at all because of settings on the object class in the schema. The subcategory only logs on domain controllers, volume is high there, and Microsoft recommends Success auditing for it. It has no failure events. If you want to see attempts that were refused, you have to look at the Directory Service Access subcategory and its 4662 failures.

A single change is not a single event. Microsoft describes the typical pattern as two 5136 events per action, one with OperationType Value Deleted (%%14675) holding the previous value and one with Value Added (%%14674) holding the new one. OpCorrelationID is the same on both, and it is also shared with any 5137 or object-move event produced by the same LDAP operation. Alert on Value Added because it carries the new value, then join to the Value Deleted event with the same correlation ID when you need the before picture. Adding one value to a multi-valued attribute such as servicePrincipalName produces only the Value Added half.

The fields describe the object and the change. DSName is the domain and DSType is Active Directory Domain Services. ObjectDN is the distinguished name, ObjectGUID is the immutable identifier you can resolve with an LDP search after reordering its bytes, and ObjectClass is the schema class, such as user, group, domainDNS or groupPolicyContainer. AttributeLDAPDisplayName names the attribute, AttributeSyntaxOID gives its storage type (2.5.5.12 is a Unicode string, 2.5.5.9 an integer, 2.5.5.15 a security descriptor, 2.5.5.1 a distinguished name) and AttributeValue holds the value. AppCorrelationID is always a hyphen. Like 4662, the event has no source address; take SubjectLogonId to the 4624 on the same controller to find where the LDAP bind came from.

In the sample, j.smith, a standard user, adds the servicePrincipalName HTTP/inv-update.corp.socsimulator.example to the service account svc.inventory. An SPN on a user account makes that account a Kerberoasting target (MITRE T1558.003): the attacker asks for a service ticket and cracks it offline. The 4769 service ticket requests for that SPN that follow are the second half of the story. Nobody sets an SPN on a service account by accident, and the Subject is not an administrator.

Build a watchlist of attributes instead of auditing everything. servicePrincipalName on user objects covers targeted Kerberoasting. msDS-AllowedToActOnBehalfOfOtherIdentity and msDS-KeyCredentialLink are written to let a controlled principal act as, or authenticate as, the target; legitimate writers are rare enough to review each one. nTSecurityDescriptor on the domain root, the AdminSDHolder object and the privileged groups records ACL changes, which is how an account is granted replication rights before a DCSync that the 4662 page covers. gPLink on an OU or the domain links a Group Policy Object, and versionNumber on a groupPolicyContainer changes when someone edits a GPO.

That last point has a blind spot. MITRE notes that a GPO is a container plus files in the SYSVOL Policies folder, and the settings that do the damage, such as a scheduled task added to ScheduledTasks.xml, live in those files. A 5136 shows the link and the version bump, not the content. Pair it with file auditing on SYSVOL, 4663 or 5145, if you want the setting itself.

Event 5137 is the creation half of the same design, which is why it lives on this page. It fires when an object is created, but the SACL sits on the parent: an entry that audits the Create action for a class, for example creating Computer objects in an organizational unit. The fields match 5136 without the attribute and operation fields, and ObjectDN is the new object. Microsoft advises against auditing every creation; choose important containers and a few classes. Three are worth the cost. Computer objects created by anyone outside your provisioning accounts matter because the default machine account quota lets any authenticated user add computers, and a self-made computer account is a common first step in delegation attacks. New groupPolicyContainer objects mean a new GPO. And server or nTDSDSA objects in the Configuration partition are how a rogue domain controller registers itself, which MITRE lists among the detections for T1207.

Event 5136 Fields

FieldWhat it tells youSimulated value
OpCorrelationIDGroups all modifications made by one LDAP operation; shared with related 5137 and 5139 events.{6A1F3C52-9E0B-4B7D-8C21-5D7E4A90B3F6}
AppCorrelationIDAlways a hyphen; not in use.-
SubjectUserSidSID of the account that requested the modification.S-1-5-21-424242-1104
SubjectUserNameName of the account that requested the modification.j.smith
SubjectDomainNameDomain or computer name of the requesting account.CORP
SubjectLogonIdLogon session ID; correlates to the 4624 that opened the session.0x7c2e9d
DSNameName of the Active Directory domain where the object lives.corp.socsimulator.example
DSTypeDirectory service type, Active Directory Domain Services for this event.%%14676
ObjectDNDistinguished name of the modified object.CN=svc.inventory,OU=Service Accounts,DC=corp,DC=socsimulator,DC=example
ObjectGUIDImmutable GUID of the modified object.{B3D5A8E1-27C4-4F96-A0E2-71C9D4B5F803}
ObjectClassSchema class of the modified object.user
AttributeLDAPDisplayNameLDAP display name of the attribute that was changed.servicePrincipalName
AttributeSyntaxOIDSyntax OID of the attribute; 2.5.5.12 is a Unicode string.2.5.5.12
AttributeValueThe value that was added or deleted, depending on OperationType.HTTP/inv-update.corp.socsimulator.example
OperationType%%14674 is Value Added, %%14675 is Value Deleted.%%14674

Inspect Event 5136 Values

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

Example Event 5136 Log

A representative Security entry for Event 5136, 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>5136</EventID>
    <Version>0</Version>
    <Level>0</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8020000000000000</Keywords>
    <TimeCreated SystemTime="2025-12-07T15:54:36.000Z" />
    <EventRecordID>832271</EventRecordID>
    <Channel>Security</Channel>
    <Computer>WS-SIM-001.corp.socsimulator.example</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="OpCorrelationID">{6A1F3C52-9E0B-4B7D-8C21-5D7E4A90B3F6}</Data>
    <Data Name="AppCorrelationID">-</Data>
    <Data Name="SubjectUserSid">S-1-5-21-424242-1104</Data>
    <Data Name="SubjectUserName">j.smith</Data>
    <Data Name="SubjectDomainName">CORP</Data>
    <Data Name="SubjectLogonId">0x7c2e9d</Data>
    <Data Name="DSName">corp.socsimulator.example</Data>
    <Data Name="DSType">%%14676</Data>
    <Data Name="ObjectDN">CN=svc.inventory,OU=Service Accounts,DC=corp,DC=socsimulator,DC=example</Data>
    <Data Name="ObjectGUID">{B3D5A8E1-27C4-4F96-A0E2-71C9D4B5F803}</Data>
    <Data Name="ObjectClass">user</Data>
    <Data Name="AttributeLDAPDisplayName">servicePrincipalName</Data>
    <Data Name="AttributeSyntaxOID">2.5.5.12</Data>
    <Data Name="AttributeValue">HTTP/inv-update.corp.socsimulator.example</Data>
    <Data Name="OperationType">%%14674</Data>
  </EventData>
</Event>

Detecting Event 5136

servicePrincipalName or delegation attributes added by an account that is not a computer

Covers targeted Kerberoasting and resource-based delegation setup. SPL assumes sourcetype XmlWinEventLog:Security. The SecurityEvent table has no columns for these fields, so the KQL reads them out of EventData.

index=wineventlog sourcetype=XmlWinEventLog:Security EventCode=5136 AttributeLDAPDisplayName IN ("servicePrincipalName", "msDS-AllowedToActOnBehalfOfOtherIdentity", "msDS-KeyCredentialLink") NOT SubjectUserName="*$"
| where match(OperationType, "14674|Value Added")
| table _time, host, SubjectUserName, SubjectLogonId, ObjectClass, ObjectDN, AttributeLDAPDisplayName, AttributeValue

gPLink or versionNumber written on an OU, the domain or a GPO (linking and editing Group Policy)

This sees links and version bumps, not the settings, which live in SYSVOL files. Compare Subject against your GPO owners and change calendar.

index=wineventlog sourcetype=XmlWinEventLog:Security EventCode=5136 AttributeLDAPDisplayName IN ("gPLink", "versionNumber")
| where match(OperationType, "14674|Value Added")
| table _time, host, SubjectUserName, SubjectLogonId, ObjectClass, ObjectDN, AttributeLDAPDisplayName, AttributeValue

nTSecurityDescriptor written on the domain root, AdminSDHolder or a privileged group

An ACL change here is how an account is granted replication rights before DCSync. Pair a hit with 4662 on the same objects.

index=wineventlog sourcetype=XmlWinEventLog:Security EventCode=5136 AttributeLDAPDisplayName=nTSecurityDescriptor
| where match(OperationType, "14674|Value Added")
| where match(ObjectDN, "(?i)^DC=[^,]+(,DC=[^,]+)+$|^CN=AdminSDHolder,CN=System,|^CN=(Domain Admins|Enterprise Admins|Schema Admins),")
| table _time, host, SubjectUserName, SubjectLogonId, ObjectDN, AttributeValue

5137: computer, GPO or domain controller objects created outside the provisioning accounts

Needs a Create-action SACL on the parent container. provisioning_accounts is a lookup or watchlist you maintain. server and nTDSDSA objects are normal only during planned domain controller promotion.

index=wineventlog sourcetype=XmlWinEventLog:Security EventCode=5137 ObjectClass IN ("computer", "groupPolicyContainer", "server", "nTDSDSA")
| lookup provisioning_accounts.csv SubjectUserName OUTPUT allowed
| where isnull(allowed)
| table _time, host, SubjectUserName, SubjectLogonId, ObjectClass, ObjectDN

True Positive vs False Positive

Directory changes are mostly legitimate, so context decides. Computers register and refresh their own SPNs, which shows up as the computer account writing servicePrincipalName on itself. Provisioning and identity tooling updates dozens of attributes per joiner. Administrators use consoles that rewrite several attributes per click, and GPO owners link policies during change windows. Keep an allowlist of provisioning accounts, split by attribute, and a way to match changes against approved tickets.

The true positives have a different look. The Subject is an ordinary user or a service account writing an SPN or a delegation attribute on another account. An nTSecurityDescriptor value is added to the domain root by someone outside Domain Admins. A gPLink lands on the domain object or the Domain Controllers OU outside any change window. A 5137 for a computer object by a standard user is followed within minutes by a 5136 on a different computer's msDS-AllowedToActOnBehalfOfOtherIdentity under the same SubjectLogonId. Because OpCorrelationID and SubjectLogonId link these, you can chain them without guessing.

Triage in four moves. Read the Deleted and Added pair to see what changed. Check the Subject against the change record. Take SubjectLogonId to the 4624 to find the source address and authentication package. Then follow the consequence: 4769 requests for a newly set SPN, 4662 replication rights after an ACL change, or a Group Policy refresh effect on the hosts under the linked OU. If an SPN was added to a user account, treat that account's password as exposed to offline cracking and rotate it after you restore the previous value.

Coverage is where this event fails quietly. The SACL decides what is recorded and a missing entry looks exactly like a quiet directory. Make a harmless test change on a monitored object, such as a description on a test user, and confirm that a Value Added event arrives from every domain controller you collect. Any controller can accept the write, so collect the log from all of them and not just the one you happen to query.

MITRE ATT&CK® Techniques

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

Practice Investigating Event 5136

Reading about a directory service object was modified is one thing. Working the detection inside a live console is another. These free SOCSimulator operations cover the attack techniques Event 5136 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 is event ID 5136?
It records that an Active Directory object was modified. A domain controller writes it when an attribute changes on an object whose SACL audits Write for that attribute, and it names the account, object, attribute, value and operation type. A change normally produces a Value Deleted event and a Value Added event.
Why do I see two 5136 events for one change?
Modifying a value is logged as a delete of the old value and an add of the new one. The Value Deleted event holds the previous value and the Value Added event holds the new one, and both share an OpCorrelationID. Alert on Value Added and join to the deleted event when you need the old value.
Will event ID 5136 be logged only on the DC where the object was modified?
It is written by the domain controller that handled the write, and only if the audit policy and the object's SACL are in place. Any controller can accept an LDAP write, so enable the subcategory on all of them and collect all their Security logs.
What is the difference between event 5136 and event 5137?
5136 means an attribute of an existing object changed. 5137 means an object was created. Both come from Audit Directory Service Changes and share the OpCorrelationID field, but 5137 depends on a SACL on the parent container that audits the Create action for a class.
How do I detect a malicious GPO change with 5136?
Watch gPLink on OUs and the domain, and versionNumber on groupPolicyContainer objects, for Value Added events from accounts outside your GPO owners. A 5137 for a new groupPolicyContainer is a new GPO. The settings themselves sit in SYSVOL files, so add file auditing there if you need the content.

Sources

“5136 field schema, Value Added and Value Deleted behavior, OpCorrelationID, syntax OID table, and monitoring recommendations”

“5137 is generated only when the parent object has a Create-action SACL entry for a class; fields; advice to audit specific classes and containers”

“Subcategory is DC-only with high volume, requires SACLs, has no failure events, and may skip some objects and properties per schema settings”

“GPOs are containers plus files under SYSVOL Policies; malicious GPO modification can deploy scheduled tasks and other behaviors”

“Rogue domain controller registration creates server and nTDSDSA objects in the Configuration partition”

“T1558.003 Kerberoasting: requesting service tickets for accounts with an SPN and cracking them offline”

Event ID

Event ID 4662: AD Object Access and DCSync Detection

Event ID 4662 logs operations on Active Directory objects. Decode AccessMask and Properties, match the DCSync replicatio…

Read more
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
Glossary

What is Privilege Escalation? SOC Glossary

Privilege escalation is an attacker gaining rights they were never given, after they already have a foothold. Vertical e…

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 SIEM? SOC Glossary

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

Read more
Career Path

Detection Engineer Career Guide: Salary & Skills

Detection Engineers build the rules, analytics, and automated workflows that determine what the SOC can see. You transla…

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
Technique

Rogue Domain Controller (T1207): Detection Training

A rogue domain controller attack, usually called DCShadow, registers a machine as a domain controller just long enough t…

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