Skip to main content
4662SecurityDS AccessSecurity tier 1

Event ID 4662: An operation was performed on an object

Event ID 4662 records an operation on an Active Directory object. A domain controller writes it only when a SACL entry matches the access. Its best-known use is DCSync detection: an account that is not a domain controller exercising a replication right, visible as a DS-Replication GUID in the Properties field.

What Triggers Event 4662 and What DCSync Looks Like in It

Event 4662 belongs to the Audit Directory Service Access subcategory and exists only on domain controllers. It fires when something performs an operation on a directory object and a system access control list entry on that object matches the operation. No SACL means no event, and a disabled subcategory means no event either, so an empty 4662 log proves nothing about whether DCSync is happening. Microsoft's guidance for domain controllers leaves Success auditing off for this subcategory and recommends Failure, because the volume on a busy DC is high. The detection value comes from a narrow, deliberate SACL, not from switching the whole subcategory on.

The classic complaint is a Security log drowning in 4662. The Microsoft Q&A thread on it lists normal directory operations and third-party applications that query AD as the usual causes. The mechanical reason is typically a SACL set on All Properties for Everyone, which turns every attribute read into an event. Read Property (0x10) against user objects from a monitoring or mail service is most of that volume. If you inherit a log like this, find the SACL before you touch the policy, because narrowing the SACL fixes the noise and keeps the events you want.

Read the event from the object outward. ObjectServer is DS. ObjectType is the schema class of the thing touched, written as a class GUID (user, group, domainDNS and groupPolicyContainer are the common ones). ObjectName is the distinguished name, or a GUID when the name cannot be resolved. HandleId ties the event to a 4661 handle request when there is one, and it is often 0x0. OperationType is normally Object Access. The Subject fields name the requester, and SubjectLogonId is the link back to the 4624 that opened the session.

Two fields carry the meaning. AccessMask is the sum of the rights exercised: 0x10 is Read Property, 0x20 Write Property, 0x100 Control Access, 0x10000 DELETE, 0x40000 WRITE_DAC and 0x80000 WRITE_OWNER. AccessList holds the same rights as message codes. Properties starts with the access type and continues with a tree of GUIDs naming the classes, attributes or property sets involved. To read a GUID, reorder the bytes of its first three groups, strip the hyphens, escape each byte pair with a backslash, and search schemaIDGUID under the Schema container with LDP. Property-set GUIDs are listed in the Rights-GUID column of Microsoft's extended rights reference.

DCSync is why most teams look at this event. A domain controller will hand password data to any principal holding the extended right DS-Replication-Get-Changes-All on the domain object, alongside DS-Replication-Get-Changes. Microsoft publishes the rights as 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2 (Get-Changes), 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2 (Get-Changes-All) and 89e95b76-444d-4c62-991a-0facbeda640c (Get-Changes-In-Filtered-Set). When Mimikatz lsadump or a similar tool asks a DC to replicate, the DC checks those rights and, if the domain root carries a matching audit entry, writes a 4662 with AccessMask 0x100 and the GUID inside Properties. MITRE tracks the behavior as T1003.006 and notes that members of Administrators, Domain Admins and Enterprise Admins, as well as DC computer accounts, can run it.

The sample on this page shows the shape: adm.lopez, a user account, using Control Access with the Get-Changes-All GUID against the domain object. Real tools produce a short burst, one event per right checked, inside a single second and one SubjectLogonId. One caution from the MITRE entry: lsadump also includes NetSync, which does the same job over a legacy replication protocol. Microsoft does not document the audit trail that path leaves, so test it in a lab before relying on the GUID filter alone.

4662 has no source address. It says who asked and which right was used, not from where. For DCSync that is the missing half of the story, because a request from a workstation and a request from a peer DC look identical in this event. Carry the SubjectLogonId to the 4624 on the same controller: a network logon (type 3) from an address that is not another domain controller is what separates an attack from replication.

Scope the SACL tightly. An audit entry on the domain root for the three replication rights, set for Everyone, is enough for DCSync and costs far less than auditing all property reads. A second entry on CN=AdminSDHolder,CN=System covering Write Property, WRITE_DAC and WRITE_OWNER watches the object that controls permissions on protected groups, another target Microsoft names for this event.

Event 4662 Fields

