Hunting for Registry Run Key Persistence
Overview
Registry Run keys (T1547.001) are one of the most commonly used persistence mechanisms by adversaries. When a program is added to a Run key in the Windows registry, it executes automatically when a user logs in. Attackers abuse keys under HKLM\Software\Microsoft\Windows\CurrentVersion\Run, HKCU\Software\Microsoft\Windows\CurrentVersion\Run, and their RunOnce counterparts to maintain persistence. Sysmon Event ID 13 (RegistryEvent - Value Set) captures registry value modifications including the target object path, the process that made the change, and the new value. Detection involves monitoring these events for suspicious executables in temp directories, encoded PowerShell commands, LOLBin paths, and processes that do not normally create Run key entries. Chaining Event 13 with Event 1 (Process Creation) and Event 11 (FileCreate) strengthens detection by confirming payload creation and execution.
When to Use
- When investigating security incidents that require hunting for registry run key persistence
- When building detection rules or threat hunting queries for this domain
- When SOC analysts need structured procedures for this analysis type
- When validating security monitoring coverage for related attack techniques
Prerequisites
- Windows systems with Sysmon installed and configured to log Event ID 13
- Sysmon config with RegistryEvent rules for Run/RunOnce keys
- Python 3.9+ with
json, xml.etree.ElementTree, re modules
- SIEM or log aggregator collecting Sysmon logs (Splunk, Elastic, Sentinel)
- Knowledge of legitimate auto-start programs for baseline comparison
Steps
- Collect Sysmon Event ID 13 logs filtered for Run/RunOnce key paths
- Parse event XML/JSON for TargetObject, Details (value written), Image (modifying process)
- Flag entries where the value points to temp directories, AppData, or ProgramData
- Detect encoded PowerShell commands or script interpreters in registry values
- Identify LOLBin abuse (mshta.exe, rundll32.exe, regsvr32.exe, wscript.exe)
- Compare against known-good baseline of legitimate auto-start entries
- Check if the modifying process (Image) is unusual (cmd.exe, powershell.exe, python.exe)
- Chain with Event ID 1 to verify if the registered binary was recently created
- Generate detection report with MITRE ATT&CK mapping and severity scores
- Produce Sigma/Splunk detection rules from findings
Expected Output
A JSON report listing suspicious Run key entries with the registry path, value written, modifying process, timestamp, MITRE technique mapping, severity rating, and recommended Sigma detection rules.
1---2name: hunting-for-registry-run-key-persistence3description: Detect MITRE ATT&CK T1547.001 registry Run key persistence by analyzing Sysmon Event ID 13 logs and registry queries to identify malicious auto-start entries.4license: Apache-2.05---6# Hunting for Registry Run Key Persistence
7
8## Overview
9
10Registry Run keys (T1547.001) are one of the most commonly used persistence mechanisms by adversaries. When a program is added to a Run key in the Windows registry, it executes automatically when a user logs in. Attackers abuse keys under `HKLM\Software\Microsoft\Windows\CurrentVersion\Run`, `HKCU\Software\Microsoft\Windows\CurrentVersion\Run`, and their RunOnce counterparts to maintain persistence. Sysmon Event ID 13 (RegistryEvent - Value Set) captures registry value modifications including the target object path, the process that made the change, and the new value. Detection involves monitoring these events for suspicious executables in temp directories, encoded PowerShell commands, LOLBin paths, and processes that do not normally create Run key entries. Chaining Event 13 with Event 1 (Process Creation) and Event 11 (FileCreate) strengthens detection by confirming payload creation and execution.
11
12
13## When to Use
14
15- When investigating security incidents that require hunting for registry run key persistence
16- When building detection rules or threat hunting queries for this domain
17- When SOC analysts need structured procedures for this analysis type
18- When validating security monitoring coverage for related attack techniques
19
20## Prerequisites
21
22- Windows systems with Sysmon installed and configured to log Event ID 13
23- Sysmon config with RegistryEvent rules for Run/RunOnce keys
24- Python 3.9+ with `json`, `xml.etree.ElementTree`, `re` modules
25- SIEM or log aggregator collecting Sysmon logs (Splunk, Elastic, Sentinel)
26- Knowledge of legitimate auto-start programs for baseline comparison
27
28## Steps
29
301. Collect Sysmon Event ID 13 logs filtered for Run/RunOnce key paths
312. Parse event XML/JSON for TargetObject, Details (value written), Image (modifying process)
323. Flag entries where the value points to temp directories, AppData, or ProgramData
334. Detect encoded PowerShell commands or script interpreters in registry values
345. Identify LOLBin abuse (mshta.exe, rundll32.exe, regsvr32.exe, wscript.exe)
356. Compare against known-good baseline of legitimate auto-start entries
367. Check if the modifying process (Image) is unusual (cmd.exe, powershell.exe, python.exe)
378. Chain with Event ID 1 to verify if the registered binary was recently created
389. Generate detection report with MITRE ATT&CK mapping and severity scores
3910. Produce Sigma/Splunk detection rules from findings
40
41## Expected Output
42
43A JSON report listing suspicious Run key entries with the registry path, value written, modifying process, timestamp, MITRE technique mapping, severity rating, and recommended Sigma detection rules.