Back to Intelligence

Starland RAT + WLDR PowerShell Implant: UAT-11795 ClickFix Campaign — OTX Pulse Analysis & Enterprise Detection Pack

SA
Security Arsenal Team
August 15, 2026
10 min read

Threat Summary

A newly published OTX pulse confirms an active, financially motivated campaign attributed to UAT-11795, a Russian-speaking adversary operating since at least June 2025. The actor is targeting users across the United States, Germany, and Romania with a dual-payload architecture: a Python-based remote access tool dubbed Starland RAT and a bespoke PowerShell-based memory-resident C2 implant called the WLDR agent. The campaign also deploys CastleStealer and, in some chains, the commodity Remcos RAT — a loadout optimized for credential harvesting and cryptocurrency theft.

The delivery vector combines two of the most effective social engineering techniques of the past year:

  1. ClickFix-style lures — fake CAPTCHA pages, browser-update prompts, or error dialogs that instruct the victim to paste a malicious command into the Windows Run dialog (Win+R) or a terminal. This bypasses email gateway and browser download inspection entirely because the user executes the payload.
  2. Trojanized installers — legitimate-seeming software packages (utility and repair-themed lures, per observed infrastructure such as windowscreenrepairnearme.com) that sideload the Starland RAT Python package alongside or in place of the expected application.

The collective picture is a mature, multi-stage operation: initial execution via user-assisted command paste or trojanized setup, staging of a Python RAT for durable access, an in-memory PowerShell implant for C2 tasking that minimizes disk artifacts, and stealer modules for monetization via credential and crypto-wallet exfiltration.

Assessment: UAT-11795 sits at the intersection of APT-grade tradecraft (bespoke implants, memory-resident C2) and cybercrime economics (stealers, crypto theft). Organizations with remote workforces, cryptocurrency exposure, or users who install freeware utilities are at elevated risk.

Threat Actor / Malware Profile

UAT-11795

  • Attribution: Russian-speaking, financially motivated; active since June 2025
  • Targeting: United States, Germany, Romania (broad user targeting rather than sector-specific)
  • Motivation: Credential harvesting and cryptocurrency theft for direct monetization

Starland RAT (Python)

  • Distribution: Bundled inside trojanized installers; staged after ClickFix execution
  • Payload behavior: Full remote access capability — command execution, file operations, and likely module loading for stealer components (CastleStealer)
  • Runtime artifact: Requires a Python interpreter on the host — watch for python.exe / pythonw.exe spawning from user-writable directories (%APPDATA%, %LOCALAPPDATA%, %TEMP%, %PUBLIC%) with non-standard parentage (installer processes, explorer.exe)
  • Anti-analysis: Obfuscated Python source (marshal/zlib layers typical of pyobfuscate-style packers); payload may be delivered as compiled .pyc or via embedded interpreter to evade static AV

WLDR Agent (PowerShell C2 Implant)

  • Distribution: Dropped/invoked post-initial access; the ClickFix chain frequently bootstraps it directly via powershell -enc or iex cradle pasted by the victim
  • Payload behavior: Memory-resident command-and-control agent; beacons to actor infrastructure, receives tasking, executes additional PowerShell or reflects .NET payloads
  • C2 communication: HTTP(S) beaconing to actor-controlled domains, including zynaris.io; likely uses standard web requests (Invoke-WebRequest / WebClient) with encoded or encrypted POST bodies to blend with normal traffic
  • Persistence: Registry Run keys, scheduled tasks, or WMI event subscriptions are typical for PowerShell implants of this class; hunt all three
  • Anti-analysis: Base64/compressed encoded commands (-enc, -ec), in-memory-only execution (IEX, Add-Type, reflection), and potential AMSI bypass strings in early stagers

CastleStealer & Remcos RAT

  • CastleStealer: Harvests browser credentials, cookies, session tokens, and crypto-wallet data; expect rapid exfiltration following collection
  • Remcos RAT: Commodity RAT used as fallback/parallel access; known keylogging, screen capture, and credential dumping capability

