Adversaries may exploit software vulnerabilities in an attempt to elevate privileges. Exploitation of a software vulnerability occurs when an adversary takes advantage of a programming error in a program, service, or within the operating system software or kernel itself to execute adversary-controlled code. Security constructs such as permission levels will often hinder access to information and use of certain techniques, so adversaries will likely need to perform privilege escalation to include use of software exploitation to circumvent those restrictions.
When initially gaining access to a system, an adversary may be operating within a lower privileged process which will prevent them from accessing certain resources on the system. Vulnerabilities may exist, usually in operating system components and software commonly running at higher permissions, that can be exploited to gain higher levels of access on the system. This could enable someone to move from unprivileged or user level permissions to SYSTEM or root permissions depending on the component that is vulnerable. This could also enable an adversary to move from a virtualized environment, such as within a virtual machine or container, onto the underlying host. This may be a necessary step for an adversary compromising an endpoint system that has been properly configured and limits other privilege escalation methods.
Adversaries may bring a signed vulnerable driver onto a compromised machine so that they can exploit the vulnerability to execute code in kernel mode. This process is sometimes referred to as Bring Your Own Vulnerable Driver (BYOVD). Adversaries may include the vulnerable driver with files delivered during Initial Access or download it to a compromised system via Ingress Tool Transfer or Lateral Tool Transfer.
APT28 has exploited CVE-2014-4076, CVE-2015-2387, CVE-2015-1701, CVE-2017-0263 to escalate privileges.
APT29 has exploited CVE-2021-36934 to escalate privileges on a compromised host.
APT33 has used a publicly available exploit for CVE-2017-0213 to escalate privileges on a local system.
BITTER has exploited CVE-2021-1732 for privilege escalation.
During C0017, APT41 abused named pipe impersonation for privilege escalation.
Carberp has exploited multiple Windows vulnerabilities (CVE-2010-2743, CVE-2010-3338, CVE-2010-4398, CVE-2008-1084) and a .NET Runtime Optimization vulnerability for privilege escalation.
Cobalt Group has used exploits to increase their levels of rights and privileges.
Cobalt Strike can exploit vulnerabilities such as MS14-058.
CosmicDuke attempts to exploit privilege escalation vulnerabilities CVE-2010-0232 or CVE-2010-4398.
Empire can exploit vulnerabilities such as MS16-032 and MS16-135.
FIN6 has used tools to exploit Windows vulnerabilities in order to escalate privileges. The tools targeted CVE-2013-3660, CVE-2011-2005, and CVE-2010-4398, all of which could allow local users to access kernel-level privileges.
FIN8 has exploited the CVE-2016-0167 local vulnerability.
Hildegard has used the BOtB tool which exploits CVE-2019-5736.
InvisiMole has exploited CVE-2007-5633 vulnerability in the speedfan.sys driver to obtain kernel mode privileges.
JHUHUGIT has exploited CVE-2015-1701 and CVE-2015-2387 to escalate privileges.
LAPSUS$ has exploited unpatched vulnerabilities on internally accessible servers including JIRA, GitLab, and Confluence for privilege escalation.
Pandora can use CVE-2017-15303 to bypass Windows Driver Signature Enforcement (DSE) protection and load its driver.
PLATINUM has leveraged a zero-day vulnerability to escalate privileges.
PoshC2 contains modules for local privilege escalation exploits such as CVE-2016-9192 and CVE-2016-0099.
ProLock can use CVE-2019-0859 to escalate privileges on a compromised host.
Remsec has a plugin to drop and execute vulnerable Outpost Sandbox or avast! Virtualization drivers in order to gain kernel mode privileges.
Siloscape has leveraged a vulnerability in Windows containers to perform an Escape to Host.
Stuxnet used MS10-073 and an undisclosed Task Scheduler vulnerability to escalate privileges on local Windows machines.
Threat Group-3390 has used CVE-2014-6324 and CVE-2017-0213 to escalate privileges.
Tonto Team has exploited CVE-2019-0803 and MS16-032 to escalate privileges.
Turla has exploited vulnerabilities in the VBoxDrv.sys driver to obtain kernel mode privileges.
Whitefly has used an open-source tool to exploit a known Windows privilege escalation vulnerability (CVE-2016-0051) on unpatched computers.
Wingbird exploits CVE-2016-4117 to allow an executable to gain escalated privileges.
XCSSET has used a zero-day exploit in the ssh launchdaemon to elevate privileges and bypass SIP.
ZIRCONIUM has exploited CVE-2017-0005 for local privilege escalation.
Zox has the ability to leverage local and remote exploits to escalate privileges.
|M1048||Application Isolation and Sandboxing||
Make it difficult for adversaries to advance their operation through exploitation of undiscovered or unpatched vulnerabilities by using sandboxing. Other types of virtualization and application microsegmentation may also mitigate the impact of some types of exploitation. Risks of additional exploits and weaknesses in these systems may still exist. 
Consider blocking the execution of known vulnerable drivers that adversaries may exploit to execute code in kernel mode. Validate driver block rules in audit mode to ensure stability prior to production deployment.
Security applications that look for behavior used during exploitation such as Windows Defender Exploit Guard (WDEG) and the Enhanced Mitigation Experience Toolkit (EMET) can be used to mitigate some exploitation behavior.  Control flow integrity checking is another way to potentially identify and stop a software exploit from occurring.  Many of these protections depend on the architecture and target application binary for compatibility and may not work for software components targeted for privilege escalation.
|M1019||Threat Intelligence Program||
Develop a robust cyber threat intelligence capability to determine what types and levels of threat may use software exploits and 0-days against a particular organization.
Update software regularly by employing patch management for internal enterprise endpoints and servers.
|ID||Data Source||Data Component||Detects|
Detecting software exploitation may be difficult depending on the tools available. Software exploits may not always succeed or may cause the exploited process to become unstable or crash. Also look for behavior on the endpoint system that might indicate successful compromise, such as abnormal behavior of the processes. This could include suspicious files written to disk, evidence of Process Injection for attempts to hide execution or evidence of Discovery. Consider monitoring for the presence or loading (ex: Sysmon Event ID 6) of known vulnerable drivers that adversaries may drop and exploit to execute code in kernel mode. Higher privileges are often necessary to perform additional actions such as some methods of OS Credential Dumping. Look for additional activity that may indicate an adversary has gained higher privileges.
Monitor for newly executed processes that may exploit software vulnerabilities in an attempt to elevate privileges.
Implementation 1 : Unusual Child Process for spoolsv.exe or connhost.exe