SOC Prime Bias: Critical

08 Apr 2026 14:57

APT-Q-27 Malware Campaign Focuses on Web3 Customer Support

Author Photo
SOC Prime Team linkedin icon Follow
APT-Q-27 Malware Campaign Focuses on Web3 Customer Support
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Summary

A financially motivated threat actor tracked as APT-Q-27 (aka GoldenEyeDog) is running a multi-stage malware campaign that starts from Web3 customer-support chat interactions. The initial lure is a .pif file disguised as a screenshot, which deploys a custom .NET loader. That loader pulls additional stages from AWS S3, builds a hidden staging directory, and leverages DLL sideloading by pairing a malicious DLL with a legitimate YY platform executable. The final stage installs a backdoor that communicates over a non-standard TCP port, enabling stealthy remote access beyond typical web traffic baselines.

Investigation

ZeroShadow analyzed multiple loader variants, including Feedback.exe and photo2025060268jpg.exe, and recovered a double-Base64–encoded C2 URL embedded in the chain. Reverse engineering revealed the loader’s decryption logic and the sideloading workflow used to bootstrap execution. Analysts also documented a consistent staging-path marker containing “@27”, plus a persistence mechanism via an HKCU Run value named SystemUpdats. The backdoor was observed using a hard-coded set of 37 C2 IP addresses, communicating over TCP 15628, while blending activity by referencing Microsoft update URLs as decoy network indicators.

Mitigation

Enable full file-extension visibility and block execution of .pif files across endpoints. Monitor for hidden directory creation under Windows Update–style cache locations and alert on the SystemUpdats Run-key value. Harden UAC by preventing attackers from simultaneously zeroing the three relevant policy keys, and restrict outbound connectivity to TCP 15628 at egress points. Enforce code-signing validation and scrutinize signed binaries launched from non-system directories to reduce DLL sideloading risk.

Response

If detections fire, isolate the endpoint and preserve both memory and disk artifacts for triage. Hunt for the staging directory containing “@27”, the SystemUpdats Run-key entry, and any suspicious DLLs paired with the legitimate YY executable. Block the identified C2 IPs/domains and roll out application-control policies that prevent execution of unsigned or untrusted binaries from user profile paths. Expand scoping across the fleet for the same persistence and network patterns to identify additional affected hosts.

