MITRE ATT&CK T1574.012: COR_PROFILER
When to use this skill
Use this skill when the task involves T1574.012, COR_PROFILER, enterprise ATT&CK, TTP mapping, detection engineering, hunting, incident-response enrichment, control validation, or authorized adversary-emulation planning. Treat it as a defensive analysis aid: keep outputs focused on understanding, detecting, mitigating, and safely validating this ATT&CK sub-technique.
Technique context
- ATT&CK domain: enterprise
- ATT&CK ID: T1574.012
- Technique name: COR_PROFILER
- Type: sub-technique
- ATT&CK URL: https://attack.mitre.org/techniques/T1574/012
- Tactics: execution, stealth
- Platforms: Windows
- Required permissions: Not specified
- Effective permissions: Not specified
- Defenses bypassed: Not specified
ATT&CK description
Adversaries may leverage the COR_PROFILER environment variable to hijack the execution flow of programs that load the .NET CLR. The COR_PROFILER is a .NET Framework feature which allows developers to specify an unmanaged (or external of .NET) profiling DLL to be loaded into each .NET process that loads the Common Language Runtime (CLR). These profilers are designed to monitor, troubleshoot, and debug managed code executed by the .NET CLR.(Citation: Microsoft Profiling Mar 2017)(Citation: Microsoft COR_PROFILER Feb 2013)
The COR_PROFILER environment variable can be set at various scopes (system, user, or process) resulting in different levels of influence. System and user-wide environment variable scopes are specified in the Registry, where a Component Object Model (COM) object can be registered as a profiler DLL. A process scope COR_PROFILER can also be created in-memory without modifying the Registry. Starting with .NET Framework 4, the profiling DLL does not need to be registered as long as the location of the DLL is specified in the COR_PROFILER_PATH environment variable.(Citation: Microsoft COR_PROFILER Feb 2013)
Adversaries may abuse COR_PROFILER to establish persistence that executes a malicious DLL in the context of all .NET processes every time the CLR is invoked. The COR_PROFILER can also be used to elevate privileges (ex: Bypass User Account Control) if the victim .NET process executes at a higher permission level, as well as to hook and impair defenses provided by .NET processes.(Citation: RedCanary Mockingbird May 2020)(Citation: Red Canary COR_PROFILER May 2020)(Citation: Almond COR_PROFILER Apr 2019)(Citation: GitHub OmerYa Invisi-Shell)(Citation: subTee .NET Profilers May 2017)
Agent workflow
- Clarify scope: identify the system, asset class, log sources, cloud or endpoint platform, and whether the user wants triage, detection, coverage assessment, or safe emulation planning.
- Load bundled resources as needed: use
references/technique-profile.json for structured metadata, references/detection-and-mitigation.md for triage and telemetry guidance, references/known-threat-context.md for ATT&CK relationship context, and templates/ for repeatable outputs.
- Map observations to ATT&CK: compare the user's evidence to the ATT&CK description, tactics, platforms, and known procedure patterns before asserting a match.
- Produce defensive outputs: prioritize hypotheses, telemetry requirements, detection logic ideas, validation steps, containment guidance, and mitigations.
- Preserve uncertainty: distinguish confirmed evidence, plausible indicators, assumptions, and gaps. Recommend what to collect next.
- Stay safe: do not provide malware, credential theft, persistence, evasion, destructive automation, or unauthorized exploitation instructions. For adversary emulation, keep steps bounded to approved lab or control-validation contexts and omit operational abuse details.
Bundled resources
references/technique-profile.json: machine-readable ATT&CK metadata for this technique.
references/detection-and-mitigation.md: detection notes, telemetry checklist, triage questions, mitigation candidates, and false-positive considerations.
references/known-threat-context.md: ATT&CK relationship context with attribution cautions.
templates/detection-brief.md: detection engineering brief template.
templates/hunt-plan.md: threat hunt plan template.
templates/incident-response-note.md: incident response note template.
templates/coverage-assessment.md: ATT&CK coverage assessment template.
scripts/render_brief.py: local helper that renders a Markdown defensive brief from technique-profile.json.
assets/output-schema.json: JSON schema for structured technique analysis outputs.
To generate a quick brief, run python scripts/render_brief.py --output brief.md from inside this skill directory, or adapt the templates directly.
Detection guidance
No ATT&CK detection guidance was present in the source STIX object.
Useful telemetry and data sources
- Not specified in the STIX object.
Mitigations to consider
- Execution Prevention
- Restrict Registry Permissions
- User Account Management
Known threat context
Use these examples only as contextual leads, not as proof that an observed event is this technique:
- Blue Mockingbird (intrusion-set)
- DarkTortilla (malware)
Recommended output pattern
When responding with this skill, structure the answer as:
- Assessment: whether the evidence supports this ATT&CK mapping and why.
- Evidence: specific indicators, logs, behaviors, and assumptions.
- Detection: telemetry sources, analytic logic, and tuning considerations.
- Response: containment, eradication, recovery, and validation actions.
- Coverage gaps: missing logs, sensors, controls, or environmental details.
- References: include the ATT&CK URL and any user-provided evidence references.
ATT&CK contributors
1---2name: attack-ent-t1574-012-cor-profiler3description: Analyze MITRE ATT&CK T1574.012 COR_PROFILER in the enterprise matrix. Use for TTP triage, detection engineering, hunting, defensive emulation planning, mitigations, incident response mapping, ATT&CK coverage, or questions mentioning T1574.012, COR_PROFILER, or enterprise ATT&CK. Adversaries may leverage the COR_PROFILER environment variable to hijack the execution flow of programs that load the .NET CLR.4license: MITRE ATT&CK Terms of Use apply to ATT&CK-derived content. See h5---67# MITRE ATT&CK T1574.012: COR_PROFILER89## When to use this skill1011Use this skill when the task involves T1574.012, COR_PROFILER, enterprise ATT&CK, TTP mapping, detection engineering, hunting, incident-response enrichment, control validation, or authorized adversary-emulation planning. Treat it as a defensive analysis aid: keep outputs focused on understanding, detecting, mitigating, and safely validating this ATT&CK sub-technique.1213## Technique context1415- ATT&CK domain: enterprise16- ATT&CK ID: T1574.01217- Technique name: COR_PROFILER18- Type: sub-technique19- ATT&CK URL: https://attack.mitre.org/techniques/T1574/01220- Tactics: execution, stealth21- Platforms: Windows22- Required permissions: Not specified23- Effective permissions: Not specified24- Defenses bypassed: Not specified2526## ATT&CK description2728Adversaries may leverage the COR_PROFILER environment variable to hijack the execution flow of programs that load the .NET CLR. The COR_PROFILER is a .NET Framework feature which allows developers to specify an unmanaged (or external of .NET) profiling DLL to be loaded into each .NET process that loads the Common Language Runtime (CLR). These profilers are designed to monitor, troubleshoot, and debug managed code executed by the .NET CLR.(Citation: Microsoft Profiling Mar 2017)(Citation: Microsoft COR_PROFILER Feb 2013)2930The COR_PROFILER environment variable can be set at various scopes (system, user, or process) resulting in different levels of influence. System and user-wide environment variable scopes are specified in the Registry, where a [Component Object Model](https://attack.mitre.org/techniques/T1559/001) (COM) object can be registered as a profiler DLL. A process scope COR_PROFILER can also be created in-memory without modifying the Registry. Starting with .NET Framework 4, the profiling DLL does not need to be registered as long as the location of the DLL is specified in the COR_PROFILER_PATH environment variable.(Citation: Microsoft COR_PROFILER Feb 2013)3132Adversaries may abuse COR_PROFILER to establish persistence that executes a malicious DLL in the context of all .NET processes every time the CLR is invoked. The COR_PROFILER can also be used to elevate privileges (ex: [Bypass User Account Control](https://attack.mitre.org/techniques/T1548/002)) if the victim .NET process executes at a higher permission level, as well as to hook and impair defenses provided by .NET processes.(Citation: RedCanary Mockingbird May 2020)(Citation: Red Canary COR_PROFILER May 2020)(Citation: Almond COR_PROFILER Apr 2019)(Citation: GitHub OmerYa Invisi-Shell)(Citation: subTee .NET Profilers May 2017)3334## Agent workflow35361. Clarify scope: identify the system, asset class, log sources, cloud or endpoint platform, and whether the user wants triage, detection, coverage assessment, or safe emulation planning.372. Load bundled resources as needed: use `references/technique-profile.json` for structured metadata, `references/detection-and-mitigation.md` for triage and telemetry guidance, `references/known-threat-context.md` for ATT&CK relationship context, and `templates/` for repeatable outputs.383. Map observations to ATT&CK: compare the user's evidence to the ATT&CK description, tactics, platforms, and known procedure patterns before asserting a match.394. Produce defensive outputs: prioritize hypotheses, telemetry requirements, detection logic ideas, validation steps, containment guidance, and mitigations.405. Preserve uncertainty: distinguish confirmed evidence, plausible indicators, assumptions, and gaps. Recommend what to collect next.416. Stay safe: do not provide malware, credential theft, persistence, evasion, destructive automation, or unauthorized exploitation instructions. For adversary emulation, keep steps bounded to approved lab or control-validation contexts and omit operational abuse details.4243## Bundled resources4445- `references/technique-profile.json`: machine-readable ATT&CK metadata for this technique.46- `references/detection-and-mitigation.md`: detection notes, telemetry checklist, triage questions, mitigation candidates, and false-positive considerations.47- `references/known-threat-context.md`: ATT&CK relationship context with attribution cautions.48- `templates/detection-brief.md`: detection engineering brief template.49- `templates/hunt-plan.md`: threat hunt plan template.50- `templates/incident-response-note.md`: incident response note template.51- `templates/coverage-assessment.md`: ATT&CK coverage assessment template.52- `scripts/render_brief.py`: local helper that renders a Markdown defensive brief from `technique-profile.json`.53- `assets/output-schema.json`: JSON schema for structured technique analysis outputs.5455To generate a quick brief, run `python scripts/render_brief.py --output brief.md` from inside this skill directory, or adapt the templates directly.5657## Detection guidance5859No ATT&CK detection guidance was present in the source STIX object.6061## Useful telemetry and data sources6263- Not specified in the STIX object.6465## Mitigations to consider6667- Execution Prevention68- Restrict Registry Permissions69- User Account Management7071## Known threat context7273Use these examples only as contextual leads, not as proof that an observed event is this technique:7475- Blue Mockingbird (intrusion-set)76- DarkTortilla (malware)7778## Recommended output pattern7980When responding with this skill, structure the answer as:8182- Assessment: whether the evidence supports this ATT&CK mapping and why.83- Evidence: specific indicators, logs, behaviors, and assumptions.84- Detection: telemetry sources, analytic logic, and tuning considerations.85- Response: containment, eradication, recovery, and validation actions.86- Coverage gaps: missing logs, sensors, controls, or environmental details.87- References: include the ATT&CK URL and any user-provided evidence references.8889## ATT&CK contributors9091- Jesse Brown, Red Canary