Skip to main content
4720SecurityAccount ManagementSecurity tier 1

Event ID 4720: A user account was created

Event ID 4720 fires on Windows Server and workstations every time a new local or domain user account is created, logged to the Security channel under Audit User Account Management. It records who created the account (SubjectUserName) and who was created (TargetUserName), plus initial account attributes analysts use to spot backdoor accounts fast.

What Triggers Event 4720

Event 4720 belongs to the Audit User Account Management subcategory and fires the instant a new user security principal is created, whether that principal ends up as a domain account on a controller, a local account on a member server, or a local account on a plain workstation.

The event lands in the Security channel, generated by Microsoft-Windows-Security-Auditing, and it captures the state of the account at the moment of creation rather than any later change. That distinction matters because a single provisioning action in Active Directory Users and Computers, PowerShell's New-ADUser, net user /add, or a GUI wizard on a standalone box all collapse into the same event ID with the same shape.

The Subject fields (SubjectUserName, SubjectDomainName, SubjectUserSid, SubjectLogonId) describe the operator who ran the create operation, not the account being created. TargetUserName and TargetSid (recorded under the New Account section as Account Name and Security ID in the raw XML, but rendered as TargetUserName/TargetSid in most SIEM parsers) describe the account that now exists.

Conflating these two is the single most common analyst mistake with this event: SubjectUserName tells you which admin, service account, or compromised credential performed the provisioning; TargetUserName tells you the identity that now has a foothold. A helpdesk technician creating ksmith is SubjectUserName=jdoe.admin, TargetUserName=ksmith. An attacker who has already popped a domain admin account and stands up a backdoor identity produces the same shape but with a very different Subject.

Whether the created object is local or domain-scoped is inferred from context, not a dedicated boolean field. On a domain controller, 4720 for a domain user shows TargetDomainName as the AD domain name and the event correlates with directory replication. On a member server or workstation, a local account creation shows TargetDomainName as the machine's own NetBIOS name, and SAM (not AD) owns the object.

Analysts triaging fleet-wide 4720 volume should always split by whether the emitting host is a domain controller, because local-account creation on a DC is close to never legitimate, while local-account creation on a workstation happens for benign reasons (local admin recovery accounts, imaging tools, some legacy line-of-business installers).

The event's Attributes block is where the real diagnostic value sits. SamAccountName and DisplayName describe how the account presents; UserPrincipalName gives the login-style identity that should map to a real mailbox for domain accounts. HomeDirectory, HomePath, ScriptPath, ProfilePath, and UserWorkstations are almost always empty (rendered as a dash) for a freshly created account, because these get populated by later 4738 (account changed) events, not at creation time.

PasswordLastSet shows whether a password was set during creation or deferred; AccountExpires flags whether the account was built with a built-in expiration, which legitimate permanent employee accounts almost never have. PrimaryGroupId should read 513 (Domain Users, or the local equivalent) for a normal user; any other value at creation time is unusual enough to warrant a second look.