IOC Analysis

The pulse contains 48 indicators across two primary types:

TypeSamplesOperationalization
Domainswindowscreenrepairnearme.com, zynaris.ioC2 and lure/staging infrastructure. Block at DNS sinkhole, web proxy, and EDR network layer. Retro-hunt proxy/DNS logs for 90 days — ClickFix victims beacon quickly after execution.
File hashes (SHA256, SHA1, MD5)a6821c7e...3ad9, 162e436f...58ca, 17e41d66...896e, 1a01ad25...6cb6, c33f097f...8b43, 650e751e...04a2Trojans, RAT payloads, and installer droppers. Import into EDR blocklists and threat intel platforms. Note: installer-based delivery means hashes rotate frequently — prioritize behavioral detections over hash-only matching.

How SOC teams should operationalize:

  • Push domains to DNS/proxy block and alert lists immediately; these are low-false-positive indicators.
  • Load hashes into your EDR's reputation/block engine, but treat hash detection as a tripwire, not a strategy — UAT-11795 rebuilds installers per-wave.
  • Pivot on the domains in passive DNS to enumerate sibling infrastructure; lure domains in this campaign use SEO-poisoning-friendly names (repair/utility themes).
  • Tooling: Use CyberChef or certutil -decode for Base64 PowerShell cradle decoding; oletools/peframe for installer triage; any.run or similar sandboxes with the ClickFix pre-stage simulated (paste-execute) to observe the full chain, since sandbox auto-execution often misses user-paste delivery.

Detection Engineering

YAML
---
title: ClickFix-Style User-Pasted Command Execution
description: Detects execution chains consistent with ClickFix social engineering — Run dialog / Explorer-spawned mshta, powershell, or cmd carrying encoded or remote-download payloads, as used by UAT-11795 to bootstrap the WLDR agent.
id: 8f2c1a4e-7b3d-4e1a-9c5f-2d6a0b8e4f11
status: experimental
author: Security Arsenal
logsource:
  category: process_creation
  product: windows
  service: sysmon
detection:
  selection_parent:
    ParentImage|endswith:
      - '\explorer.exe'
      - '\rundll32.exe'
  selection_image:
    Image|endswith:
      - '\powershell.exe'
      - '\pwsh.exe'
      - '\mshta.exe'
      - '\cmd.exe'
  selection_flags:
    CommandLine|contains:
      - ' -enc'
      - ' -ec '
      - ' -e '
      - 'FromBase64String'
      - 'IEX'
      - 'Invoke-Expression'
      - 'Invoke-WebRequest'
      - 'DownloadString'
      - 'curl'
      - 'https://'
  condition: selection_parent and selection_image and selection_flags
falsepositives:
  - Admin automation launched interactively from Explorer
level: high
tags:
  - attack.execution
  - attack.t1059.001
  - attack.t1204
  - attack.t1105

---
title: Python Interpreter Executing From User-Writable Directory (Starland RAT)
description: Detects python.exe or pythonw.exe launching from AppData/Temp/Public paths or with installer/explorer parentage — consistent with the Starland RAT Python payload deployed via trojanized installers by UAT-11795.
id: 3a7d9e21-5c4b-4f08-8a2e-1d9b6c0e7f22
status: experimental
author: Security Arsenal
logsource:
  category: process_creation
  product: windows
  service: sysmon
detection:
  selection_image:
    Image|endswith:
      - '\python.exe'
      - '\pythonw.exe'
  selection_paths:
    Image|contains:
      - '\AppData\Local\'
      - '\AppData\Roaming\'
      - '\Temp\'
      - '\Public\'
  selection_parents:
    ParentImage|endswith:
      - '\explorer.exe'
      - '\msiexec.exe'
      - '\setup.exe'
      - '\powershell.exe'
  condition: selection_image and (selection_paths or selection_parents)
falsepositives:
  - Legitimate per-user Python installs and developer tooling
level: medium
tags:
  - attack.execution
  - attack.t1059.006
  - attack.t1204.002