"graph TB %% Class definitions classDef action fill:#99ccff classDef file fill:#ffcc99 classDef registry fill:#c2f0c2 classDef network fill:#ff99cc classDef builtin fill:#cccccc %% Nodes action_phishing_link["<b>Action</b> – <b>T1204.001 User Execution: Malicious Link</b><br/>Deceptive URL sent in liveu2011chat, victim clicks and downloads a .pif file named photo2025060268jpg.exe"] class action_phishing_link action file_pif["<b>File</b> – <b>Name</b>: photo2025060268jpg.exe<br/><b>Type</b>: .pif executable disguised as an image"] class file_pif file action_malicious_file["<b>Action</b> – <b>T1204.002 User Execution: Malicious File</b><br/>The .pif runs, opens Paint with a fake error image and launches the loader"] class action_malicious_file action file_loader["<b>Malware</b> – <b>Name</b>: Loader<br/><b>Behavior</b>: Decrypts payloads, launches updat.exe"] class file_loader builtin action_obfuscation["<b>Action</b> – <b>T1027.008 Obfuscated Files or Information</b><br/>All strings, URLs and payloads are doubleu2011Base64 encrypted"] class action_obfuscation action action_debugger_evasion["<b>Action</b> – <b>T1622 Debugger Evasion</b><br/>Checks IsDebuggerPresent and call stack, exits if a debugger is detected"] class action_debugger_evasion action action_persistence["<b>Action</b> – <b>T1547.001 Registry Run Keys/Startup Folder</b><br/>Writes HKCU\Software\Microsoft\Windows\CurrentVersion\Run\SystemUpdats u2192 updat.exe in hidden staging folder"] class action_persistence action registry_run_key["<b>Registry</b> – <b>Path</b>: HKCU\Software\Microsoft\Windows\CurrentVersion\Run\SystemUpdats<br/><b>Value</b>: updat.exe path"] class registry_run_key registry file_updat["<b>File</b> – <b>Name</b>: updat.exe<br/><b>Location</b>: hidden staging directory"] class file_updat file action_uac_bypass["<b>Action</b> – <b>T1548.002 Bypass UAC</b><br/>Sets EnableLUA, ConsentPromptBehaviorAdmin and PromptOnSecureDesktop to 0 in a single transaction"] class action_uac_bypass action action_appinit["<b>Action</b> – <b>T1546.010 AppInit DLLs</b> & <b>T1546.009 AppCert DLLs</b><br/>updat.exe launched with working directory set to staging folder causing malicious DLL load"] class action_appinit action file_vcruntime["<b>DLL</b> – <b>Name</b>: vcruntime140.dll (malicious)"] class file_vcruntime file file_msvcp["<b>DLL</b> – <b>Name</b>: msvcp140.dll (malicious)"] class file_msvcp file file_crashreport["<b>DLL</b> – <b>Name</b>: crashreport.dll (malicious)"] class file_crashreport file action_dll_sideload["<b>Action</b> – <b>T1574.002 DLL Sideu2011Loading</b><br/>Malicious DLLs loaded instead of legitimate runtime libraries"] class action_dll_sideload action action_c2["<b>Action</b> – <b>T1571 Nonu2011Standard Port</b> & <b>T1573 Encrypted Channel</b><br/>Backdoor establishes TCP connection to C2 on port 15628, traffic encrypted, retrieves manifest from AWS S3"] class action_c2 action network_c2["<b>Network</b> – <b>Protocol</b>: TCP<br/><b>Port</b>: 15628<br/><b>Endpoint</b>: C2 server (AWS S3)"] class network_c2 network %% Connections action_phishing_link –>|downloads| file_pif file_pif –>|executes| action_malicious_file action_malicious_file –>|launches| file_loader file_loader –>|uses| action_obfuscation file_loader –>|uses| action_debugger_evasion file_loader –>|initiates| action_persistence action_persistence –>|writes| registry_run_key registry_run_key –>|points to| file_updat file_updat –>|triggered by| action_uac_bypass action_uac_bypass –>|enables| action_appinit action_appinit –>|loads| file_vcruntime action_appinit –>|loads| file_msvcp action_appinit –>|loads| file_crashreport file_vcruntime –>|contribute to| action_dll_sideload file_msvcp –>|contribute to| action_dll_sideload file_crashreport –>|contribute to| action_dll_sideload action_dll_sideload –>|enables| action_c2 action_c2 –>|communicates with| network_c2 "

Attack Flow

Detections

Possible UAC Bypass – Disabling the Consent Admin (via registry_event)

SOC Prime Team
06 Apr 2026

Possible Malicious File Double Extension (via process_creation)

SOC Prime Team
06 Apr 2026

Possible Persistence Points [ASEPs – Software/NTUSER Hive] (via registry_event)

SOC Prime Team
06 Apr 2026

Possible UAC Bypass – UAC Disable Attempt (via registry_event)

SOC Prime Team
06 Apr 2026

Vcruntime140 Dynamic Library Loaded From Suspicious Directory (via image_load)

SOC Prime Team
06 Apr 2026

Possible UAC Bypass – Secure Desktop Prompting Disable Attempt (via registry_event)

SOC Prime Team
06 Apr 2026

IOCs (DestinationIP) to detect: Working the Queue: APT-Q-27 Malware Targets Web3 Customer Support Part 1

SOC Prime AI Rules
06 Apr 2026

IOCs (SourceIP) to detect: Working the Queue: APT-Q-27 Malware Targets Web3 Customer Support Part 2

SOC Prime AI Rules
06 Apr 2026

