Back to Intelligence

ClingSTUN Proxy Backdoor + Fake MP4 NetSupport Loader: OTX Pulse Analysis — Edge Device Hijacking & Encrypted RAT Delivery

SA
Security Arsenal Team
October 17, 2026
11 min read

Two active AlienVault OTX pulses paint a picture of a criminal ecosystem increasingly focused on two complementary objectives: infrastructure hijacking and stealthy remote access delivery.

The first pulse documents ClingSTUN, an evolving Linux malware campaign that exploits a broad arsenal of known vulnerabilities in Internet-facing IoT and edge network devices (CVE-2025-34035, CVE-2022-36553, CVE-2024-23625, and others). Rather than deploying traditional DDoS botnet logic, ClingSTUN converts compromised devices into remotely controlled back-connect proxy nodes — effectively laundering attacker traffic through victim infrastructure. Tags associate the campaign with Mirai-style propagation behavior, suggesting either code reuse or operators migrating from legacy Mirai tooling to a more versatile proxy model. The indicator set references a wide spread of historical CVEs (CVE-2017-7921, CVE-2021-4034/PwnKit, CVE-2022-26134/Confluence, CVE-2021-21974/ESXi, CVE-2022-30190/Follina), indicating opportunistic mass exploitation across heterogeneous device fleets.

The second pulse documents a fake MP4 infection chain delivering the NetSupport Manager RAT. PowerShell loaders — staged behind Cloudflare-fronted infrastructure — fetch files that pass superficial file-type validation as video containers, but carry 6.5 MB of encrypted payload data hidden inside ISO Base Media File Format (ISOBMFF) uuid extension boxes rather than playable media. Once decrypted, the NetSupport client provides full interactive remote control of the victim host.

Collectively, these campaigns reflect a mature criminal playbook: abuse legitimate protocols (STUN, ISOBMFF, Cloudflare CDN) and neglected assets (edge devices) to build resilient, low-attribution intrusion infrastructure.

Threat Actor / Malware Profile

ClingSTUN (Linux Back-Connect Proxy Backdoor)

  • Attribution: Unknown; Mirai lineage indicators suggest evolved botnet operators.
  • Distribution: Mass exploitation of known CVEs against Internet-facing IoT and edge devices (routers, cameras, NAS, VPN appliances). The 90-indicator CVE list spans IP cameras (CVE-2017-7921), hypervisors (CVE-2021-21974), and network appliances — classic scanner-driven opportunism.
  • Payload behavior: Establishes a back-connect proxy channel abusing the STUN protocol (Session Traversal Utilities for NAT), allowing the operator to route traffic through the compromised device — a technique that defeats egress filtering assumptions because STUN (UDP/TCP 3478) is often permitted for VoIP/WebRTC. Supports multiple Linux architectures (MIPS, ARM, x86), confirming broad IoT targeting.
  • Persistence: Boot-level persistence combined with watchdog manipulation and process termination routines — the malware kills competing processes and interferes with device watchdog timers to survive reboots and prevent remediation.
  • Anti-analysis: proc filesystem manipulation to conceal processes and network sockets from standard enumeration tools on the device.

