Skip to main content
ThreatsXDRSIEM

What is Privilege Escalation?

Privilege escalation is an attacker gaining rights they were never given, after they already have a foothold. Vertical escalation moves up, from a standard user to local administrator, SYSTEM or Domain Admins. Horizontal escalation moves sideways, into another user's account or data at the same level. MITRE ATT&CK tracks it as tactic TA0004.

Definition

Privilege Escalation
Privilege escalation is an attacker gaining rights they were never given, after they already have a foothold. Vertical escalation moves up, from a standard user to local administrator, SYSTEM or Domain Admins. Horizontal escalation moves sideways, into another user's account or data at the same level. MITRE ATT&CK tracks it as tactic TA0004.

How Privilege Escalation Works

Both kinds start from access the attacker already has: a phished laptop, a guessed password, a hijacked web session. Escalation turns that foothold into control, and on a SOC queue it shows up as a change in who can do what, far more often than as malware. (This page is about the attack. Handing an incident up to tier 2 is escalation in the SOC-process sense.)

Vertical vs horizontal privilege escalation

VerticalHorizontal
What changesThe level of rights: user to admin, admin to SYSTEM or domain-wideThe identity: same level, someone else's account or records
Typical routeA local exploit, a misconfigured service, a cracked service-account password, a group membership changeA stolen session token, a reused password, an app that trusts an ID the user controls
ExamplePwnKit (CVE-2021-4034): a bug in polkit's setuid pkexec hands an unprivileged Linux user rootChanging invoice?id=1041 to id=1042 and reading another customer's invoice
Where the SOC sees itHost and directory logs: 4672, 4688, group membership events, Entra ID role changesApplication and sign-in logs: one session touching many object IDs, a known account on a new device

MITRE's weakness catalog draws the same line. CWE-639, the entry that lists IDOR as an alternate term, says the flaw allows horizontal escalation when the key a user controls points at another user's record, and vertical escalation when that key is really a flag that marks someone as an administrator. A broader entry, CWE-269 Improper Privilege Management, covers software that does not "properly assign, modify, track, or check privileges".

How attackers escalate: ATT&CK TA0004

In ATT&CK v20 the Privilege Escalation tactic (TA0004) holds 13 techniques. MITRE's own examples of the goal are SYSTEM or root, a local administrator, an account with admin-like access, and an account that can reach one specific system. The ones a Windows and Entra ID shop meets most:

  • Exploitation for Privilege Escalation (T1068): a kernel or driver bug, or a setuid binary like pkexec. NVD records PwnKit's addition to CISA's Known Exploited Vulnerabilities catalog on 27 June 2022.
  • Abuse Elevation Control Mechanism (T1548): UAC bypasses on Windows, sudo and setuid abuse on Linux.
  • Access Token Manipulation (T1134): stealing or duplicating the token of a more privileged process.
  • Valid Accounts (T1078) and Account Manipulation (T1098): signing in with a cracked admin password, or adding an account the attacker controls to a privileged group or role.
  • Create or Modify System Process (T1543) and Scheduled Task/Job (T1053): a service or task that runs as SYSTEM.
  • Domain or Tenant Policy Modification (T1484): changing Group Policy or tenant settings to grant rights everywhere at once.

MITRE notes that these techniques often overlap with persistence: a new service running as SYSTEM raises privileges and survives a reboot. Kerberoasting (T1558.003) is filed under Credential Access, but in Active Directory it is the classic way up. Any user holding a Kerberos ticket can request service tickets for accounts with an SPN, crack them offline, and log in as that service account with whatever rights it carries.

From technique to event: what the SOC sees

Each step leaves a specific record.

StepRecordWhat to look atWritten on
A logon receives admin-equivalent privileges4672PrivilegeList: SeDebugPrivilege, SeTcbPrivilege, SeImpersonatePrivilege, SeBackupPrivilege and the rest of Microsoft's sensitive listThe host where the logon happened
A privileged system service is called4673The privilege used; a failure means the call was refusedThe host
A process starts elevated4688TokenElevationType %%1937 (Run as administrator); MandatoryLabel S-1-16-12288 (High) or S-1-16-16384 (System)The host
An account joins a privileged group4732 for local and domain local groups such as Administrators; 4728 for global groups such as Domain Admins; 4756 for universal groups such as Enterprise Admins and Schema AdminsTargetUserName (the group), MemberName (who was added), SubjectUserName (who added them)Domain controllers for domain groups, the machine itself for local groups
A service ticket is requested for cracking4769Ticket Encryption Type 0x17 (RC4-HMAC) for a service accountDomain controllers
A process opens LSASS memorySysmon Event ID 10 (ProcessAccess)TargetImage lsass.exe opened by something other than your security toolingThe host, if Sysmon is deployed
A user gets an Entra ID admin roleAuditLogs, Category RoleManagementOperationName "Add member to role" for a direct assignment; "Add member to role completed (PIM activation)" when someone activates an eligible roleEntra ID, exported to Sentinel or Log Analytics