OldUacValue is always 0x0 because the account did not exist before, while NewUacValue encodes the initial account-control flags (disabled/enabled, password-not-required, don't-expire-password, and so on) as a bitmask, which is why the human-readable UserAccountControl string alongside it matters more for quick triage than decoding the hex by hand.

Event 4720 rarely appears alone. It is the first event in a predictable creation sequence a SOC learns to read as a unit. Immediately or shortly after 4720, a 4722 (account enabled) typically follows if the account was not created already-enabled, because many provisioning tools create disabled and then flip it on once the rest of the profile is populated.

A 4724 (attempt to reset password) or a password set during creation follows to give the account usable credentials. If the account is meant to carry elevated rights, a 4728 (member added to a global security group, most notably Domain Admins) or 4732 (member added to a local security group, notably local Administrators) shows up next, sometimes within seconds.

A legitimate onboarding workflow spreads these events across minutes to hours as a ticketing system walks through steps; an attacker standing up a persistence account frequently compresses the whole sequence, 4720 through a privileged 4728, into a handful of seconds because it is scripted.

On a domain controller, 4720 sits next to the directory-service events that come from AD replication and schema writes, but the Security-log event itself is generated locally on whichever DC processed the create request, then replicates the resulting object, not the event, to peers.

On a workstation or member server, 4720 is one of the few Account Management events an analyst expects to see at all outside of imaging day or a local recovery procedure, which is exactly why unexpected local 4720s on servers deserve automatic escalation.

Attackers who have already obtained privileged access use 4720 to build a backdoor identity that survives password resets on the compromised account they originally used to get in, and that blends into the noise of routine HR-driven provisioning if named carelessly. Because the event captures the creating Subject, an attacker using a stolen but legitimate admin credential produces a 4720 that looks procedurally correct even though the intent is malicious, which is why field-level attributes (password-never-expires flags, off-hours timestamps, PrimaryGroupId anomalies) carry more triage weight than the mere presence of the event.

Event 4720 Fields

FieldWhat it tells youSimulated value
SubjectUserSidSID of the account that performed the create operation.S-1-5-21-424242-846171
SubjectUserNameName of the admin, service account, or credential that created the account.svc.inventory
SubjectDomainNameDomain or computer name of the Subject.corp.socsimulator.example
SubjectLogonIdLogon session ID of the Subject, useful for correlating back to their 4624 logon.simulated-subjectlogonid-54A8A7
TargetUserNameSAM account name of the newly created account.j.smith
TargetDomainNameDomain (or local machine name) the new account belongs to.corp.socsimulator.example
TargetSidSID assigned to the newly created account.S-1-5-21-424242-931729
SamAccountNamePre-Windows 2000 logon name of the new account.a.chen
UserPrincipalNameInternet-style login name; should map to a real mailbox for domain accounts.simulated-userprincipalname-406DD9
PrimaryGroupIdRID of the account's primary group; 513 (Domain/Local Users) is the normal value at creation.0x77C5
PasswordLastSetWhether a password was set at creation or deferred to a later 4724 event.simulated-passwordlastset-077980
AccountExpiresConfigured expiration date; permanent accounts should read never.simulated-accountexpires-8B1163
OldUacValueAlways 0x0 for new accounts since no prior state exists.simulated-olduacvalue-F56DF2
NewUacValueBitmask of initial account-control flags (disabled, password-never-expires, and similar).simulated-newuacvalue-3A5B53

Inspect Event 4720 Values

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

Example Event 4720 Log

A representative Security entry for Event 4720, 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>4720</EventID>
    <Version>0</Version>
    <Level>0</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8020000000000000</Keywords>
    <TimeCreated SystemTime="2025-09-14T05:49:18.000Z" />
    <EventRecordID>223587</EventRecordID>
    <Channel>Security</Channel>
    <Computer>WS-SIM-001.corp.socsimulator.example</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="SubjectUserSid">S-1-5-21-424242-846171</Data>
    <Data Name="SubjectUserName">svc.inventory</Data>
    <Data Name="SubjectDomainName">corp.socsimulator.example</Data>
    <Data Name="SubjectLogonId">simulated-subjectlogonid-54A8A7</Data>
    <Data Name="TargetUserName">j.smith</Data>
    <Data Name="TargetDomainName">corp.socsimulator.example</Data>
    <Data Name="TargetSid">S-1-5-21-424242-931729</Data>
    <Data Name="SamAccountName">a.chen</Data>
    <Data Name="UserPrincipalName">simulated-userprincipalname-406DD9</Data>
    <Data Name="PrimaryGroupId">0x77C5</Data>
    <Data Name="PasswordLastSet">simulated-passwordlastset-077980</Data>
    <Data Name="AccountExpires">simulated-accountexpires-8B1163</Data>
    <Data Name="OldUacValue">simulated-olduacvalue-F56DF2</Data>
    <Data Name="NewUacValue">simulated-newuacvalue-3A5B53</Data>
  </EventData>
</Event>

Detecting Event 4720

New account created directly on a domain controller

Base filter; scope to your DC host group in the SIEM.

index=wineventlog EventCode=4720 [| inputlookup domain_controllers.csv | fields host]
| stats count min(_time) as first_seen by TargetUserName, SubjectUserName, host
| where first_seen > relative_time(now(), "-1d")

Account creation followed by fast privileged group add

Lucene is the base filter; sequence the 4720 to 4728/4732 window in your SIEM.

index=wineventlog (EventCode=4720 OR EventCode=4728 OR EventCode=4732)
| transaction TargetUserName maxspan=5m startswith=(EventCode=4720) endswith=(EventCode=4728 OR EventCode=4732)
| where duration<300

Account creation outside the change window by a non-helpdesk Subject

index=wineventlog EventCode=4720
| eval hour=strftime(_time,"%H")
| where hour<7 OR hour>19
| search NOT [| inputlookup helpdesk_accounts.csv | fields SubjectUserName]

New account name resembling an existing privileged admin naming convention

index=wineventlog EventCode=4720
| eval near_match=if(match(TargetUserName, "(?i)adm[i1]n|adnim|admln"), 1, 0)
| where near_match=1

Local account created on a member server outside imaging or recovery workflow (Lucene filter only; confirm TargetDomainName equals the host's own computer name via a scripted field or your SIEM to establish local-vs-domain scope)

index=wineventlog EventCode=4720
| where TargetDomainName=host
| search NOT [| inputlookup domain_controllers.csv | fields host]
| stats count by host, TargetUserName, SubjectUserName

True Positive vs False Positive

The overwhelming majority of 4720 events in any environment above a handful of machines are benign: HR onboarding creates dozens of accounts a week in a mid-size org, IT re-images workstations and local admin recovery accounts appear, and provisioning automation (SCIM connectors, Okta/Entra sync jobs, Terraform-managed AD modules) creates service accounts on a schedule.

The benign pattern has a signature: SubjectUserName maps to a known service account or a small, stable set of helpdesk/IT identities; the event timestamp falls inside business hours or a documented maintenance window; PrimaryGroupId is 513; NewUacValue reflects a standard disabled-until-enabled or normal-account flag set; and the account gets its full profile (password set, group memberships, enablement) over a realistic span of minutes to a business day, not seconds.

The malicious pattern diverges on at least one of those axes, often several at once. A SubjectUserName that has never created an account before, or that belongs to a role with no provisioning responsibility (a developer's personal account, a service account normally used only for backups), is the strongest single signal, because it means the create operation came from a credential doing something outside its normal behavior.

Creation timestamps outside change windows, particularly 4720 events clustered late at night or on weekends when no provisioning ticket exists, should be checked against the change-management system as a matter of course.

Naming that mimics existing admin conventions but doesn't quite match, an extra digit, a transposed pair of letters, a near-duplicate of a real admin's SamAccountName, is a typosquat pattern attackers use specifically so the account survives a quick visual scan of Active Directory Users and Computers.

The most decisive triage signal is speed to privilege. A 4720 followed by a 4728 or 4732 adding the new account to Domain Admins, Enterprise Admins, or local Administrators within seconds to a few minutes, with no intervening ticket, is close to always malicious; legitimate privileged onboarding involves a review step that introduces real delay, and automated provisioning that does add users straight to privileged groups is rare enough that it should already be allowlisted by Subject and group pair, making any pair outside that allowlist an anomaly by construction.

Creation directly on a domain controller or another Tier-0 asset, rather than through the normal management workstation or provisioning server, is a second high-confidence signal, since even IT staff are expected to manage AD from designated admin hosts, not by RDPing into a DC and running dsa.msc locally.

Finally, the account-attribute fields themselves separate careless attackers from careful ones. AccountExpires set to never for what's supposed to be a temporary contractor or service account, PasswordLastSet showing a password configured to never expire, HomeDirectory or ProfilePath populated with values pointing outside normal corporate file-share conventions, or UserWorkstations left unrestricted where policy calls for workstation restriction, all shift the balance toward investigation.

None of these are proof by themselves. Analysts correlate the Subject's normal behavior baseline, the timing, the destination group, and the account attributes together, because a single off-pattern field is common noise from legitimate exceptions (contractor accounts genuinely do get non-expiring passwords sometimes), while three or four off-pattern signals stacking on one 4720 is the pattern that earns escalation.

MITRE ATT&CK® Techniques

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

Practice Investigating Event 4720

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

Start investigating free

Frequently Asked Questions

What does Event ID 4720 mean?
It means a new user account, local or domain, was created on the machine that logged the event. The event fires once at creation time and captures the account's starting attributes, not any later changes.
Does Event 4720 tell you if the account is local or domain?
Not with a dedicated field. You infer it from the emitting host and TargetDomainName: a domain controller logging a domain user shows the AD domain name, while a member server or workstation creating a local account shows its own machine name in that field.
Why is a newly created account often disabled at first?
Many provisioning tools create the account object before finishing the profile, so it starts disabled and gets enabled once the password and group memberships are set. That's why a 4722 (account enabled) commonly follows shortly after 4720.
What is the difference between SubjectUserName and TargetUserName in event 4720?
SubjectUserName is the admin, service account, or credential that performed the create operation. TargetUserName is the brand-new account that now exists. Confusing the two means misattributing who is actually responsible for a suspicious account.
How do attackers use event 4720 for persistence?
After gaining privileged access through some other foothold, attackers create a new account with 4720 as a backdoor that survives password resets or remediation on the original compromised credential. Naming the account to resemble a legitimate admin or service account, and adding it to a privileged group right after creation, are the common tells.

Sources

Official field list, subcategory (Audit User Account Management), and Microsoft's security monitoring recommendations for 4720.

T1136 (Create Account) is a current, non-deprecated Enterprise ATT&CK technique with Local/Domain/Cloud Account sub-techniques.

SigmaHQ's Local User Creation rule keys off EventID 4720 and scopes detection to servers rather than domain controllers to reduce false positives from privileged account management tooling.

Confirmed the 4720-to-4722 (account enabled) event pairing and the current #1 SERP result's coverage gaps used for information_gain.

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

Create Account (T1136): Detection Training

Creating a new account gives an adversary credentialed access that outlives the original foothold and needs no implanted…

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