FieldWhat it tells youSimulated value
SubjectUserSidSID of the account that requested the operation.S-1-5-21-424242-1050
SubjectUserNameName of the account that requested the operation.adm.lopez
SubjectDomainNameDomain or computer name of the requesting account.CORP
SubjectLogonIdLogon session ID of the requester; correlates to the 4624 that opened the session.0x3c7a41
ObjectServerAlways DS for this event.DS
ObjectTypeSchema class of the accessed object, written as a class GUID.%{19195a5b-6da0-11d0-afd3-00c04fd930c9}
ObjectNameDistinguished name of the accessed object.DC=corp,DC=socsimulator,DC=example
OperationTypeType of operation, normally Object Access.Object Access
HandleIdHandle to the object; 0x0 when not captured.0x0
AccessListAccess types used, as message codes that mirror AccessMask.%%7688
AccessMaskHexadecimal mask of the rights used; 0x100 is Control Access.0x100
PropertiesAccess type followed by the tree of class or property-set GUIDs the operation touched.%%7688 {1131f6ad-9c07-11d1-f79f-00c04fc2dcd2} {19195a5b-6da0-11d0-afd3-00c04fd930c9}
AdditionalInfoAdditional information; '-' in the Microsoft sample.-

Inspect Event 4662 Values

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

Example Event 4662 Log

A representative Security entry for Event 4662, 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>4662</EventID>
    <Version>0</Version>
    <Level>0</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8020000000000000</Keywords>
    <TimeCreated SystemTime="2025-07-22T17:42:55.000Z" />
    <EventRecordID>627097</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="SubjectDomainName">CORP</Data>
    <Data Name="SubjectLogonId">0x3c7a41</Data>
    <Data Name="ObjectServer">DS</Data>
    <Data Name="ObjectType">%{19195a5b-6da0-11d0-afd3-00c04fd930c9}</Data>
    <Data Name="ObjectName">DC=corp,DC=socsimulator,DC=example</Data>
    <Data Name="OperationType">Object Access</Data>
    <Data Name="HandleId">0x0</Data>
    <Data Name="AccessList">%%7688</Data>
    <Data Name="AccessMask">0x100</Data>
    <Data Name="Properties">%%7688 {1131f6ad-9c07-11d1-f79f-00c04fc2dcd2} {19195a5b-6da0-11d0-afd3-00c04fd930c9}</Data>
    <Data Name="AdditionalInfo">-</Data>
  </EventData>
</Event>

Detecting Event 4662

DCSync: replication rights exercised by an account that is not on the domain controller and sync allowlist

SPL assumes XML-rendered Security events (sourcetype XmlWinEventLog:Security) so field names match EventData. The allowlist holds DC computer accounts and your directory sync account. Lucene is the base filter; apply the allowlist in your SIEM.

index=wineventlog sourcetype=XmlWinEventLog:Security EventCode=4662
| where match(Properties, "(?i)1131f6aa-9c07-11d1-f79f-00c04fc2dcd2|1131f6ad-9c07-11d1-f79f-00c04fc2dcd2|89e95b76-444d-4c62-991a-0facbeda640c")
| lookup replication_allowlist.csv SubjectUserName OUTPUT allowed
| where isnull(allowed)
| table _time, host, SubjectDomainName, SubjectUserName, SubjectLogonId, ObjectName, AccessMask, Properties

Two or more distinct replication rights from one logon session inside a minute (tool-shaped DCSync)

Aggregates by SubjectLogonId so a single burst from one session stands out. Raise the threshold to 3 if your environment legitimately checks two rights at once.

index=wineventlog sourcetype=XmlWinEventLog:Security EventCode=4662
| rex field=Properties "(?i)(?<repl_guid>1131f6aa-9c07-11d1-f79f-00c04fc2dcd2|1131f6ad-9c07-11d1-f79f-00c04fc2dcd2|89e95b76-444d-4c62-991a-0facbeda640c)"
| where isnotnull(repl_guid)
| bin _time span=1m
| stats dc(repl_guid) as rights, count by _time, host, SubjectUserName, SubjectLogonId
| where rights >= 2

Write Property, DELETE, WRITE_DAC or WRITE_OWNER against the AdminSDHolder object

AccessMask is a sum, so a combined request such as 0x40020 will not match these exact values; add the combinations you see in your environment. ObjectName can be a GUID instead of a DN when it cannot be resolved.

index=wineventlog sourcetype=XmlWinEventLog:Security EventCode=4662 ObjectServer=DS AccessMask IN ("0x20", "0x10000", "0x40000", "0x80000")
| where like(ObjectName, "%CN=AdminSDHolder,CN=System,%")
| table _time, host, SubjectUserName, SubjectLogonId, ObjectName, AccessMask, Properties

