Event ID 4799: A security-enabled local group membership was enumerated
Event ID 4799 records that a process listed the members of a specific security-enabled local group, most notably Administrators. Unlike 4798, which enumerates a user's memberships, 4799's TargetUserName is the group itself, and the highest-value alert pairs a 4799 on Administrators with a 4732 add for the same account minutes later.
What Triggers Event 4799
Event 4799 fires whenever a process lists the members of a specific security-enabled local group, most commonly the built-in Administrators group. The direction of the query is the entire distinction from its sibling event, 4798: here, TargetUserName identifies the group being inspected, Administrators, Remote Desktop Users, Backup Operators, or any other local group, while 4798's TargetUserName identifies a user account instead. Confusing the two fields' meaning across the two events is the single most common mistake analysts make when working with this pair.
SubjectUserSid, SubjectUserName, and SubjectLogonId identify who ran the enumeration, correlating back to that Subject's own 4624 logon. TargetSid carries the group's SID, and for built-in groups this SID sits under the well-known S-1-5-32 prefix, S-1-5-32-544 for Administrators specifically, a value stable across every Windows machine regardless of hostname or domain. CallerProcessId and CallerProcessName name the executable performing the query, the same field that carries the real detection value for 4798 and does so again here.
As with 4798, this event fires constantly from entirely benign sources: management agents checking local admin membership as part of routine compliance reporting, installer packages verifying the current user's privilege level, and legitimate administrators using net localgroup administrators for ordinary troubleshooting. Raw occurrence tells you almost nothing; CallerProcessName, target-group sensitivity, and enumeration breadth are what turn this into a usable signal.
The Administrators group specifically deserves elevated scrutiny compared to lower-privilege local groups, since knowing exactly who holds local admin rights on a given host is precisely the reconnaissance question an attacker needs answered before deciding whether that host is worth escalating on or moving laterally from. A query against Administrators from a known recon binary, net.exe, net1.exe, an interactive PowerShell session, on a host where that kind of manual enumeration is not part of normal operations is a meaningfully stronger signal than the same query against a lower-sensitivity group like Remote Desktop Users.
Breadth works the same way it does for 4798, inverted to groups instead of users: one Subject account enumerating many distinct local groups in a short window is a systematic mapping pattern with little ordinary operational justification, since a legitimate administrator troubleshooting a specific access problem typically checks one or two groups relevant to that problem, not a sweep across every group defined on the host.
The pattern unique to this event, and the highest-confidence signal on this page, is temporal correlation with an actual privilege change: a 4799 against Administrators followed within minutes by a 4732, member added to a local group, for the same Subject account. That sequence, enumerate the target group, then add a member to it, is the natural shape of active privilege-escalation staging rather than passive discovery, and it is detectable only by joining this event against its downstream sibling rather than looking at either in isolation.
Event 4799 Fields
| Field | What it tells you | Simulated value |
|---|---|---|
SubjectUserSid | SID of the account that requested the enumeration. | S-1-5-21-424242-656116 |
SubjectUserName | Account name that requested the enumeration. | j.smith |
SubjectLogonId | Logon session ID of the Subject, correlates back to their 4624. | 0x81c4a6 |
TargetUserName | Name of the local group whose membership was listed, for example Administrators. | Administrators |
TargetSid | SID of the group whose membership was listed; built-in groups sit under S-1-5-32. | S-1-5-32-544 |
CallerProcessId | PID of the process that performed the enumeration. | 0xf57f |
CallerProcessName | Full path of the process that performed the enumeration, e.g. net.exe or PowerShell. | C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe |
Inspect Event 4799 Values
Click a field to inspect the full simulated value, the way you would expand it in a SIEM event view.
Example Event 4799 Log
A representative Security entry for Event 4799, generated deterministically by our telemetry engine so every field holds a realistic, internally consistent value.
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Security-Auditing" />
<EventID>4799</EventID>
<Version>0</Version>
<Level>0</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8020000000000000</Keywords>
<TimeCreated SystemTime="2025-02-13T10:31:22.000Z" />
<EventRecordID>538369</EventRecordID>
<Channel>Security</Channel>
<Computer>WS-SIM-001.corp.socsimulator.example</Computer>
<Security />
</System>
<EventData>
<Data Name="SubjectUserSid">S-1-5-21-424242-656116</Data>
<Data Name="SubjectUserName">j.smith</Data>
<Data Name="SubjectLogonId">0x81c4a6</Data>
<Data Name="TargetUserName">Administrators</Data>
<Data Name="TargetSid">S-1-5-32-544</Data>
<Data Name="CallerProcessId">0xf57f</Data>
<Data Name="CallerProcessName">C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Data>
</EventData>
</Event>Detecting Event 4799
Enumeration of the local Administrators group by a known recon binary
index=wineventlog sourcetype=WinEventLog:Security EventCode=4799 Group_Name="Administrators" | where match(Process_Name, "(?i)net\.exe|net1\.exe|powershell\.exe") | table _time, Subject_Account_Name, Process_Name
One Subject enumerating many distinct groups in a short window (privilege-mapping sweep)
index=wineventlog sourcetype=WinEventLog:Security EventCode=4799 | bucket _time span=10m | stats dc(Group_Name) as groups by _time, Subject_Account_Name | where groups >= 5
4799 on Administrators immediately followed by a 4732 add for the same Subject (map, then join)
Lucene is the base filter; the 4799-to-4732 correlation runs in your SIEM.
index=wineventlog sourcetype=WinEventLog:Security (EventCode=4799 Group_Name="Administrators") OR EventCode=4732 | transaction Subject_Account_Name maxspan=10m | where mvcount(EventCode)>1
True Positive vs False Positive
Treat raw 4799 volume the same way you would 4798's: as background noise that any per-event alert will drown in. The signal lives in three layers stacked together, CallerProcessName, target-group sensitivity, and enumeration breadth, and the strongest confirmatory layer, correlation with a subsequent group-membership change, sits on top of all three.
CallerProcessName narrows meaningfully without resolving the question alone. net.exe, net1.exe, and interactive PowerShell sessions appearing in this field on a workstation used for routine administration are unremarkable; the same processes appearing on a server that should only ever see automated management-agent queries, or appearing from an account that does not normally perform manual command-line administration, is worth a closer look regardless of which specific group was queried.
Target-group sensitivity should drive your alerting tier the same way Target-account sensitivity drives 4725's. Enumeration of Administrators and any other group with meaningful local privilege deserves tighter scrutiny than enumeration of low-privilege groups like Users or Guests, and any environment doing this well maintains an explicit tier list rather than treating every local group identically.
Breadth catches the sweep pattern: one Subject account querying many distinct local groups across many hosts, or many distinct groups on one host, in a tight window has little benign equivalent at the volume a scripted discovery tool produces. Baseline against your own admin team's normal troubleshooting cadence, since a busy help-desk workstation used by several technicians will naturally show higher raw counts than a single end-user machine, and the anomaly is in the shape of the sweep, not the absolute number.
The enumerate-then-add correlation is close to a standalone true-positive indicator on its own. Legitimate administrators occasionally check current membership before adding someone, but the combination of checking Administrators specifically and then adding a member for the same Subject within a short window, especially when that Subject is not on your list of accounts authorized to manage local admin rights, should be treated as active privilege-escalation staging until the specific change is confirmed as expected. False positives here are rare enough that the correlation query alone, run continuously, is one of the higher-value additions a SOC can make to its account-management detection coverage without needing extensive baseline tuning first.
Practice Investigating Event 4799
No published room targets Event 4799 directly yet. The detection skills transfer, though: practice alert triage on realistic consoles across 37 free rooms in SOCSimulator Operations.
Browse free operationsFrequently Asked Questions
- What does event ID 4799 mean?
- It means a process listed the members of a specific security-enabled local group. TargetUserName in this event is the GROUP being inspected, for example Administrators, not the account doing the inspecting.
- What is the difference between event 4799 and event 4798?
- 4799 enumerates the members OF a group (TargetUserName is the group). 4798 enumerates the group memberships OF a user (TargetUserName is the user). Both cover MITRE T1069 Permission Groups Discovery from opposite query directions.
- Is enumerating the Administrators group always suspicious?
- No, plenty of legitimate management tooling checks Administrators membership routinely. It becomes worth escalating when the CallerProcessName is an interactive recon binary (net.exe, PowerShell) rather than a known management agent, or when it is followed within minutes by an actual 4732 add for the same Subject.
Sources
“Field schema (SubjectUserSid/SubjectLogonId/TargetUserName/TargetSid/CallerProcessId/CallerProcessName) for the security-enabled local group member-enumeration event, and the built-in-group S-1-5-32 SID convention”
“T1069 Permission Groups Discovery covers local and domain group enumeration used to identify privilege-escalation and lateral-movement targets”
Related SOC Training Resources
Event ID 4798: Local Group Membership Enumerated & Discovery Detection
Event ID 4798 fires constantly from benign tooling. Learn which CallerProcessName values matter for T1069 discovery and …
Read more Event IDEvent ID 4720: User Account Created & How to Detect It
Event ID 4720 logs every new user account, local or domain. Learn the SubjectUserName vs TargetUserName fields and detec…
Read more Event IDEvent 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 GlossaryWhat 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 GlossaryWhat 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 GlossaryWhat is SIEM? SOC Glossary
Security Information and Event Management (SIEM) is a platform that aggregates, normalizes, and correlates log data from…
Read more Career PathSOC 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 PathIncident Responder Career Guide: Salary & Skills
Incident Responders lead the technical response when confirmed breaches happen. You coordinate containment, run forensic…
Read more ComparisonSOCSimulator 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 IDWindows Event ID Library: SOC Reference
Windows Security and Sysmon event IDs with simulated log samples, field tables, and tested detection queries.
Read more FeatureShift Mode: Real-Time SOC Simulation
Practice alert triage under realistic time pressure with SLA timers and noise injection.
Read more FeatureOperations: Guided Training Operations
Structured CTF-style investigation operations covering real-world attack scenarios.
Read more