NetSupport Manager via Fake MP4 (Windows RAT Delivery)

  • Attribution: Unknown; NetSupport abuse is common across initial-access brokers and ransomware-affiliated intrusion sets.
  • Distribution: PowerShell loaders delivered via Cloudflare-fronted domains (approvalrequest-api.com, usersecuritycheck.com, x2664.com, karlenagida.com) and direct-IP URLs (e.g., http://89.34.90.111/tzast.mp4).
  • Payload behavior: The downloaded .mp4 files are structurally valid ISOBMFF containers, but the media data is replaced with ~6.5 MB of encrypted content inside uuid extension boxes. The PowerShell loader parses the container, extracts and decrypts the payload, and installs the NetSupport client.
  • C2 communication: NetSupport Manager's native RAT protocol over attacker-controlled infrastructure; delivery stage proxies through Cloudflare to mask origin IPs and evade domain-reputation blocking.
  • Persistence: NetSupport client installation writes service/registry autorun entries typical of the legitimate tool repurposed maliciously (commonly under HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run or as an installed service such as client32.exe).
  • Anti-analysis: Encrypted payload at rest (no scannable PE on disk until decryption), abuse of a legitimate signed remote-administration product to blend with IT tooling, and CDN fronting to frustrate takedown and attribution.

IOC Analysis

The indicator set breaks into two operational buckets:

Bucket 1 — Vulnerability indicators (ClingSTUN): 90 CVEs including CVE-2025-34035, CVE-2024-23625, CVE-2022-36553, CVE-2017-7921, CVE-2021-21974, CVE-2021-4034, CVE-2022-30190, CVE-2022-26134. CVEs are not blockable indicators — operationalize them as an attack-surface inventory: cross-reference every CVE against your edge device, VPN, camera, and hypervisor asset inventory, and prioritize patching any Internet-facing match. Watch for exploitation attempts in WAF/IPS logs targeting these CVE signatures, which indicate you are inside the campaign's scan envelope.

Bucket 2 — Network indicators (NetSupport chain):

  • Domains: x2664.com, usersecuritycheck.com, approvalrequest-api.com, karlenagida.com — add to DNS sinkhole/proxy block lists and hunt retroactively in DNS query logs (90-day lookback).
  • URLs: http://89.34.90.111/tzast.mp4, http://approvalrequest-api.com/333.mp4, http://approvalrequest-api.com/55555555.mp4 — note the pattern of numeric/randomized MP4 filenames; this regex pattern (/[0-9]{4,8}\.mp4) is itself a detection opportunity in proxy logs.
  • IPs: 89.34.90.111 — bare-IP HTTP delivery is a high-fidelity anomaly in most enterprise environments; block and hunt.

Tooling guidance: Enrich indicators via OTX (direct pulse subscription), VirusTotal, and urlscan.io. Pivot on Cloudflare-fronted domains using passive DNS (Censys, SecurityTrails) to uncover sibling infrastructure. For the MP4 containers, ISOBMFF parsing tools (mp4box, bento4, custom Python with isobmff libraries) can enumerate uuid boxes to confirm anomalous payload boxes on any recovered samples.

Detection Engineering

YAML
---
title: Suspicious MP4 Download Followed by PowerShell Execution - Fake MP4 NetSupport Chain
id: 9f2c1a44-7b31-4e58-9a1d-clingstun001
status: experimental
description: Detects PowerShell download cradles retrieving .mp4 files from suspicious domains or bare IPs, consistent with the fake MP4 NetSupport Manager delivery chain observed in OTX pulses.
author: Security Arsenal Threat Intelligence
date: 2026/10/17
references:
    - https://censys.com/blog/fake-mp4-file-carries-malicious-payload/
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        Image|endswith:
            - '\powershell.exe'
            - '\pwsh.exe'
    selection_cli:
        CommandLine|contains:
            - '.mp4'
            - 'tzast.mp4'
            - 'approvalrequest-api.com'
            - 'usersecuritycheck.com'
            - 'x2664.com'
            - 'karlenagida.com'
            - '89.34.90.111'
    selection_dl:
        CommandLine|contains:
            - 'Invoke-WebRequest'
            - 'Invoke-RestMethod'
            - 'wget '
            - 'curl '
            - 'DownloadString'
            - 'DownloadFile'
            - 'Start-BitsTransfer'
            - 'certutil'
    condition: selection_img and selection_cli and selection_dl
falsepositives:
    - Legitimate media download scripts (rare in enterprise contexts)
level: high
tags:
    - attack.execution
    - attack.t1059.001
    - attack.command_and_control
    - attack.t1105
---
title: NetSupport Manager Client Execution or Persistence Artifact
id: 7d3e8b21-4c92-4f61-b2e8-clingstun002
status: experimental
description: Detects execution of NetSupport Manager client binaries (client32.exe) from non-standard paths or registry Run-key persistence, indicative of unauthorized RAT installation.
author: Security Arsenal Threat Intelligence
date: 2026/10/17
references:
    - https://censys.com/blog/fake-mp4-file-carries-malicious-payload/
logsource:
    category: process_creation
    product: windows
detection:
    selection_binary:
        Image|endswith:
            - '\client32.exe'
            - '\pcictlui.exe'
            - '\remotelyanywhere.exe'
    filter_legitimate_path:
        Image|startswith:
            - 'C:\Program Files\NetSupport\'
            - 'C:\Program Files (x86)\NetSupport\'
    condition: selection_binary and not filter_legitimate_path
falsepositives:
    - Environments where NetSupport is legitimately deployed outside standard directories
level: high
tags:
    - attack.command_and_control
    - attack.t1219
    - attack.persistence
---
title: Linux Watchdog Manipulation or Proc Concealment - ClingSTUN Behavior
id: 3a91f5c7-8d44-4a29-c7f3-clingstun003
status: experimental
description: Detects Linux commands manipulating watchdog timers, writing to /proc/sys/kernel, or mass process termination consistent with ClingSTUN persistence and anti-analysis on edge devices.
author: Security Arsenal Threat Intelligence
date: 2026/10/17
references:
    - https://blog.polyswarm.io/clingstun-turns-vulnerable-edge-devices-into-attacker-infrastructure?
logsource:
    category: process_creation
    product: linux
detection:
    selection_watchdog:
        CommandLine|contains:
            - '/dev/watchdog'
            - 'watchdog -'
            - 'sysctl -w kernel'
    selection_proc:
        CommandLine|contains:
            - '/proc/sys/kernel'
            - 'mount -o bind'
            - '/proc/self'
    selection_kill:
        CommandLine|contains:
            - 'killall -9'
            - 'pkill -9'
            - 'kill -9 -1'
    condition: 1 of selection_*
falsepositives:
    - Embedded device firmware maintenance scripts
    - Legitimate watchdog configuration by system administrators
level: medium
tags:
    - attack.defense_evasion
    - attack.t1562.001
    - attack.persistence
KQL — Microsoft Sentinel / Defender
// Hunt: Fake MP4 NetSupport delivery + ClingSTUN-related egress anomalies
// Microsoft Sentinel / Defender XDR
let suspicious_domains = dynamic(["x2664.com","usersecuritycheck.com","approvalrequest-api.com","karlenagida.com"]);
let suspicious_ips = dynamic(["89.34.90.111"]);
// 1. Network connections to known NetSupport delivery infrastructure
DeviceNetworkEvents
| where TimeGenerated > ago(14d)
| where RemoteUrl has_any (suspicious_domains)
   or RemoteIP in (suspicious_ips)
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort
| extend HuntType = "Known IOC Match"
;
// 2. PowerShell fetching .mp4 files (behavioral)
DeviceProcessEvents
| where TimeGenerated > ago(14d)
| where FileName in~ ("powershell.exe","pwsh.exe")
| where ProcessCommandLine has_any (".mp4","DownloadFile","DownloadString","Invoke-WebRequest","Start-BitsTransfer")
   and ProcessCommandLine has_any ("http://","https://")
| project TimeGenerated, DeviceName, AccountName, ProcessCommandLine, InitiatingProcessFileName
| extend HuntType = "PowerShell MP4 Download Cradle"
;
// 3. NetSupport client execution from non-standard locations
DeviceProcessEvents
| where TimeGenerated > ago(30d)
| where FileName =~ "client32.exe"
| where not (FolderPath has_any ("Program Files\\NetSupport","Program Files (x86)\\NetSupport"))
| project TimeGenerated, DeviceName, AccountName, FolderPath, ProcessCommandLine, SHA256
| extend HuntType = "NetSupport Client Non-Standard Path"
;
// 4. STUN (3478) egress from servers/edge-adjacent Linux hosts - ClingSTUN proxy behavior
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where RemotePort == 3478
| where RemoteIPType == "Public"
| where not (InitiatingProcessFileName has_any ("teams","zoom","skype","webrtc","chrome","firefox","msedge"))
| summarize ConnCount = count(), RemoteIPs = make_set(RemoteIP, 20) by DeviceName, InitiatingProcessFileName
| where ConnCount > 50
| extend HuntType = "Anomalous STUN Egress Volume"
PowerShell
# Security Arsenal - Fake MP4 / NetSupport & ClingSTUN Windows-Side IOC Hunt
# Run elevated. Outputs JSON results per host.

$results = [ordered]@{ Host = $env:COMPUTERNAME; Timestamp = (Get-Date).ToString('o'); Findings = @() }

# 1. DNS cache check for known NetSupport delivery domains
$badDomains = @('x2664.com','usersecuritycheck.com','approvalrequest-api.com','karlenagida.com')
$dnsCache = Get-DnsClientCache -ErrorAction SilentlyContinue
foreach ($d in $badDomains) {
    $hits = $dnsCache | Where-Object { $_.Entry -like "*$d*" }
    if ($hits) { $results.Findings += [ordered]@{ Type='DNSCache'; Indicator=$d; Detail=($hits | Out-String) } }
}

# 2. Active/historical TCP connections to known bad IP
$conns = Get-NetTCPConnection -ErrorAction SilentlyContinue | Where-Object { $_.RemoteAddress -eq '89.34.90.111' }
if ($conns) { $results.Findings += [ordered]@{ Type='NetworkConnection'; Indicator='89.34.90.111'; Detail=($conns | Select-Object State,RemotePort,OwningProcess | Out-String) } }

# 3. NetSupport client artifacts: processes, services, Run keys
$nsProcs = Get-Process -ErrorAction SilentlyContinue | Where-Object { $_.ProcessName -match 'client32|pcictlui|nsm' }
foreach ($p in $nsProcs) {
    if ($p.Path -notmatch 'Program Files.*NetSupport') {
        $results.Findings += [ordered]@{ Type='Process'; Indicator='NetSupportClient'; Detail="$($p.ProcessName) -> $($p.Path)" }
    }
}
$runKeys = @('HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run','HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run','HKLM:\SOFTWARE\WOW6432Node\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 'client32|netsupport|\.mp4') {
            $results.Findings += [ordered]@{ Type='RunKey'; Indicator=$rk; Detail="$($_.Name) = $val" }
        }
    }
}
Get-Service -ErrorAction SilentlyContinue | Where-Object { $_.Name -match 'client32|netsupport' } | ForEach-Object {
    $results.Findings += [ordered]@{ Type='Service'; Indicator=$_.Name; Detail="Status=$($_.Status)" }
}

