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:
- 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. - 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.exespawning 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
.pycor 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 -encoriexcradle 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:
| Type | Samples | Operationalization |
|---|---|---|
| Domains | windowscreenrepairnearme.com, zynaris.io | C2 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...04a2 | Trojans, 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 -decodefor 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
---
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
// 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
# 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.ioandwindowscreenrepairnearme.comat DNS, proxy, and EDR network layers; import all 48 pulse hashes into EDR blocklists. - Hunt for the ClickFix execution pattern:
explorer.exe→powershell/mshtawith-enc/IEXflags across the last 30 days. Any hit is a likely compromise — isolate and image. - Sweep for
python.exe/pythonw.exerunning 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.