Two freshly published AlienVault OTX pulses expose parallel infostealer and extortion operations with direct relevance to enterprise credential security. The first, attributed to the financially motivated Russian-speaking actor UAT-11795, combines the ClickFix social-engineering technique with a Python-based RAT (Starland) and a bespoke in-memory PowerShell C2 implant (WLDR agent). The second documents Spirals, a previously unseen Rust-based ransomware deployed via compromised IIS servers against a South Asian IT services firm in a double-extortion play. Both campaigns converge on one objective: harvesting credentials and monetizing access.
Threat Summary
These two pulses collectively illustrate the modern access-to-extortion pipeline that dominates the current threat landscape:
-
UAT-11795 (active since June 2025) is a Russian-speaking, financially motivated adversary targeting users in the United States, Germany, Romania, and Venezuela. The operation uses ClickFix-style lures — fake browser update and error-fix pages — to trick victims into executing malicious commands, delivering trojanized installers that stage the Starland RAT (Python) and the WLDR agent (PowerShell, in-memory C2). Post-compromise tooling includes CastleStealer and the commodity Remcos RAT, with objectives spanning credential harvesting and cryptocurrency theft.
-
Spirals ransomware (observed June 2026) represents the downstream monetization of web-server access. An unknown actor breached an internet-facing IIS web server at a South Asian IT services company via an ASP.NET web shell, moved laterally using Chisel and revsocks tunneling, masked egress through Cloudflare Tunnel, performed credential dumping, and deployed the Rust-based Spirals payload with defense evasion, privilege escalation, and mass encryption — followed by double extortion.
Collective signal: initial access brokers and financially motivated crews are industrializing credential theft at both the endpoint (ClickFix/RAT delivery) and the perimeter (web-shell → tunnel → dump → encrypt). Stolen credentials from Starland/CastleStealer campaigns feed directly into the access market that ransomware operators like the Spirals crew consume. Enterprise identity infrastructure is the common target.
Threat Actor / Malware Profile
UAT-11795 Toolset
| Component | Type | Behavior |
|---|---|---|
| Starland RAT | Python-based remote access trojan | Cross-platform execution via Python interpreter; remote command execution, data staging |
| WLDR agent | PowerShell C2 implant | Memory-resident; avoids disk writes; beacons to actor-controlled C2 domains such as windowscreenrepairnearme.com and zynaris.io |
| CastleStealer | Infostealer | Browser credential/cookie theft, cryptocurrency wallet targeting |
| Remcos RAT | Commodity RAT | Full remote control, keylogging, persistence via registry Run keys and scheduled tasks |
Distribution method: ClickFix social engineering — victims are shown fake CAPTCHA, browser-error, or "fix" dialogs instructing them to paste attacker-supplied commands into a Run dialog or terminal. This delivers trojanized installers that chain the Starland loader into the WLDR memory implant.
C2 communication: The WLDR agent operates as an in-memory PowerShell implant beaconing over HTTPS to disposable actor-registered domains. Living-off-the-land use of powershell.exe with encoded commands is a hallmark.
Persistence: Registry Run keys, scheduled tasks, and — for Remcos — service installation. Python persistence via user-profile startup entries is common for interpreted RATs.
Anti-analysis: In-memory-only PowerShell execution leaves minimal disk artifacts; encoded/compressed script blocks evade signature scanning; trojanized installers abuse legitimate signing patterns and brand mimicry.
Spirals Ransomware
| Component | Function |
|---|---|
| ASP.NET web shell | Initial access on internet-facing IIS; dropped under C:\inetpub\wwwroot\ paths |
| Chisel / revsocks | TCP tunneling and reverse SOCKS proxying for covert lateral movement |
| Cloudflare Tunnel | Legitimate-infrastructure C2/egress blending with allowed cloud traffic |
| Spirals payload | Rust-based encryptor with defense evasion, privilege escalation, and multi-threaded encryption |
Attack chain: web shell → credential dumping (LSASS/SAM) → tunneling tool deployment → lateral movement → Spirals execution → encryption + data exfiltration → double extortion.
IOC Analysis
The pulses contain 48 and 13 indicators respectively, dominated by:
- File hashes (SHA256/SHA1/MD5) — the bulk of both sets. These represent Starland RAT binaries, WLDR loader stages, CastleStealer samples, Remcos payloads, the Spirals encryptor, and the ASP.NET web shell. Hashes are high-fidelity but low-durability (rebuilds change them); operationalize via EDR blocklists, threat-intel platform (TIP) ingestion, and retro-hunts in file-creation telemetry.
- Domains (
windowscreenrepairnearme.com,zynaris.io) — WLDR C2 infrastructure. Block at DNS/proxy and hunt for historical resolution in DNS and proxy logs. ClickFix campaigns rotate domains quickly, so pair domain blocking with the behavioral Sigma detections below.
SOC operationalization guidance:
- Ingest all 61 indicators into your TIP and push hash blocklists to EDR (Defender, CrowdStrike, SentinelOne) and domain blocks to DNS filtering (Umbrella, Zscaler, internal resolvers).
- Run retroactive hunts over 90 days of DNS, proxy, and file-creation telemetry — UAT-11795 has been active since June 2025, so infection may predate detection.
- Use VirusTotal Enterprise / Hybrid Analysis to pivot on hashes for related samples; decode any captured PowerShell with CyberChef (Base64/gzip chains) to extract embedded C2.
- Flag any internal host communicating with Cloudflare Tunnel endpoints (
*.trycloudflare.com) that has no sanctioned tunnel deployment — a strong Spirals-stage egress indicator.
Detection Engineering
Sigma Rules
---
title: ClickFix-Style User-Executed Malicious Command
id: 7c3a1e90-starland-clickfix-001
status: experimental
description: Detects ClickFix social-engineering execution pattern where users paste attacker commands into Run dialog or terminal spawning PowerShell/mshta with encoded commands, as used by UAT-11795 to deliver Starland RAT and WLDR agent.
author: Security Arsenal Threat Intelligence
date: 2026/08/15
references:
- https://blog.talosintelligence.com/uat-11795-deploys-novel-starland-rat-and-bespoke-wldr-c2-implant-in-financially-motivated-campaign/
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\explorer.exe'
- '\rundll32.exe'
selection_child:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- '\mshta.exe'
- '\wscript.exe'
selection_flags:
CommandLine|contains:
- ' -enc '
- ' -ec '
- 'FromBase64String'
- 'IEX'
- 'Invoke-Expression'
- 'DownloadString'
- 'iwr '
- 'Invoke-WebRequest'
condition: selection_parent and selection_child and selection_flags
falsepositives:
- Rare administrative automation launched interactively
level: high
tags:
- attack.execution
- attack.t1059.001
- attack.t1204.002
---
title: WLDR Agent or Starland RAT C2 Beaconing to Known Infrastructure
id: 7c3a1e90-wldr-c2-002
status: experimental
description: Detects network connections from scripting or Python processes to UAT-11795 C2 domains associated with the WLDR PowerShell implant and Starland RAT campaign.
author: Security Arsenal Threat Intelligence
date: 2026/08/15
references:
- https://blog.talosintelligence.com/uat-11795-deploys-novel-starland-rat-and-bespoke-wldr-c2-implant-in-financially-motivated-campaign/
logsource:
category: network_connection
product: windows
detection:
selection_domain:
DestinationHostname:
- 'windowscreenrepairnearme.com'
- 'zynaris.io'
selection_process:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- '\python.exe'
- '\pythonw.exe'
- '\wscript.exe'
- '\mshta.exe'
condition: selection_domain and selection_process
falsepositives:
- None expected; domains are actor-registered C2
level: critical
tags:
- attack.command_and_control
- attack.t1071.001
- attack.t1059.001
---
title: Suspicious Tunneling Tool Execution on Web Server (Chisel / revsocks / Cloudflare Tunnel)
id: 7c3a1e90-spirals-tunnel-003
status: experimental
description: Detects execution of Chisel, revsocks, or cloudflared tunneling binaries on IIS web servers, a hallmark of the Spirals ransomware intrusion chain for covert C2 and lateral movement. Also flags suspicious child processes of w3wp.exe consistent with ASP.NET web shell activity.
author: Security Arsenal Threat Intelligence
date: 2026/08/15
references:
- https://www.security.com/threat-intelligence/ransomware-spirals-extortion
logsource:
category: process_creation
product: windows
detection:
selection_tunnel:
Image|endswith:
- '\chisel.exe'
- '\revsocks.exe'
- '\cloudflared.exe'
CommandLine|contains:
- 'trycloudflare.com'
- 'chisel client'
- 'chisel server'
- '--socks5'
selection_webshell:
ParentImage|endswith: '\w3wp.exe'
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\whoami.exe'
- '\net.exe'
- '\nltest.exe'
condition: 1 of selection_*
falsepositives:
- Sanctioned Cloudflare Tunnel deployments for internal apps (whitelist by path and hash)
- Web application code legitimately spawning system tools (rare on IIS)
level: high
tags:
- attack.command_and_control
- attack.t1572
- attack.t1090.001
- attack.persistence
- attack.t1505.003
Microsoft Sentinel KQL Hunt
// UAT-11795 (Starland RAT / WLDR) + Spirals ransomware combined hunt
// Searches process, network, and file telemetry for campaign indicators and behaviors
let C2Domains = dynamic(["windowscreenrepairnearme.com", "zynaris.io"]);
let BadHashes = dynamic([
"a6821c7e9bfe2e6af0f690d906ec6a26161e2198c256fb60f3b4731c317f3ad9",
"162e436f18fe6099c57855c8d63fd747493624e87702dc749b242eb9a6b758ca",
"17e41d66ebfd56edc960f58f4285697ceceaa812514bb15092672c747979896e",
"1a01ad25712d306f27f526332fdccf959f2de53207b54e4e80f60faa804d6cb6",
"0f9574dc38e5c34a31153f0bcc603c6ec29cb3bf65c3d25380dbe86d42573141",
"4cab935d0ec400059a3fcdc95b6623efdd51a61dff401fba8d5da244cc2de649",
"7f0d49b11d0a3697685622ce510c570199bf2dc76515b3f9a6b6735de8c9134b",
"83a7e51f3787ac5a8a9884edd0a58ddbef380969aa6529d282a461a1a614a892",
"84b9a9a1668145df04faa3d0e118e2f0acbebd3d9d260baf3a355b44c815c22d",
"862a3ca7e944ccf0ff3a6d556b34faade4b68343015c35a014a43725ac14a2a1"
]);
union isfuzzy=true
(DeviceNetworkEvents
| where TimeGenerated > ago(90d)
| where RemoteUrl in~ (C2Domains)
| project Hit="C2_Beacon", TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP),
(DeviceFileEvents
| where TimeGenerated > ago(90d)
| where SHA256 in~ (BadHashes) or MD5 in~ ("c33f097fdb2b69b4cbb1c3f29ae88b43", "26a15a6a9bea58e9ad2ada9a6c8606b5")
| project Hit="Known_Malware_Hash", TimeGenerated, DeviceName, FileName, FolderPath, SHA256),
(DeviceProcessEvents
| where TimeGenerated > ago(90d)
// ClickFix pattern: explorer-spawned encoded PowerShell
| where (InitiatingProcessFileName =~ "explorer.exe"
and FileName in~ ("powershell.exe", "pwsh.exe", "mshta.exe")
and ProcessCommandLine has_any ("-enc", "-ec ", "FromBase64String", "IEX", "DownloadString"))
// Spirals chain: w3wp spawning shells or tunneling tools
or (InitiatingProcessFileName =~ "w3wp.exe"
and FileName in~ ("cmd.exe", "powershell.exe", "whoami.exe", "net.exe"))
or FileName in~ ("chisel.exe", "revsocks.exe", "cloudflared.exe")
or ProcessCommandLine has_any ("trycloudflare.com", "chisel client", "--socks5")
| project Hit="Behavioral", TimeGenerated, DeviceName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, SHA256)
| sort by TimeGenerated desc
PowerShell IOC & Artifact Hunt Script
# Security Arsenal - UAT-11795 (Starland/WLDR/Remcos) & Spirals Hunt Script
# Run elevated on endpoints and web servers. Outputs findings to console and CSV.
$findings = @()
# --- 1. Known malicious file hashes (OTX pulses) ---
$badHashes = @(
"a6821c7e9bfe2e6af0f690d906ec6a26161e2198c256fb60f3b4731c317f3ad9",
"162e436f18fe6099c57855c8d63fd747493624e87702dc749b242eb9a6b758ca",
"17e41d66ebfd56edc960f58f4285697ceceaa812514bb15092672c747979896e",
"1a01ad25712d306f27f526332fdccf959f2de53207b54e4e80f60faa804d6cb6",
"0f9574dc38e5c34a31153f0bcc603c6ec29cb3bf65c3d25380dbe86d42573141",
"4cab935d0ec400059a3fcdc95b6623efdd51a61dff401fba8d5da244cc2de649",
"7f0d49b11d0a3697685622ce510c570199bf2dc76515b3f9a6b6735de8c9134b",
"83a7e51f3787ac5a8a9884edd0a58ddbef380969aa6529d282a461a1a614a892",
"84b9a9a1668145df04faa3d0e118e2f0acbebd3d9d260baf3a355b44c815c22d",
"862a3ca7e944ccf0ff3a6d556b34faade4b68343015c35a014a43725ac14a2a1"
)
$scanPaths = @("$env:TEMP", "$env:APPDATA", "$env:LOCALAPPDATA", "$env:USERPROFILE\Downloads", "C:\ProgramData", "C:\inetpub\wwwroot")
foreach ($p in $scanPaths) {
if (Test-Path $p) {
Get-ChildItem -Path $p -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
$h = (Get-FileHash -Path $_.FullName -Algorithm SHA256 -ErrorAction SilentlyContinue).Hash
if ($h -and ($badHashes -contains $h.ToLower())) {
$findings += [pscustomobject]@{Type="MaliciousHash"; Detail="$($_.FullName) SHA256=$h"}
}
}
}
}
# --- 2. Persistence artifacts: Run keys and scheduled tasks (Remcos / Starland / WLDR) ---
$runKeys = @(
"HKCU:\Software\Microsoft\Windows\CurrentVersion\Run",
"HKLM:\Software\Microsoft\Windows\CurrentVersion\Run"
)
foreach ($rk in $runKeys) {
Get-ItemProperty -Path $rk -ErrorAction SilentlyContinue | Get-Member -MemberType NoteProperty | ForEach-Object {
$val = (Get-ItemProperty -Path $rk -Name $_.Name -ErrorAction SilentlyContinue).($_.Name)
if ($val -match "powershell|python|mshta|wscript|-enc|FromBase64String") {
$findings += [pscustomobject]@{Type="SuspiciousRunKey"; Detail="$rk\$($_.Name) = $val"}
}
}
}
Get-ScheduledTask -ErrorAction SilentlyContinue | Where-Object {
$_.Actions.Execute -match "powershell|python|mshta|wscript" -and
$_.Actions.Arguments -match "-enc|-w hidden|IEX|DownloadString"
} | ForEach-Object {
$findings += [pscustomobject]@{Type="SuspiciousScheduledTask"; Detail="$($_.TaskName): $($_.Actions.Execute) $($_.Actions.Arguments)"}
}
# --- 3. Network connections to WLDR C2 domains and tunneling processes ---
$c2Domains = @("windowscreenrepairnearme.com", "zynaris.io")
foreach ($d in $c2Domains) {
$resolved = Resolve-DnsName -Name $d -ErrorAction SilentlyContinue
if ($resolved) { $findings += [pscustomobject]@{Type="C2DomainResolves"; Detail="$d -> $(($resolved.IPAddress) -join ',')" } }
}
Get-NetTCPConnection -State Established -ErrorAction SilentlyContinue | ForEach-Object {
$proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
if ($proc.ProcessName -match "powershell|python|chisel|revsocks|cloudflared") {
$findings += [pscustomobject]@{Type="SuspiciousConnection"; Detail="$($proc.ProcessName) (PID $($_.OwningProcess)) -> $($_.RemoteAddress):$($_.RemotePort)"}
}
}
# --- 4. Tunneling binaries and ASP.NET web shells (Spirals chain) ---
Get-Process -ErrorAction SilentlyContinue | Where-Object { $_.ProcessName -match "chisel|revsocks|cloudflared" } | ForEach-Object {
$findings += [pscustomobject]@{Type="TunnelingProcess"; Detail="$($_.ProcessName) PID=$($_.Id) Path=$($_.Path)"}
}
if (Test-Path "C:\inetpub\wwwroot") {
Get-ChildItem "C:\inetpub\wwwroot" -Recurse -Include *.aspx,*.asp,*.ashx -ErrorAction SilentlyContinue | Where-Object {
(Get-Content $_.FullName -Raw -ErrorAction SilentlyContinue) -match "ProcessStartInfo|cmd.exe|eval\(|Request\[|runat=.server"
} | ForEach-Object {
$findings += [pscustomobject]@{Type="PossibleWebShell"; Detail="$($_.FullName) LastWrite=$($_.LastWriteTime)"}
}
}
# --- Output ---
if ($findings.Count -gt 0) {
$findings | Format-Table -AutoSize
$findings | Export-Csv -Path ".\UAT11795_Spirals_Hunt_$(Get-Date -Format 'yyyyMMdd_HHmm').csv" -NoTypeInformation
Write-Host "[!] $($findings.Count) findings — escalate to IR immediately." -ForegroundColor Red
} else {
Write-Host "[+] No Starland/WLDR/Spirals artifacts found on this host." -ForegroundColor Green
}
Response Priorities
Immediate (0–4 hours)
- Block at the edge: Push
windowscreenrepairnearme.comandzynaris.ioto DNS filtering and web proxies; block all 61 file hashes in EDR and email gateways; restrict or alert on*.trycloudflare.comegress absent sanctioned Cloudflare Tunnel use. - Hunt execution artifacts: Run the Sigma rules and KQL query across 90 days of telemetry. ClickFix infections depend on user action — search for explorer-spawned encoded PowerShell and Python processes under user profiles.
- Isolate any host with confirmed Starland/WLDR/Remcos execution or web shells under
C:\inetpub\wwwroot.
24 Hours
- Credential theft is confirmed in this activity (CastleStealer, Starland, credential dumping in the Spirals chain). Treat every credential on any confirmed-compromised host as exposed: force password resets, revoke active sessions and tokens, and rotate service accounts.
- Audit MFA posture — infostealer-harvested session cookies bypass password-only controls; invalidate remembered devices and enforce phishing-resistant MFA (FIDO2) for remote access and privileged accounts.
- Check identity providers (Entra ID, Okta) for anomalous sign-ins from affected users, particularly impossible-travel logins from the targeted geographies.
1 Week
- ClickFix hardening: Deploy browser-based protections and user guidance against paste-into-Run attacks; consider AppLocker/WDAC policies blocking user-profile script execution and restricting
powershell.exe,mshta.exe, andpython.exefor standard users. - Web server hardening: Patch and audit internet-facing IIS; deploy file-integrity monitoring on web roots; remove unused ASP.NET handlers; segment web servers from internal AD to break the web-shell → credential-dump → lateral-movement path.
- Tunneling controls: Block unsanctioned tunneling tools via application control and egress filtering; alert on
w3wp.exechild processes and any cloudflared/chisel execution anywhere in the estate.
Related Resources
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.