Skip to main content
4728SecurityAccount ManagementSecurity tier 1

Event ID 4728: A member was added to a security-enabled global group

Event ID 4728 records that an account was added to a security-enabled global group such as Domain Admins. Matching TargetUserName or TargetSid against Domain Admins and other tracked global groups turns a routine membership-change log into a privilege-escalation alert. Enterprise Admins and Schema Admins are universal groups, so their additions log as 4756, not 4728.

What Triggers Event 4728

Event 4728 fires when an account is added as a member of a security-enabled global group. The global scope matters as much as the event itself: global groups can hold members from their own domain and be granted rights anywhere in the forest, which is structurally different from a local group scoped to a single machine's SAM database, that is 4732's territory, not this event's. A global-group addition is, by construction, a forest-wide reach change, not a single-machine one.

SubjectUserSid, SubjectUserName, and SubjectLogonId identify who requested the add, correlating back to their own 4624 logon session. MemberSid and MemberName identify the account being added, and TargetSid and TargetUserName identify the group receiving the new member. PrivilegeList is present in the schema but frequently shows as a dash in practice, since the specific privileges exercised during the operation are not always captured by the underlying audit subsystem; treat it as a bonus field when populated rather than something to depend on.

The group's identity is where the real severity signal lives, and Windows makes this checkable without any guesswork: the built-in high-privilege groups carry well-known relative identifiers, RIDs, that never change across domains. Domain Admins is RID 512 and Group Policy Creator Owners is RID 520. Matching TargetSid's trailing RID, or simply matching TargetUserName against those names directly, turns a generic group-membership-changed event into an unambiguous privilege-escalation signal the moment either group receives a new member. Enterprise Admins (519) and Schema Admins (518) are the groups people expect to see here, but they are universal groups in the forest root domain, so adding a member to them logs as 4756 and the alert for them belongs there.

The forest-wide reach of a global group compounds with whatever that group's rights actually grant. An addition to Domain Admins is an immediate, direct escalation to full domain control. An addition to a narrower, custom global group used to grant access to a specific application or file share is lower severity individually, but still worth tracking, since custom global groups accumulate rights over time in ways that are easy to lose track of without a periodic membership review.

One pattern is specific to global-group additions and worth calling out on its own: an add followed by a remove of the same MemberSid within a short window, minutes rather than hours. Some attack tooling and living-off-the-land scripts grant an account temporary membership in a privileged group just long enough to use the resulting elevated token for one action, a scheduled task, a remote command, a credential dump, then remove the membership immediately afterward specifically to shorten the window during which a defender reviewing current group membership would see anything out of place. This shape is invisible to a point-in-time membership audit and only shows up by correlating 4728 against its counterpart, 4729, member removed.

Event 4728 Fields

FieldWhat it tells youSimulated value
SubjectUserSidSID of the account that requested the add-member operation.S-1-5-21-424242-1050
SubjectUserNameAccount name that requested the add-member operation.adm.lopez
SubjectLogonIdLogon ID correlating this change back to the Subject's 4624 logon.0x5a07d2
MemberSidSID of the account added to the group; the only reliable identifier of the new member.S-1-5-21-424242-1581
MemberNameDistinguished name of the added account.CN=m.okafor,CN=Users,DC=corp,DC=socsimulator,DC=example
TargetSidSID of the group that received the new member; domain-wide groups like Domain Admins carry a well-known RID (512) under the domain SID.S-1-5-21-424242-512
TargetUserNameName of the group that received the new member, for example Domain Admins or Enterprise Admins.Domain Admins
PrivilegeListPrivileges used during the operation; often not captured and shown as a dash.-

Inspect Event 4728 Values

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

Example Event 4728 Log

A representative Security entry for Event 4728, 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>4728</EventID>
    <Version>0</Version>
    <Level>0</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8020000000000000</Keywords>
    <TimeCreated SystemTime="2025-03-03T03:34:39.000Z" />
    <EventRecordID>925735</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">0x5a07d2</Data>
    <Data Name="MemberSid">S-1-5-21-424242-1581</Data>
    <Data Name="MemberName">CN=m.okafor,CN=Users,DC=corp,DC=socsimulator,DC=example</Data>
    <Data Name="TargetSid">S-1-5-21-424242-512</Data>
    <Data Name="TargetUserName">Domain Admins</Data>
    <Data Name="PrivilegeList">-</Data>
  </EventData>
</Event>

Detecting Event 4728

Member added to Domain Admins or Group Policy Creator Owners (RID 512/520); Enterprise and Schema Admins additions log as 4756

Lucene is the base filter; match the well-known RID suffix (-512, -520) on TargetSid in your SIEM.

index=wineventlog sourcetype=WinEventLog:Security EventCode=4728
| where match(Group_Name, "(?i)^(domain admins|group policy creator owners)$")
| table _time, Subject_Account_Name, Member_Name, Group_Name

Add followed by remove of the same member within minutes (transient privilege grab, common in automated attack tooling)

Lucene is the base filter; the 4728-to-4729 same-member correlation runs in your SIEM.

index=wineventlog sourcetype=WinEventLog:Security (EventCode=4728 OR EventCode=4729)
| transaction Member_SID maxspan=15m
| where mvcount(EventCode)>1

Global group membership change by an account outside the approved group-management team

