ATT&CK Reference
Portfolio

TA0003 · PERSISTENCE

Hijack Execution Flow

T1574Linux · macOS · Windowsattack.mitre.org

Adversaries may execute their own malicious payloads by hijacking the way operating systems run programs. Hijacking execution flow can be for the purposes of persistence, since this hijacked execution may reoccur over time.

Detect it with

Monitor file systems for moving, renaming, replacing, or modifying DLLs. Changes in the set of DLLs that are loaded by a process (compared with past behavior) that do not correlate with known software, patches, etc., are suspicious.

Why it matters on shift

Hijack Execution Flow is one of the concrete ways adversaries achieve persistence. Recognising it in telemetry lets you name the technique in your ticket and pivot to what came before and after.

What to look for next

After persistence, the next tactic is usually Privilege Escalation. Search your telemetry for the transition before closing the ticket.

12 sub-techniques

How it shows up in practice

  1. T1574.001

    DLL

    Adversaries may abuse dynamic-link library files (DLLs) in order to achieve persistence, escalate privileges, and evade defenses. DLLs are libraries that contain code and data that can be simultaneously utilized by multiple programs.

  2. T1574.004

    Dylib Hijacking

    Adversaries may execute their own payloads by placing a malicious dynamic library (dylib) with an expected name in a path a victim application searches at runtime.

  3. T1574.005

    Executable Installer File Permissions Weakness

    Adversaries may execute their own malicious payloads by hijacking the binaries used by an installer. These processes may automatically execute specific binaries as part of their functionality or to perform other actions.

  4. T1574.006

    Dynamic Linker Hijacking

    Adversaries may execute their own malicious payloads by hijacking environment variables the dynamic linker uses to load shared libraries.

  5. T1574.007

    Path Interception by PATH Environment Variable

    Adversaries may execute their own malicious payloads by hijacking environment variables used to load libraries.

  6. T1574.008

    Path Interception by Search Order Hijacking

    Adversaries may execute their own malicious payloads by hijacking the search order used to load other programs.

  7. T1574.009

    Path Interception by Unquoted Path

    Adversaries may execute their own malicious payloads by hijacking vulnerable file path references.

  8. T1574.010

    Services File Permissions Weakness

    Adversaries may execute their own malicious payloads by hijacking the binaries used by services. Adversaries may use flaws in the permissions of Windows services to replace the binary that is executed upon service start.

  9. T1574.011

    Services Registry Permissions Weakness

    Adversaries may execute their own malicious payloads by hijacking the Registry entries used by services.

  10. T1574.012

    COR_PROFILER

    Adversaries may leverage the COR_PROFILER environment variable to hijack the execution flow of programs that load the .NET CLR.

  11. T1574.013

    KernelCallbackTable

    Adversaries may abuse the KernelCallbackTable of a process to hijack its execution flow in order to run their own payloads.

  12. T1574.014

    AppDomainManager

    Adversaries may execute their own malicious payloads by hijacking how the .NET AppDomainManager loads assemblies.

Kill-chain context

← beforeExecutionPersistenceafter →Privilege Escalation