# 4. Suspicious MP4 files with oversized uuid boxes (heuristic: MP4 >5MB recently written to user/temp paths)
$searchPaths = @("$env:TEMP","$env:USERPROFILE\Downloads","C:\ProgramData","C:\Users\Public")
foreach ($sp in $searchPaths) {
    Get-ChildItem -Path $sp -Filter '*.mp4' -Recurse -ErrorAction SilentlyContinue |
        Where-Object { $_.Length -gt 5MB -and $_.LastWriteTime -gt (Get-Date).AddDays(-14) } |
        ForEach-Object {
            # Check for uuid box signature within first 64KB
            $fs = [System.IO.File]::OpenRead($_.FullName)
            $buf = New-Object byte[] 65536; [void]$fs.Read($buf,0,65536); $fs.Close()
            $head = [System.Text.Encoding]::ASCII.GetString($buf)
            $uuidPresent = $head -match 'uuid'
            $noMoov = $head -notmatch 'moov'
            if ($uuidPresent -and $noMoov) {
                $results.Findings += [ordered]@{ Type='SuspiciousMP4'; Indicator=$_.FullName; Detail="Size=$($_.Length); uuid box present, no moov atom in header" }
            }
        }
}

# 5. PowerShell ScriptBlock/Process execution referencing mp4 (Event 4688/4104 style check via recent event log)
Get-WinEvent -FilterHashtable @{ LogName='Security'; Id=4688; StartTime=(Get-Date).AddDays(-7) } -ErrorAction SilentlyContinue |
    Where-Object { $_.Message -match 'powershell' -and $_.Message -match '\.mp4' } |
    Select-Object -First 20 | ForEach-Object {
        $results.Findings += [ordered]@{ Type='Event4688'; Indicator='PowerShell+MP4'; Detail=$_.Message.Substring(0,[Math]::Min(300,$_.Message.Length)) }
    }

