CAPEC-640

Inclusion of Code in Existing Process
Bas
Haute
Stable
2018-07-31
00h00 +00:00
2023-01-24
00h00 +00:00
Alerte pour un CAPEC
Restez informé de toutes modifications pour un CAPEC spécifique.
Gestion des notifications

Descriptions du CAPEC

The adversary takes advantage of a bug in an application failing to verify the integrity of the running process to execute arbitrary code in the address space of a separate live process. The adversary could use running code in the context of another process to try to access process's memory, system/network resources, etc. The goal of this attack is to evade detection defenses and escalate privileges by masking the malicious code under an existing legitimate process. Examples of approaches include but not limited to: dynamic-link library (DLL) injection, portable executable injection, thread execution hijacking, ptrace system calls, VDSO hijacking, function hooking, reflective code loading, and more.

Informations du CAPEC

Flux d'exécution

1) Explore

[Determine target process] The adversary determines a process with sufficient privileges that they wish to include code into.

Technique
  • On Windows, use the process explorer's security tab to see if a process is running with administror privileges.
  • On Linux, use the ps command to view running processes and pipe the output to a search for a particular user, or the root user.
2) Experiment

[Attempt to include simple code with known output] The adversary attempts to include very simple code into the existing process to determine if the code inclusion worked. The code will differ based on the approach used to include code into an existing process.

3) Exploit

[Include arbitrary code into existing process] Once an adversary has determined that including code into the existing process is possible, they will include code for a targeted purpose, such as accessing that process's memory.

Conditions préalables

The targeted application fails to verify the integrity of the running process that allows an adversary to execute arbitrary code.

Compétences requises

Knowledge of how to load malicious code into the memory space of a running process, as well as the ability to have the running process execute this code. For example, with DLL injection, the adversary must know how to load a DLL into the memory space of another running process, and cause this process to execute the code inside of the DLL.

Atténuations

Prevent unknown or malicious software from loading through using an allowlist policy.
Properly restrict the location of the software being used.
Leverage security kernel modules providing advanced access control and process restrictions like SELinux.
Monitor API calls like CreateRemoteThread, SuspendThread/SetThreadContext/ResumeThread, QueueUserAPC, and similar for Windows.
Monitor API calls like ptrace system call, use of LD_PRELOAD environment variable, dlfcn dynamic linking API calls, and similar for Linux.
Monitor API calls like SetWindowsHookEx and SetWinEventHook which install hook procedures for Windows.
Monitor processes and command-line arguments for unknown behavior related to code injection.

Faiblesses connexes

CWE-ID Nom de la faiblesse

CWE-114

Process Control
Executing commands or loading libraries from an untrusted source or in an untrusted environment can cause an application to execute malicious commands (and payloads) on behalf of an attacker.

CWE-829

Inclusion of Functionality from Untrusted Control Sphere
The product imports, requires, or includes executable functionality (such as a library) from a source that is outside of the intended control sphere.

Soumission

Nom Organisation Date Date de publication
CAPEC Content Team The MITRE Corporation 2018-07-31 +00:00

Modifications

Nom Organisation Date Commentaire
CAPEC Content Team The MITRE Corporation 2019-04-04 +00:00 Updated Related_Weaknesses
CAPEC Content Team The MITRE Corporation 2020-07-30 +00:00 Updated Description, Mitigations, Taxonomy_Mappings
CAPEC Content Team The MITRE Corporation 2021-06-24 +00:00 Updated Taxonomy_Mappings
CAPEC Content Team The MITRE Corporation 2021-10-21 +00:00 Updated Execution_Flow
CAPEC Content Team The MITRE Corporation 2022-09-29 +00:00 Updated Taxonomy_Mappings
CAPEC Content Team The MITRE Corporation 2023-01-24 +00:00 Updated Description, Related_Weaknesses, Taxonomy_Mappings