Microsoft's guidance for 4672 is to watch for accounts that are not LOCAL SYSTEM, NETWORK SERVICE, LOCAL SERVICE or an admin expected to hold those privileges. Every admin logon writes one, so the event only means something against a list of who should have it. The CommandLine field in 4688 stays empty until the "Include command line in process creation events" policy is enabled. And 4732 is written once per member added, usually right after a 4735 for the same group that shows no changes.

A simulated case

Simulated example generated by SOCSimulator Research. Users, hosts and times are invented; event IDs, field names and values are Microsoft's.

Time      Host   Event  Detail
09:14:02  DC01   4769   j.ortega requests a ticket for svc_sql      TicketEncryptionType 0x17
09:14:03  DC01   4769   j.ortega requests a ticket for svc_backup   TicketEncryptionType 0x17
09:14:03  DC01   4769   j.ortega requests a ticket for svc_web      TicketEncryptionType 0x17
          ...           no activity for svc_sql for five hours
14:41:19  DC01   4624   svc_sql  logon type 3  from WS-114 (j.ortega's workstation)
14:41:19  DC01   4672   svc_sql  SeSecurityPrivilege SeBackupPrivilege SeRestorePrivilege
                        SeTakeOwnershipPrivilege SeDebugPrivilege SeImpersonatePrivilege ...
14:42:50  DC01   4728   Group: Domain Admins  Member: CN=Jorge Ortega,...  Subject: svc_sql

j.ortega, whose job has nothing to do with SQL, requested RC4 tickets for three service accounts in two seconds. That burst is the Kerberoast. The five quiet hours are the cracking, done offline where no log can see it. Then svc_sql, an account that normally only authenticates from the SQL server, logs on to the domain controller from j.ortega's workstation (4624) and gets the sensitive privilege set. Ninety seconds later it adds j.ortega to Domain Admins. Service accounts do not add people to groups, so there is no change ticket to look for. Disable svc_sql, pull j.ortega out of the group, reset the service account's password, isolate WS-114 and hunt for every other logon as svc_sql since 09:14. The Kerberoasting playbook covers the scoping, and the lateral movement playbook covers what usually comes next.

Detecting it with KQL

The first query lists additions to privileged Active Directory and local groups over the last day.

// Members added to privileged AD or local groups in the last 24 hours
let privileged = dynamic(["Administrators", "Domain Admins", "Enterprise Admins",
    "Schema Admins", "Account Operators", "Backup Operators", "Server Operators"]);
SecurityEvent
| where TimeGenerated > ago(24h)
| where EventID in (4728, 4732, 4756)
| where TargetUserName in~ (privileged)
| project TimeGenerated, Computer, EventID, Group = TargetUserName,
    AddedMember = MemberName, AddedBy = SubjectUserName, AddedByDomain = SubjectDomainName
| order by TimeGenerated desc

The second finds Entra ID role assignments made directly instead of through a PIM activation. It is adapted from Microsoft's own Sentinel rule for privileged roles assigned outside PIM.

// Entra ID role assignments made outside PIM in the last day
AuditLogs
| where TimeGenerated > ago(1d)
| where Category =~ "RoleManagement"
| where OperationName =~ "Add member to role" and LoggedByService =~ "Core Directory"
| where Identity !in ("MS-PIM", "MS-PIM-Fairfax")
| mv-apply Target = TargetResources on (
    where Target.type =~ "User"
    | extend TargetUser = tostring(Target.userPrincipalName), Props = Target.modifiedProperties)
| mv-apply Prop = Props on (
    where Prop.displayName =~ "Role.DisplayName"
    | extend RoleName = trim('"', tostring(Prop.newValue)))
| extend Actor = coalesce(tostring(InitiatedBy.user.userPrincipalName),
    tostring(InitiatedBy.app.displayName))
| project TimeGenerated, RoleName, TargetUser, Actor, Result

Both follow Microsoft's documented SecurityEvent and AuditLogs schemas and have not been run against a live workspace by SOCSimulator. In a tenant that does not use PIM, every assignment is direct and the second query becomes a plain list of role grants, which is still worth a daily look.

False positive or real?

Most hits are admins doing their job. Before you escalate, answer four questions:

  1. Is there a change? A ticket or an approved PIM activation with a justification that matches the role and the time.
  2. Who made it? A named admin account from an admin workstation is normal. A service account, a user who was added minutes earlier, or an account that has never touched group management is not.
  3. From where? Check the source host of the session that made the change. A domain controller logon from an ordinary workstation is the detail that turned the simulated case above into an incident.
  4. Did it stay? An add followed by a removal minutes later can be an admin fixing a mistake, or an attacker covering tracks after using the rights. Look at what the account did in between.

Prevention

  • No standing admin rights. Microsoft Entra Privileged Identity Management gives just-in-time, time-bound roles with approval, MFA on activation and a written justification. This is least privilege applied to time as well as scope.
  • Patch local privilege escalation bugs listed as exploited first. PwnKit needed nothing more than an ordinary local account.
  • Make Kerberoasting pointless. ATT&CK's mitigation is service account passwords of 25 or more characters, or group managed service accounts.
  • Turn on command-line auditing so 4688 records what ran, not only that something ran.
  • Alert on privileged group and role changes with the two queries above, and route them to the on-call analyst.

Privilege Escalation in SOC Operations

An escalation alert means the attacker is widening what they can reach, so it goes ahead of single-host noise in the queue. Most hits are still benign: an admin activating a role, a help-desk tech adding someone to a local Administrators group, a deployment tool running elevated. What separates them is context you can check in minutes. Who made the change, from which machine, under which change or PIM request, and what the account did in the hour after. A privileged group addition by a service account, or a Domain Admins logon from an ordinary workstation, has no benign explanation worth waiting for. Write the privilege delta into the case notes: which account, which rights before and after, on which systems. Incident response scopes from that line, and it decides whether the fix is one password reset or a domain-wide credential rotation.

Free

Practice Privilege Escalation in a Real SOC

SOCSimulator provides hands-on training with realistic SIEM, XDR, and Firewall interfaces. Build real analyst skills investigating privilege escalation scenarios with zero consequences, free.

Frequently Asked Questions

What is privilege escalation in simple words?
It is someone getting more access than they were given. An attacker signs in as an ordinary employee, then finds a way to act as an administrator (vertical) or as a different employee (horizontal). MITRE puts the reason plainly: attackers can often get in with unprivileged access but need higher permissions to finish what they came to do.
What is the difference between IDOR and privilege escalation?
IDOR (insecure direct object reference) is one kind of bug: the application returns a record because the user asked for its ID, without checking that the record belongs to them. Privilege escalation is the result. MITRE's CWE-639 says such a flaw gives horizontal escalation when the ID points at another user's data, and vertical escalation when the value the user controls decides whether they are an administrator.
Can you give me an example of elevation of privilege?
PwnKit, CVE-2021-4034. polkit's pkexec is a setuid program that lets ordinary Linux users run approved commands as root. It miscounted its arguments, so a crafted environment variable made it run attacker code with administrative rights, and CISA lists it as exploited in the wild. In Active Directory the everyday example is Kerberoasting a service account, then using it to add yourself to Domain Admins.
What are some ways that you can prevent escalation of privileges?
Remove standing admin rights and grant them just in time, for example through Microsoft Entra PIM with approval and MFA on activation. Patch local privilege escalation bugs that are known to be exploited first. Give service accounts passwords of 25 or more characters, or use group managed service accounts, so Kerberoasting yields nothing crackable. Turn on command-line auditing and alert on privileged group and role changes.

Sources

More Threats Terms

Technique

Process Injection (T1055): Detection Training

Process Injection runs adversary code inside the address space of another live process, so execution hides behind a legi…

Read more
Technique

Exploitation for Privilege Escalation (T1068): Detection Training

This technique exploits a software or kernel vulnerability to run attacker-controlled code at a higher privilege level, …

Read more
Technique

Access Token Manipulation (T1134): Detection Training

Windows uses access tokens to decide which security context a process runs under, and this technique manipulates them so…

Read more
Career Path

Threat Hunter Career Guide: Salary & Skills

Threat Hunters do not wait for alerts. You develop hypotheses based on threat intelligence and adversary behavior models…

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
Career Path

SOC Analyst (Tier 2) Career Guide: Salary & Skills

Tier 2 SOC Analysts handle the investigations that Tier 1 escalates. You dig into multi-stage attacks, coordinate contai…

Read more
Comparison

SOCSimulator vs Hack The Box: Comparison

Different tools for different career paths. SOCSimulator trains defensive analysts. Hack The Box trains offensive securi…

Read more
Tool

XDR Training Console: SOCSimulator

The XDR console in SOCSimulator replicates the investigation workflow of platforms like CrowdStrike Falcon, Microsoft De…

Read more
Tool

SIEM Training Console: SOCSimulator

The SIEM console in SOCSimulator replicates the workflow of enterprise platforms like Splunk Enterprise Security, Micros…

Read more
Technique

MITRE ATT&CK® Techniques: Detection Training Library

Browse all MITRE ATT&CK® techniques with detection strategies and example alerts.

Read more
Career Path

Cybersecurity Career Paths: 2026 Guide

Explore SOC analyst career paths with salary data, required skills, and certification roadmaps.

Read more
Playbook

SOC Investigation Playbooks: Step-by-Step Guides

Practitioner investigation playbooks with decision trees and real SIEM queries.

Read more