index=wineventlog sourcetype=WinEventLog:Security EventCode=4728
| lookup group_admins.csv Subject_Account_Name OUTPUT is_group_admin
| where isnull(is_group_admin)
| table _time, Subject_Account_Name, Member_Name, Group_Name

True Positive vs False Positive

Additions to custom, lower-privilege global groups happen routinely as part of onboarding, project-access provisioning, and role changes, and the baseline for those groups is genuinely high volume and largely benign. The triage approach that scales is tiering groups by sensitivity rather than treating every 4728 identically: a small, explicitly tracked list of high-privilege built-in and custom groups gets alerted on every single addition, while the broader population of lower-sensitivity groups gets reviewed periodically rather than in real time.

For the tracked high-privilege tier, Domain Admins, Group Policy Creator Owners, and any custom global group your organization has designated as equivalently sensitive (keep Enterprise Admins and Schema Admins on the same list, watched through 4756), the honest baseline is that legitimate additions are rare and go through a documented change process. Any addition outside that process, from any Subject, warrants investigation before the new member does anything else, because the cost of confirming a legitimate but undocumented change is far lower than the cost of missing a real one.

Subject identity remains a strong secondary signal even within the tracked tier: additions made by a small, known group-management team during business hours carry a different prior than the same addition made by an account that has never touched group membership before, or by a service account with no documented group-administration role. An allowlist of accounts authorized to manage each sensitivity tier of group turns this into a mechanical check rather than a judgment call for every event.

The add-then-remove-in-minutes pattern deserves its own alert independent of group sensitivity tier, because the pattern itself, not just the destination group, is the signal. A membership that exists for under fifteen minutes was very likely never meant to be reviewed by anyone; that is not how legitimate access provisioning works, where memberships persist until a role changes or a project ends. Any occurrence of this pattern against a privileged group should be treated as a probable token grab regardless of which Subject account performed it, and investigated for what actions were taken during the brief window of elevated membership.

False positives in the high-privilege tier are genuinely rare precisely because legitimate changes there should already be uncommon and well documented; a false positive here is more often a real change that simply was not logged in the change-management system it should have been, which is itself worth fixing even when the addition turns out to be legitimate. In the broader tier of custom groups, false positives are the norm, and the fix is tiering by sensitivity rather than tuning thresholds on an event that, for most groups, is simply routine access administration.

MITRE ATT&CK® Techniques

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

Practice Investigating Event 4728

Reading about a member was added to a security-enabled global group is one thing. Working the detection inside a live console is another. These free SOCSimulator operations cover the attack techniques Event 4728 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
Credential Harvesting: The Lookalike Login

Credential Harvesting: The Lookalike Login

Investigate an adversary-in-the-middle (AiTM) credential phishing campaign that lured an employee to a lookalike Microsoft 365 login page. Working entirely from SIEM logs, you will identify the lookalike domain, reconstruct the multi-hop redirect chain through a compromised legitimate site, uncover a secondary phishing wave against another employee, and confirm account takeover in Azure AD sign-in logs via impossible travel and session-token replay. You finish by choosing the containment action that actually evicts an attacker holding a valid session token. Foundational skills for SOC analysts in lookalike-domain analysis and identity-centric incident response.

20m·257 tasks
View Operation
The Template That Read the Disk

The Template That Read the Disk

The file-transfer portal that Tideglow Logistics' partners upload to spent a morning returning host files it was never meant to publish, and finished it running an administrator session nobody had logged into. The root cause is CVE-2024-4040 in CrushFTP 10.6.0. Walk the access logs and firewall traffic step by step to trace how a client holding no credentials turned a request parameter into a read of the host, and that read into a takeover.

25m·256 tasks
View Operation
Start investigating free

Frequently Asked Questions

What does event ID 4728 mean?
It means an account was added to a security-enabled global group. Global groups can hold members from their own domain and be granted access anywhere in the forest, which is why an addition to a high-privilege global group like Domain Admins is one of the highest-signal privilege-escalation events available.
What is the difference between event 4728 and event 4732?
4732 covers security-enabled local groups, scoped to a single machine's SAM database. 4728 covers security-enabled global groups, which are domain-wide and can be granted rights across the entire forest, making 4728 additions to built-in groups like Domain Admins categorically higher severity.
Why do attackers remove a member from a group right after adding them?
Some attack tooling and living-off-the-land scripts add an account to a privileged group just long enough to use the elevated token for one action, then remove it to shorten the window a defender would see the account listed as a member. The 4728-then-4729 pair for the same MemberSid within minutes is the tell.

Sources

“Audit Security Group Management subcategory, which generates the security-enabled global group member-added event (4728) and its counterparts”

“Field schema of the sibling group-membership event (Subject/Member/Target group), the same layout 4728 uses for global groups”

“Well-known relative identifiers: 512 Domain Admins and 520 Group Policy Creator Owners (global groups, logged as 4728); 518 Schema Admins and 519 Enterprise Admins (universal groups, logged as 4756)”

Event ID

Event ID 4732: Local Group Member Added & How to Detect It

Event ID 4732 logs a member added to a security-enabled local group, Administrators included. Decode the Subject, Member…

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 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
Technique

Valid Accounts (T1078): Detection Training

Valid Accounts is among the hardest abuses to spot because nothing is technically broken, the adversary simply authentic…

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