IOCs (DestinationIP) to detect: Working the Queue: APT-Q-27 Malware Targets Web3 Customer Support Part 2

SOC Prime AI Rules
06 Apr 2026

IOCs (HashSha256) to detect: Working the Queue: APT-Q-27 Malware Targets Web3 Customer Support

SOC Prime AI Rules
06 Apr 2026

IOCs (SourceIP) to detect: Working the Queue: APT-Q-27 Malware Targets Web3 Customer Support Part 1

SOC Prime AI Rules
06 Apr 2026

Detect Disablement of UAC via Registry Modifications [Windows Registry Event]

SOC Prime AI Rules
06 Apr 2026

Detection of DLL Sideloading via Updat.exe in AppData [Windows Process Creation]

SOC Prime AI Rules
06 Apr 2026

Simulation Execution

Prerequisite: The Telemetry & Baseline Pre‑flight Check must have passed.

Rationale: This section details the precise execution of the adversary technique (TTP) designed to trigger the detection rule. The commands and narrative MUST directly reflect the TTPs identified and aim to generate the exact telemetry expected by the detection logic.

  • Attack Narrative & Commands:
    An adversary with local administrator rights seeks to disable UAC to smooth the path for further privilege‑escalation tools. Using the native reg.exe utility (a living‑off‑the‑land binary), the attacker sets the three critical UAC policy values to 0 in rapid succession (under 30 seconds) to avoid detection by manual audit processes.

    # Step 1 – Disable UAC “EnableLUA”
    reg add "HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" /v EnableLUA /t REG_DWORD /d 0 /f
    
    # Step 2 – Disable consent prompt for admins
    reg add "HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f
    
    # Step 3 – Disable secure desktop for UAC prompts
    reg add "HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" /v PromptOnSecureDesktop /t REG_DWORD /d 0 /f

    These three commands generate three Registry Event logs (EventID 4657 in the Security channel and the corresponding Microsoft-Windows-Registry/Operational events) containing the TargetObject paths and Details values that the Sigma rule matches.

  • Regression Test Script: The following PowerShell script performs the three writes with a 5‑second pause between each to stay comfortably inside the 30‑second window while also providing a deterministic execution flow.

    # Regression Test – Disable UAC via registry
    $regPath = "HKLM:SOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem"
    
    # Store original values for later cleanup
    $originalEnableLUA = (Get-ItemProperty -Path $regPath -Name EnableLUA -ErrorAction SilentlyContinue).EnableLUA
    $originalConsent   = (Get-ItemProperty -Path $regPath -Name ConsentPromptBehaviorAdmin -ErrorAction SilentlyContinue).ConsentPromptBehaviorAdmin
    $originalPrompt    = (Get-ItemProperty -Path $regPath -Name PromptOnSecureDesktop -ErrorAction SilentlyContinue).PromptOnSecureDesktop
    
    # Disable UAC
    Set-ItemProperty -Path $regPath -Name EnableLUA -Value 0
    Start-Sleep -Seconds 5
    Set-ItemProperty -Path $regPath -Name ConsentPromptBehaviorAdmin -Value 0
    Start-Sleep -Seconds 5
    Set-ItemProperty -Path $regPath -Name PromptOnSecureDesktop -Value 0
    
    Write-Host "UAC disabled – verification logs should now be ingested."
  • Cleanup Commands: Restore the original UAC settings to return the system to its pre‑test state.

    # Cleanup – Restore original UAC settings
    $regPath = "HKLM:SOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem"
    
    if ($null -ne $originalEnableLUA) { Set-ItemProperty -Path $regPath -Name EnableLUA -Value $originalEnableLUA }
    if ($null -ne $originalConsent)   { Set-ItemProperty -Path $regPath -Name ConsentPromptBehaviorAdmin -Value $originalConsent }
    if ($null -ne $originalPrompt)    { Set-ItemProperty -Path $regPath -Name PromptOnSecureDesktop -Value $originalPrompt }
    
    Write-Host "UAC settings restored to original values."