Event ID 4672 Windows Security log

Event ID 4672: Special Privileges Assigned to New Logon — Admin Logons

Published

A new logon session received one or more sensitive privileges — in practice, an administrator or a system account logged on — and the Logon ID ties it to the 4624 that says how and from where.

Logged on: Microsoft states that the event "generates for new account logons" when sensitive privileges are assigned; it is written on the computer where the logon session is created, in the Audit Special Logon subcategory.

Microsoft's title

4672(S): Special privileges assigned to new logon.

Source: Microsoft's event 4672 documentation · field names checked against it on every build

Fields that matter in an investigation

FieldXML / SentinelWhat it tells you
Security ID SubjectUserSid SID of the account to which the special privileges were assigned. Microsoft's monitoring recommendation starts here — anything other than LOCAL SYSTEM, NETWORK SERVICE, LOCAL SERVICE or an administrator expected to hold the privileges.
Account Name SubjectUserName The name of the account to which the special privileges were assigned — for an investigation, the privileged identity that just logged on.
Account Domain SubjectDomainName The account's domain or, for a local account, the computer name; well-known principals such as LOCAL SERVICE show "NT AUTHORITY".
Logon ID SubjectLogonId Hexadecimal value that correlates this event with the 4624 of the same logon session — the record that holds the logon type, source address and authentication package.
Privileges PrivilegeList The list of sensitive privileges assigned to the logon, such as SeDebugPrivilege, SeBackupPrivilege, SeImpersonatePrivilege or SeTcbPrivilege.

What it records

Event 4672, in the Audit Special Logon subcategory, is written when a logon session is created with powerful privileges attached. Microsoft’s definition: “This event generates for new account logons if any of the following sensitive privileges are assigned to the new logon session” — followed by a list that includes SeTcbPrivilege (act as part of the operating system), SeBackupPrivilege and SeRestorePrivilege (back up and restore files and directories), SeCreateTokenPrivilege, SeDebugPrivilege (debug programs), SeEnableDelegationPrivilege, SeAuditPrivilege, SeImpersonatePrivilege, SeLoadDriverPrivilege, SeSecurityPrivilege (manage auditing and security log), SeSystemEnvironmentPrivilege, SeAssignPrimaryTokenPrivilege and SeTakeOwnershipPrivilege.

The record is small. The Subject section names the account the privileges were assigned to — Security ID, Account Name, Account Domain — and its Logon ID. Privileges lists the sensitive privileges the session received. There is no source address, no logon type and no process name: those live in the 4624 written for the same logon, which is why 4672 is almost always read together with it.

In practice 4672 marks administrator logons. Members of the local Administrators group hold privileges such as SeDebugPrivilege and SeBackupPrivilege, so their logons produce a 4672 alongside the 4624; standard users’ logons do not. Microsoft also warns about the volume: “You typically will see many of these events in the event log, because every logon of SYSTEM (Local System) account triggers this event.”

When it matters

PatternReading
Subject is SYSTEM, LOCAL SERVICE or NETWORK SERVICEExpected — Microsoft’s own example of the noise
A user account Microsoft would call unexpected: not an administrator that should hold these privilegesMicrosoft’s first monitoring recommendation; check how it became privileged
SeDebugPrivilege for an account that has no reason to debug processesMicrosoft’s example of a privilege to watch; it allows access to LSASS memory
A privileged logon on a workstation or server the admin never usesPossible lateral movement with administrative credentials
Privileged logon with logon type 3 (network) or 10 (remote interactive) from an unusual sourceRemote administration or an attacker using stolen admin credentials
A new account that starts appearing in 4672 shortly after it was createdCheck for account creation (4720) and group additions (4732) just before

The useful question is never whether a 4672 exists — there are thousands — but which privileged sessions are new. An account that has not logged on with administrative rights before, a known admin logging on to a server they never touch, or a privileged session from an address outside the admin network are the cases worth working.

How to investigate

Remove the service noise and see who holds privileged sessions, and where:

SecurityEvent
| where TimeGenerated > ago(7d)
| where EventID == 4672
| where SubjectUserSid !in ("S-1-5-18", "S-1-5-19", "S-1-5-20")
| where SubjectUserName !endswith "$"
| summarize Sessions = count(), Hosts = dcount(Computer), HostList = make_set(Computer, 20),
            FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated)
    by SubjectUserName, SubjectDomainName
| order by Hosts desc

Join each privileged session to its 4624 to get the logon type and the source:

let privileged = SecurityEvent
    | where TimeGenerated > ago(1d) and EventID == 4672
    | where SubjectUserSid !in ("S-1-5-18", "S-1-5-19", "S-1-5-20") and SubjectUserName !endswith "$"
    | project PrivTime = TimeGenerated, PrivComputer = Computer, LogonId = SubjectLogonId, Privileges = PrivilegeList;
SecurityEvent
| where TimeGenerated > ago(1d) and EventID == 4624
| join kind=inner privileged on $left.Computer == $right.PrivComputer, $left.TargetLogonId == $right.LogonId
| project PrivTime, Computer, Account = TargetUserName, LogonType, IpAddress, WorkstationName, AuthenticationPackageName, Privileges
| order by PrivTime desc

Watch the privileges Microsoft singles out, such as SeDebugPrivilege, for accounts outside your admin list:

SecurityEvent
| where TimeGenerated > ago(30d)
| where EventID == 4672 and PrivilegeList has "SeDebugPrivilege"
| where SubjectUserSid !in ("S-1-5-18", "S-1-5-19", "S-1-5-20") and SubjectUserName !endswith "$"
| summarize Sessions = count(), Hosts = make_set(Computer, 20) by SubjectUserName
| order by Sessions desc

For a session that should not exist, follow the Logon ID into the processes it started: 4688 events carry the same value in their Subject Logon ID. Then check how the account got its rights — recent group membership changes such as 4732, or a freshly created account — and whether the same credentials logged on elsewhere. Explicit-credential use in 4648 on the source host often shows the hop that preceded the privileged logon.

Related events and codes

Detect it

MITRE ATT&CK: T1078T1078.002T1134

Frequently Asked Questions

Why do I see thousands of 4672 events?
Because, as Microsoft notes, every logon of the SYSTEM (Local System) account triggers this event, and services and scheduled tasks log on constantly. Filter out the well-known service SIDs S-1-5-18, S-1-5-19 and S-1-5-20 and computer accounts ending in $, and what remains is mostly people and service accounts logging on with administrative rights.
Does 4672 mean someone was given new privileges?
No. It means a new logon session received privileges the account already holds through its group memberships or user rights, such as membership of Administrators. A change to those rights is a different event — group membership changes appear as events like 4732 (member added to a local group). Read 4672 as the start of a privileged session.
How do I find where a privileged logon came from?
Join on the Logon ID. The 4672 Subject Logon ID equals the Target Logon ID of the 4624 that created the same session, and the 4624 carries the logon type, the source network address and the workstation name. The KQL on this page does that join, so each privileged session shows its logon type and source address.
Which privileges in the list are worth alerting on?
Microsoft suggests monitoring privileges that should never be granted, or granted only to a few accounts, and names SeDebugPrivilege as the example. SeDebugPrivilege allows reading the memory of other processes, including LSASS; SeBackupPrivilege and SeRestorePrivilege bypass file permissions; SeImpersonatePrivilege and SeTcbPrivilege let a process act as other users.

Find every 4672 in your own logs

Load a Windows Security event export into the free browser analyzer to group events by account, source address and status, with password spraying, brute force and lockout storms flagged. Nothing is uploaded.

Investigating something right now? LogTriage checks every address in the file against threat intelligence and writes the incident report: 10 analyses a month free. The incident pack adds the in-depth AI analysis and files up to 100 MB: 25 analyses for $19, one payment, no subscription. Pricing

Every query on this site's reference pages, the Sigma rules and a cheat sheet in one download: the Incident Response Kit, $29 once.

Monthly attack data from a real server, by email

Two short emails a month: what attacked an ordinary internet-facing server (SSH logins, web probes, scanners) and how well free IP blocklists caught the attackers. Totals only, never an IP address. You confirm by email, and every email unsubscribes in one click.

How the address is used: privacy policy.