---
title: PowerShell Implant Persistence via Run Key or Scheduled Task (WLDR Agent)
description: Detects registry Run-key modification or scheduled task registration referencing PowerShell, encoded commands, or user-writable script paths — persistence patterns consistent with the WLDR memory implant.
id: 6b1e4c90-2a8f-4d37-b5e9-7c3f1a0d9e33
status: experimental
author: Security Arsenal
logsource:
  category: registry_set
  product: windows
  service: sysmon
detection:
  selection_key:
    TargetObject|contains:
      - '\CurrentVersion\Run'
      - '\CurrentVersion\RunOnce'
  selection_value:
    Details|contains:
      - 'powershell'
      - 'pwsh'
      - ' -enc'
      - 'FromBase64String'
      - 'IEX'
      - '\AppData\'
      - '.ps1'
  condition: selection_key and selection_value
falsepositives:
  - Software updaters registering PowerShell-based maintenance tasks
level: high
tags:
  - attack.persistence
  - attack.t1547.001
  - attack.t1059.001
KQL — Microsoft Sentinel / Defender
// UAT-11795 hunt: ClickFix execution chains, Starland RAT staging, and WLDR C2 beaconing
let Lookback = 14d;
let C2Domains = dynamic(["zynaris.io", "windowscreenrepairnearme.com"]);
// 1) Network connections to known C2 / lure infrastructure
let NetHits = DeviceNetworkEvents
| where TimeGenerated > ago(Lookback)
| where RemoteUrl has_any (C2Domains)
| project NetTime=TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP;
// 2) Suspicious PowerShell / ClickFix-style execution
let ProcHits = DeviceProcessEvents
| where TimeGenerated > ago(Lookback)
| where (FileName in~ ("powershell.exe","pwsh.exe","mshta.exe")
        and ProcessCommandLine has_any ("-enc","FromBase64String","IEX","Invoke-Expression","DownloadString","Invoke-WebRequest"))
    or (FileName in~ ("python.exe","pythonw.exe")
        and (FolderPath has_any ("AppData","Temp","Public")
             or InitiatingProcessFileName in~ ("explorer.exe","msiexec.exe","setup.exe")))
| project ProcTime=TimeGenerated, DeviceName, FileName, ProcessCommandLine, InitiatingProcessFileName, SHA256;
union NetHits, ProcHits
| sort by DeviceName, NetTime
PowerShell
# UAT-11795 Endpoint Hunt — Starland RAT, WLDR agent, CastleStealer artifacts
# Run elevated on suspect hosts or deploy via your RMM/EDR live-response shell.

$Report = @()

# --- 1) Registry Run-key persistence referencing PowerShell or user paths ---
$RunPaths = @(
    'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run',
    'HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce',
    'HKLM:\Software\Microsoft\Windows\CurrentVersion\Run',
    'HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce'
)
foreach ($path in $RunPaths) {
    if (Test-Path $path) {
        Get-ItemProperty $path | ForEach-Object {
            $_.PSObject.Properties | Where-Object {
                $_.Value -match 'powershell|pwsh|-enc|FromBase64String|IEX|AppData|\.ps1|python'
            } | ForEach-Object {
                $Report += [pscustomobject]@{ Type='RunKey'; Location=$path; Name=$_.Name; Value=$_.Value }
            }
        }
    }
}

# --- 2) Scheduled tasks invoking PowerShell/Python from user-writable paths ---
Get-ScheduledTask | ForEach-Object {
    $actions = $_.Actions | Out-String
    if ($actions -match 'powershell|pwsh|-enc|AppData|python' ) {
        $Report += [pscustomobject]@{ Type='ScheduledTask'; Location=$_.TaskPath; Name=$_.TaskName; Value=($actions -replace '\s+',' ').Substring(0,[Math]::Min(200,$actions.Length)) }
    }
}

# --- 3) Starland RAT staging: python executables/interpreters in user-writable dirs ---
$UserPaths = @("$env:APPDATA", "$env:LOCALAPPDATA", "$env:TEMP", "$env:PUBLIC")
foreach ($dir in $UserPaths) {
    Get-ChildItem -Path $dir -Recurse -Include 'python*.exe','*.pyc' -ErrorAction SilentlyContinue |
        Select-Object -First 50 | ForEach-Object {
            $Report += [pscustomobject]@{ Type='PythonArtifact'; Location=$_.DirectoryName; Name=$_.Name; Value="Size: $($_.Length) bytes | Modified: $($_.LastWriteTime)" }
        }
}

# --- 4) Active connections to known UAT-11795 C2 domains ---
$C2 = @('zynaris.io','windowscreenrepairnearme.com')
foreach ($domain in $C2) {
    $ips = Resolve-DnsName $domain -ErrorAction SilentlyContinue | Where-Object { $_.IPAddress } | Select-Object -ExpandProperty IPAddress
    foreach ($ip in $ips) {
        $conns = Get-NetTCPConnection -RemoteAddress $ip -ErrorAction SilentlyContinue
        foreach ($c in $conns) {
            $proc = Get-Process -Id $c.OwningProcess -ErrorAction SilentlyContinue
            $Report += [pscustomobject]@{ Type='C2Connection'; Location=$domain; Name=$proc.ProcessName; Value="$($c.LocalAddress):$($c.LocalPort) -> $ip | State: $($c.State)" }
        }
    }
}

if ($Report.Count -gt 0) { $Report | Format-List; $Report | Export-Csv "$env:TEMP\uat11795_hunt.csv" -NoTypeInformation }
else { Write-Output "[+] No UAT-11795 artifacts found on $env:COMPUTERNAME" }

Response Priorities

Immediate (0–4 hours)

  • Block zynaris.io and windowscreenrepairnearme.com at DNS, proxy, and EDR network layers; import all 48 pulse hashes into EDR blocklists.
  • Hunt for the ClickFix execution pattern: explorer.exepowershell/mshta with -enc/IEX flags across the last 30 days. Any hit is a likely compromise — isolate and image.
  • Sweep for python.exe/pythonw.exe running from %APPDATA%/%TEMP% with network connections; Starland RAT requires an interpreter footprint.
  • Review Run keys and scheduled tasks for PowerShell-referencing persistence (WLDR agent).

24 Hours

  • Force credential resets for any user whose endpoint shows ClickFix, Starland, or CastleStealer artifacts — CastleStealer harvests browser-stored credentials and session tokens; assume full session compromise (cookies = MFA bypass).
  • Revoke active sessions and OAuth tokens for impacted users; invalidate remember-me tokens for webmail, IdP, and SaaS.
  • Check for cryptocurrency wallet applications/extensions on impacted hosts; treat any wallet found as drained and initiate exchange/custodian notification procedures.
  • Audit email and chat for the original lure (fake CAPTCHA, repair-utility download links) to scope the recipient population.

1 Week

  • Disable or restrict the Windows Run-dialog paste vector where policy allows, and deploy browser isolation or SmartScreen/edge-reputation enforcement for utility-software downloads — the campaign's SEO-poisoned lure domains depend on search-driven self-install.
  • Enforce application control (WDAC/AppLocker) blocking unsigned executables and interpreters from user-writable paths; a per-user Python interpreter executing from %APPDATA% should not be possible in a hardened enterprise.
  • Enable PowerShell Script Block Logging and AMSI everywhere if not already; WLDR's memory-resident design makes script telemetry your primary detection surface.
  • Brief end users on ClickFix: no legitimate website will ever ask you to paste a command into Run or a terminal to "verify" yourself. This single behavior change neutralizes the campaign's primary entry vector.
  • Add UAT-11795 infrastructure to passive-DNS monitoring; lure-domain naming patterns (repair/utility SEO themes) enable early detection of the next wave.

Related Resources

Security Arsenal Incident Response Managed SOC & MDR Services AlertMonitor Threat Detection From The Dark Side Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.