T1546.013: PowerShell Profile
Adversaries may gain persistence and elevate privileges by executing malicious content triggered by PowerShell profiles. A PowerShell profile (profile.ps1) is a script that runs when PowerShell starts and can be used as a logon script to customize user environments.
PowerShell supports several profiles depending on the user or host program. For example, there can be different profiles for PowerShell host programs such as the PowerShell console, PowerShell ISE or Visual Studio Code. An administrator can also configure a profile that applies to all users and host programs on the local computer. [1]
Adversaries may modify these profiles to include arbitrary commands, functions, modules, and/or PowerShell drives to gain persistence. Every time a user opens a PowerShell session the modified script will be executed unless the -NoProfile flag is used when it is launched. [2]
An adversary may also be able to escalate privileges if a script in a PowerShell profile is loaded and executed by an account with higher privileges, such as a domain administrator. [3]
Analyst context for executives and security teams
PowerShell profiles matter because they turn a normal administrative convenience into a persistence and privilege-escalation opportunity on Windows. If a profile.ps1 file is modified, malicious PowerShell content can run whenever a user or host program starts PowerShell, and the risk is higher when privileged users open sessions that load the altered profile.
Executive priority
Treat this as a control-validation issue for Windows administrative workstations, servers, and privileged accounts. Leaders should ask whether profile locations are permission-controlled, whether script execution and signing expectations are enforced, and whether SOC/IR teams can prove when PowerShell profile files changed. This technique is especially relevant to audit evidence around least privilege, administrative hardening, and incident scoping for persistence.
Technical view
ATT&CK maps this Windows sub-technique to persistence and privilege escalation under Event Triggered Execution. Because official detection text is not provided, defenders should validate coverage against the related detection strategy, DET0451: Detection Strategy for PowerShell Profile Persistence via profile.ps1 Modification. SOC teams should focus on unauthorized changes to PowerShell profile scripts across user-specific and all-users/all-hosts profile locations, followed by PowerShell launches that would load profiles unless started with -NoProfile. IR teams should review whether modified profile content contains arbitrary commands, functions, modules, or drives and whether the profile was executed by a higher-privileged account.
Likely telemetry
- File creation, modification, and permission-change events for PowerShell profile scripts such as profile.ps1
- PowerShell execution telemetry, including session startup context and whether -NoProfile was used
- PowerShell logging evidence where enabled, such as script execution or module-related records
- Process creation telemetry for powershell/pwsh host programs and parent-child process context
- File ownership and access control information for profile directories and scripts
Detection direction
- Baseline legitimate PowerShell profile use for administrators, developers, automation accounts, PowerShell ISE, Visual Studio Code, and console hosts to reduce false positives.
- Alert on unexpected creation or modification of profile.ps1 files, especially in all-users/all-hosts locations or by non-administrative accounts.
- Correlate profile modification events with later PowerShell session starts by privileged users to assess privilege-escalation risk.
- Tune detections for common blind spots: endpoints without file auditing, PowerShell logging gaps, unmanaged developer workstations, and profile paths outside the SOC’s current file-integrity scope.
- Use the DET0451 relationship as the primary ATT&CK-supported detection reference, while recognizing the base ATT&CK object does not provide detailed detection logic.
Mitigation priorities
- Apply M1022 Restrict File and Directory Permissions: remove unnecessary write access to PowerShell profile files and directories, especially profiles that apply to all users or all host programs.
- Apply M1045 Code Signing where practical so trusted scripts can be distinguished from unauthorized or tampered content.
- Apply M1054 Software Configuration by reviewing PowerShell and host application settings, including whether routine administrative workflows should launch PowerShell with profile loading disabled where appropriate.
- Prioritize privileged accounts and administrative systems first, then expand to broader Windows endpoint coverage.
- Include PowerShell profile locations in configuration baselines, change monitoring, and incident response persistence checks.
Analyst notes and limits
This object replaces revoked technique T1504 and is now represented as sub-technique T1546.013 under Event Triggered Execution. The supplied relationship context includes Turla use, but that should be treated as historical ATT&CK procedure context, not evidence of current activity in any environment.
Official ATT&CK detection guidance is not provided for this object, so local detection design must be based on the related DET0451 strategy, PowerShell profile documentation, available Windows telemetry, and environment-specific baselines. The supplied data supports Windows only and does not justify claims about active exploitation or guaranteed detection.
PowerShell Profile
Adversaries may gain persistence and elevate privileges by executing malicious content triggered by PowerShell profiles. A PowerShell profile (profile.ps1) is a script that runs when PowerShell starts and can be used as a logon script to customize user environments.
PowerShell supports several profiles depending on the user or host program. For example, there can be different profiles for PowerShell host programs such as the PowerShell console, PowerShell ISE or Visual Studio Code. An administrator can also configure a profile that applies to all users and host programs on the local computer. [1]
Adversaries may modify these profiles to include arbitrary commands, functions, modules, and/or PowerShell drives to gain persistence. Every time a user opens a PowerShell session the modified script will be executed unless the -NoProfile flag is used when it is launched. [2]
An adversary may also be able to escalate privileges if a script in a PowerShell profile is loaded and executed by an account with higher privileges, such as a domain administrator. [3]
How security teams should use this page
Treat this object as behavior context, not an attribution claim. Validate the related groups, software, data sources, and mitigations against official ATT&CK relationships and your own telemetry before making control-coverage decisions.
Related techniques
This mirrors the MITRE pattern of making group, software, campaign, and technique relationships scannable. Relationship notes come from mirrored ATT&CK relationship text when available.
| Domain | ID | Name | Relationship / procedure |
|---|---|---|---|
| Enterprise | T1546 | Event Triggered Execution | This object subtechnique of Event Triggered Execution. |
| Enterprise | T1504 | PowerShell Profile | PowerShell Profile revoked by this object. |
Groups, software, and campaigns
G0010: Turla
Turla is a cyber espionage threat group that has been attributed to Russia's Federal Security Service (FSB). They have compromised victims in over 50 countries since at least 2004, spanning a range of industries including government, embassies, military, education, research and pharmaceutical companies. Turla is known for conducting watering hole and spearphishing campaigns, and leveraging in-house tools and malware, such as Uroburos.[1][2][3][4][5]
All related ATT&CK context
Mitigation direction
Object version and sync metadata
The fields below describe the current mirrored snapshot. When Glexia retains multiple ATT&CK source imports, you can open the table to compare the same object across releases (hashes and MITRE timestamps). For MITRE’s own release notes and roadmap, see ATT&CK resources — Updates .
Imported snapshots across ATT&CK releases (1)
| Release | Bundle imported | Object version | Modified | Status | Raw hash |
|---|---|---|---|---|---|
| 19.1 | 1.2 | Current bundle | 756794784e32… |
Mirrored ATT&CK source object
The raw object is retained through the mirrored ATT&CK source bundle and object hash. The raw endpoint returns the exact object from the mirrored bundle when available.
External references and citations
MITRE external references are preserved separately from Glexia analysis so citations remain traceable to their original source records.
-
[1]
Microsoft About Profiles
Microsoft. (2017, November 29). About Profiles. Retrieved June 14, 2019.
Open source URL -
[2]
ESET Turla PowerShell May 2019
Faou, M. and Dumont R.. (2019, May 29). A dive into Turla PowerShell usage. Retrieved June 14, 2019.
Open source URL -
[3]
Wits End and Shady PowerShell Profiles
DeRyke, A.. (2019, June 7). Lab Notes: Persistence and Privilege Elevation using the Powershell Profile. Retrieved July 8, 2019.
Open source URL -
[4]
Malware Archaeology PowerShell Cheat Sheet
Malware Archaeology. (2016, June). WINDOWS POWERSHELL LOGGING CHEAT SHEET - Win 7/Win 2008 or later. Retrieved June 24, 2016.
Open source URL -
[5]
Microsoft Profiles
Microsoft. (2021, September 27). about_Profiles. Retrieved February 4, 2022.
Open source URL -
[6]
mitre-attack T1546.013Open source URL
Source: MITRE ATT&CK®. © 2026 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation. MITRE ATT&CK and ATT&CK are registered trademarks of The MITRE Corporation. Glexia is not affiliated with or endorsed by MITRE.