MITRE ATT&CKsub-technique
T1574.007 Path Interception by PATH Environment Variable
- Domain
- enterprise
- Tactics
- Stealth, Execution
- Platforms
- Linux, macOS, Windows
- Version
- 2.0
- Created
- 2020-03-13
Description
Adversaries may execute their own malicious payloads by hijacking environment variables used to load libraries. The PATH environment variable contains a list of directories (User and System) that the OS searches sequentially through in search of the binary that was called from a script or the command line.
Adversaries can place a malicious program in an earlier entry in the list of directories stored in the PATH environment variable, resulting in the operating system executing the malicious binary rather than the legitimate binary when it searches sequentially through that PATH listing.
For example, on Windows if an adversary places a malicious program named "net.exe" in `C:\example path`, which by default precedes `C:\Windows\system32\net.exe` in the PATH environment variable, when "net" is executed from the command-line the `C:\example path` will be called instead of the system's legitimate executable at `C:\Windows\system32\net.exe`. Some methods of executing a program rely on the PATH environment variable to determine the locations that are searched when the path for the program is not given, such as executing programs from a Command and Scripting Interpreter.
Adversaries may also directly modify the $PATH variable specifying the directories to be searched. An adversary can modify the `$PATH` variable to point to a directory they have write access. When a program using the $PATH variable is called, the OS searches the specified directory and executes the malicious binary. On macOS, this can also be performed through modifying the $HOME variable. These variables can be modified using the command-line, launchctl, Unix Shell Configuration Modification, or modifying the `/etc/paths.d` folder contents.
Related
Subtechnique of · MITRE ATT&CK (1)
- T1574 Hijack Execution Flow technique
Referenced by MITRE ATT&CK · mitigates (3)
Referenced by MITRE ATT&CK · uses (4)
Referenced by CAPEC · att&ck technique (2)
Referenced by Compliance · mitigates (15)
- NIST-AC-2 Account Management NIST 800-53 control
- NIST-AC-3 Access Enforcement NIST 800-53 control
- NIST-AC-4 Information Flow Enforcement NIST 800-53 control
- NIST-AC-5 Separation of Duties NIST 800-53 control
- NIST-AC-6 Least Privilege NIST 800-53 control
- NIST-CA-7 Continuous Monitoring NIST 800-53 control
- NIST-CM-2 Baseline Configuration NIST 800-53 control
- NIST-CM-6 Configuration Settings NIST 800-53 control
- NIST-CM-7 Least Functionality NIST 800-53 control
- NIST-CM-8 System Component Inventory NIST 800-53 control
- NIST-RA-5 Vulnerability Monitoring and Scanning NIST 800-53 control
- NIST-SI-10 Information Input Validation NIST 800-53 control
- NIST-SI-3 Malicious Code Protection NIST 800-53 control
- NIST-SI-4 System Monitoring NIST 800-53 control
- NIST-SI-7 Software, Firmware, and Information Integrity NIST 800-53 control
References
- https://www.elastic.co/guide/en/security/7.17/prebuilt-rule-7-16-4-modification-of-environment-variable-via-launchctl.html Elastic Rules macOS launchctl 2022
- https://www.expressvpn.com/blog/cybersecurity-lessons-a-path-vulnerability-in-windows/ ExpressVPN PATH env Windows 2021
- https://www.uptycs.com/blog/new-poc-exploit-backdoor-malware uptycs Fake POC linux malware 2023
- https://www.cyberciti.biz/faq/appleosx-bash-unix-change-set-path-environment-variable/ nixCraft macOS PATH variables