$results | ConvertTo-Json -Depth 4

Response Priorities

Immediate (0–24h)

  • Block the four delivery domains and 89.34.90.111 at DNS, web proxy, and perimeter firewall. Block the numeric-filename MP4 URL pattern (/[0-9]{4,8}\.mp4 over HTTP) at the proxy.
  • Hunt all endpoints for PowerShell download cradles referencing .mp4 (14-day lookback) and for client32.exe outside sanctioned NetSupport deployment paths.
  • Audit Internet-facing edge devices (VPNs, routers, cameras, NAS, ESXi hosts) against the ClingSTUN CVE list; isolate or patch any matching unpatched asset. Review egress for STUN (3478) anomalies from servers and network appliances.

24–48h

  • NetSupport Manager is frequently a precursor to hands-on-keyboard intrusion including credential theft and lateral movement — treat any confirmed NetSupport infection as a full compromise: force credential resets for all users of the affected host (and any accounts that authenticated to it), revoke active sessions/tokens, and review authentication logs for abnormal logon patterns.
  • For any edge device confirmed compromised by ClingSTUN, assume its traffic was proxied: review flows routed through the device for signs the attacker's traffic traversed your network boundary, and check whether internal segments reachable from the device show secondary compromise.

1 Week

  • Segment IoT/edge devices onto isolated VLANs with no inbound Internet exposure and tightly restricted egress — edge devices should never need arbitrary outbound STUN or HTTP to the open Internet.
  • Establish an edge-device lifecycle policy: firmware currency SLAs, vendor EOL tracking, and default-credential rotation. Devices unpatchable against the listed CVEs must be decommissioned or fronted by compensating controls.
  • Restrict PowerShell (Constrained Language Mode / AppLocker / WDAC) on standard user endpoints, and implement ISOBMFF-aware content inspection or block .mp4 downloads from uncategorized domains for users without a business need.
  • Add NetSupport and similar legitimate RAT tools to an application allow/deny policy — unapproved remote-administration tooling should alert by default.

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.