True Positive vs False Positive

Start with who the Subject is. Domain controller computer accounts end in a dollar sign and replicate constantly, so they are the expected population for the replication GUIDs. The next group is directory synchronization: the MSOL_ account that Microsoft Entra Connect creates holds replication rights by design, and some migration, backup and identity-governance products ask for the same. Build the allowlist from the permissions on the domain object, not from what the log shows this week. A list built from the log quietly approves whatever the attacker did first.

A true positive reads like this: a user or service account that is not on the allowlist, AccessMask 0x100, one or more replication GUIDs in Properties, and a type 3 logon for the same SubjectLogonId from a workstation or server address, often an administrator account used outside its usual hours. Two replication GUIDs from one logon inside a minute is the tool-shaped version, and it is the cheapest rule to run first.

When you get a hit, the question that sets severity is how the account obtained the right. Accounts rarely hold DS-Replication-Get-Changes-All by accident; someone granted it. Look for a 5136 on the domain object changing nTSecurityDescriptor shortly before the first 4662, or a 4670 permissions change on the same object. An attacker with write access to the domain root's ACL can grant the right to an account they control, run DCSync, and remove the entry afterwards. The ACL change is evidence that survives even when replication events were never audited.

Treat a confirmed DCSync as domain-level exposure. The attacker can read any hash the directory holds, krbtgt included, so containment is about what that data enables, such as forged tickets and password reuse, and not about the one host the request came from. Scope the rest of the work with the 4768 and 4769 events that follow, looking for tickets requested by accounts whose passwords the actor now holds.

Failure events matter as well. A 4662 audit failure from a low-privilege account against a sensitive object is an attempt that did not work, often reconnaissance by a tool that probes rights before using them. Microsoft recommends Failure auditing for this subcategory on domain controllers, so you will usually have these even when Success is off.

MITRE ATT&CK® Techniques

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

Practice Investigating Event 4662

Reading about an operation was performed on an object is one thing. Working the detection inside a live console is another. These free SOCSimulator operations cover the attack techniques Event 4662 helps you detect:

Start investigating free

Frequently Asked Questions

What does event ID 4662 mean?
A domain controller logged an operation on an Active Directory object. It appears only when the Audit Directory Service Access subcategory is on and a SACL on the object matches the access. The event names the requester, the object, the rights used (AccessMask) and, in Properties, the class or property GUIDs involved.
Why is my security log filled with 4662 events?
Because a SACL somewhere audits more than you intended, usually All Properties for Everyone, so every attribute read by a service or application becomes an event. Find the audit entry on the object and narrow it to the access types and properties you care about, such as Control Access with the replication GUIDs, instead of disabling the subcategory.
How do I detect DCSync with event 4662?
Match Properties against the DS-Replication-Get-Changes (1131f6aa...), Get-Changes-All (1131f6ad...) and Get-Changes-In-Filtered-Set (89e95b76...) GUIDs, then exclude domain controller and directory sync accounts. Correlate SubjectLogonId with the 4624 on the same controller to find the source address, because 4662 does not record one.
Which fields does event 4662 contain?
SubjectUserSid, SubjectUserName, SubjectDomainName and SubjectLogonId for the requester, then ObjectServer, ObjectType, ObjectName, OperationType, HandleId, AccessList, AccessMask, Properties and AdditionalInfo. AccessMask and Properties hold the detection value; the rest identify who and what.

Sources

“Field schema, AccessMask table, Properties GUID decoding procedure, SACL precondition and monitoring recommendations for 4662”

“Subcategory is DC-only with high volume; recommended Failure auditing and no General Success on domain controllers”

“DS-Replication-Get-Changes-All Rights-GUID 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2, the control access right that allows replication of secret domain data”

“DCSync (T1003.006): which principals can run it, Mimikatz lsadump and NetSync over a legacy replication protocol”

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

OS Credential Dumping (T1003): Detection Training

Credential dumping harvests hashes or plaintext secrets from where the OS stores them: LSASS memory, the SAM hive, cache…

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
Feature

Operations: Guided Training Operations

Structured CTF-style investigation operations covering real-world attack scenarios.

Read more
Blog

SOCSimulator Blog: Security Training Insights

Articles on SOC analyst skills, detection engineering, and career development.

Read more
Feature

SOCSimulator Pricing: Free Plan Available

Compare free and Pro tiers.

Read more