T1112 Google Chronicle · YARA-L

Detect Modify Registry in Google Chronicle

Adversaries may interact with the Windows Registry to aid in defense evasion, persistence, and execution. The Registry may be modified to hide configuration information or malicious payloads, disable security controls (e.g., enabling WDigest plaintext credential caching, disabling Windows Defender, enabling Office macros), establish persistence via run keys or services, and store C2 configuration data. Common tools include the built-in reg.exe utility, PowerShell registry cmdlets (Set-ItemProperty, New-Item), and direct Win32 API calls (RegSetValueEx, RegCreateKeyEx). Adversaries may also target remote registries over SMB using valid accounts, or employ null-byte prefix tricks to create pseudo-hidden keys invisible to standard utilities.

MITRE ATT&CK

Tactic
Defense Evasion Persistence
Technique
T1112 Modify Registry
Canonical reference
https://attack.mitre.org/techniques/T1112/

YARA-L Detection Query

Google Chronicle (YARA-L)
yaral
rule t1112_modify_registry_suspicious {
  meta:
    author = "Argus Detection Engineering"
    description = "Detects suspicious Windows Registry modifications to persistence and defense evasion keys initiated by commonly abused processes. Covers Run keys, Winlogon hijack, IFEO debugger, LSA WDigest enable, Windows Defender disable, UAC bypass, and Office macro enable."
    mitre_attack_tactic = "Defense Evasion, Persistence"
    mitre_attack_technique = "T1112"
    mitre_attack_url = "https://attack.mitre.org/techniques/T1112/"
    severity = "HIGH"
    priority = "HIGH"

  events:
    $e.metadata.event_type = "REGISTRY_MODIFICATION"
    (
      re.regex($e.target.registry.registry_key, `(?i)(CurrentVersion\\Run|CurrentVersion\\RunOnce|\\Winlogon|\\SYSTEM\\CurrentControlSet\\Services\\|Image File Execution Options|\\Control\\Lsa|Windows Defender|Policies\\System|\\Microsoft\\Office|ZoneMap)`) = true
    )
    re.regex($e.principal.process.file.full_path, `(?i)(powershell\.exe|pwsh\.exe|cmd\.exe|wscript\.exe|cscript\.exe|mshta\.exe|rundll32\.exe|regsvr32\.exe|msbuild\.exe|wmic\.exe|certutil\.exe|bitsadmin\.exe|installutil\.exe|reg\.exe)$`) = true

  match:
    $e.principal.hostname over 5m

  outcome:
    $host = $e.principal.hostname
    $user = $e.principal.user.userid
    $process = $e.principal.process.file.full_path
    $registry_key = $e.target.registry.registry_key
    $registry_value_name = $e.target.registry.registry_value_name
    $registry_value_data = $e.target.registry.registry_value_data
    $is_wdigest_enable = if(
      re.regex($e.target.registry.registry_key, `(?i)\\Lsa`) and
      re.regex($e.target.registry.registry_value_name, `(?i)UseLogonCredential`), 1, 0
    )
    $is_defender_disable = if(
      re.regex($e.target.registry.registry_key, `(?i)Windows Defender`) and
      re.regex($e.target.registry.registry_value_name, `(?i)(DisableAntiSpyware|DisableRealtimeMonitoring|DisableAntiVirus)`), 1, 0
    )
    $is_uac_bypass = if(
      re.regex($e.target.registry.registry_key, `(?i)Policies\\System`) and
      re.regex($e.target.registry.registry_value_name, `(?i)(EnableLUA|ConsentPromptBehaviorAdmin)`), 1, 0
    )
    $is_ifeo = if(
      re.regex($e.target.registry.registry_key, `(?i)Image File Execution Options`) and
      re.regex($e.target.registry.registry_value_name, `(?i)Debugger`), 1, 0
    )
    $is_winlogon_hijack = if(
      re.regex($e.target.registry.registry_key, `(?i)Winlogon`) and
      re.regex($e.target.registry.registry_value_name, `(?i)(Userinit|Shell)`), 1, 0
    )

  condition:
    $e
}
high severity high confidence

Chronicle YARA-L 2.0 rule detecting suspicious Windows Registry modifications to persistence and defense evasion keys. Monitors REGISTRY_MODIFICATION events where the initiating process is a commonly abused LOLBin or scripting host, enriches events with specific high-risk modification classifications including WDigest enable, Defender disable, UAC bypass, IFEO debugger hijack, and Winlogon hijack.

Data Sources

Google Chronicle SIEMWindows Event Logs via Chronicle forwarderSysmon logs via Chronicle UDM ingestionMicrosoft Defender for Endpoint via Chronicle integration

Required Tables

UDM REGISTRY_MODIFICATION events

False Positives & Tuning

  • Legitimate software installations and update processes that use reg.exe or PowerShell to configure persistence mechanisms or disable conflicting security software during setup.
  • System administrators using scripting tools to configure Windows Defender exclusions, UAC policies, or Winlogon settings as part of authorized hardening or configuration workflows.
  • Enterprise backup and recovery agents that modify service registry entries and security policy keys during deployment or DR testing activities.
Download portable Sigma rule (.yml)

Other platforms for T1112


Testing Methodology

Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Add Persistence via Run Key using reg.exe

    Expected signal: Sysmon Event ID 13 (RegistryEvent - Value Set): TargetObject=HKCU\Software\Microsoft\Windows\CurrentVersion\Run\df00tech_test, Details=C:\Windows\System32\cmd.exe /c echo persistence_test, Image=C:\Windows\System32\reg.exe. Sysmon Event ID 1 (Process Create): Image=reg.exe with CommandLine showing add and Run key path. Security Event ID 4657 if SACL auditing is configured on the Run key.

  2. Test 2Enable WDigest Plaintext Credential Caching

    Expected signal: Sysmon Event ID 13: TargetObject=HKLM\SYSTEM\CurrentControlSet\Control\Lsa\UseLogonCredential, Details=DWORD (0x00000001), Image=C:\Windows\System32\reg.exe. Security Event ID 4657 (if SACL configured on LSA key): OldValue=0 or empty, NewValue=1. Process creation event for reg.exe with the full command line visible.

  3. Test 3Disable Windows Defender via Registry

    Expected signal: Sysmon Event ID 13: TargetObject=HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\DisableAntiSpyware, Details=DWORD (0x00000001). If Tamper Protection is active: Windows Defender Event ID 5001 (Real-time protection disabled) or Event ID 5013 (Tamper protection blocked change) in Microsoft-Windows-Windows Defender/Operational log. Process creation: reg.exe with DisableAntiSpyware in command line.

  4. Test 4IFEO Debugger Injection for Sticky Keys Backdoor

    Expected signal: Sysmon Event ID 13: TargetObject=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe\Debugger, Details=C:\Windows\System32\cmd.exe, Image=reg.exe. Sysmon Event ID 1 for reg.exe with full command line. If the backdoor is triggered: Sysmon Event ID 1 showing sethc.exe spawning cmd.exe from the winlogon.exe parent context.

Unlock Pro Content

Get the full detection package for T1112 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections