Three OTX pulses published 2026-08-19 collectively paint a picture of a maturing credential-theft and session-hijacking economy spanning commodity MaaS operators, nation-state actors, and phishing-as-a-service (PhaaS) vendors.
Pulse 1 — ClickFix → Modular Windows RAT (MaaS): A new ClickFix social-engineering campaign lures Windows users into executing malicious MSI installers (cloud-verificate.com/NodeServer-Setup-Full.msi) that drop a NodeJS-based modular RAT/infostealer associated with LegionLoader and LummaStealer ecosystems. The malware is deliberately forensic-light: core stealer modules and communication protocols are loaded in-memory only after C2 connection, minimizing on-disk artifacts. C2 runs gRPC streaming over Tor (port 50051 on a .onion service), with cryptocurrency theft as a primary objective. Decoy/lure domains include bull-run.fun and spot-wave.fun — cryptocurrency-themed bait.
Pulse 2 — Kimsuky Supply-Chain Intrusion (DPRK): North Korea-linked Kimsuky compromised South Korean groupware vendors between 2025 and early 2026 via vulnerability exploitation and spear-phishing, deploying two new Gomir/HttpTroy-family variants: BirdTroy (custom protocol C2 over HTTP/3 QUIC) and DriveTroy (abusing Google Drive as a C2 channel). Supporting tooling includes TrollStealer, GoBear, Endoor, and HttpSpy. Infrastructure piggybacks on legitimate remote-access service DWService (*.dwservice.net) and compromised vendor hostnames (commit.hanbiro.o-r.kr). This is a classic supply-chain pivot: compromise the software vendor, ride trust relationships into downstream enterprises.
Pulse 3 — Mirage2FA PhaaS (LinX Coders): An active adversary-in-the-middle phishing platform targeting Microsoft 365, with 4,000+ victims, 63.7% in the US, across Technology, Manufacturing, Education, Finance, Healthcare, and Telecom. Mirage2FA proxies real M365 authentication flows to steal credentials AND authenticated session cookies, defeating MFA. Delivery uses HTML smuggling; the kit communicates with backend panels over WebSockets. 75 indicators span dedicated phishing IPs (192.52.166.55, 181.214.165.173, 83.147.53.130, 209.205.197.130) and themed domains (sopbtech.store, pcvgtech.store, verpox.shop, galatasaraydanhaberler.com).
The connective tissue: all three operations target identity — harvested credentials, stolen session tokens, and cryptocurrency wallets — and all three deliberately hide C2 inside legitimate or encrypted channels (Tor, Google Drive, HTTP/3, WebSockets, AiTM proxies). Perimeter blocking alone will not catch these.
Threat Actor / Malware Profile
ClickFix Modular NodeJS RAT (Unknown actor — MaaS offering)
- Distribution: ClickFix social engineering — fake CAPTCHA/verification pages instruct users to paste and run commands, delivering MSI installers (
NodeServer-Setup-Full.msi). - Payload behavior: Modular architecture; the MSI drops a lightweight loader. Stealing modules and comms protocols are fetched dynamically and executed in-memory only after C2 check-in, leaving minimal disk artifacts.
- C2 communication: gRPC streaming (port 50051) routed through the Tor network to
yuhvgbzsa66biqeatbmdvfo5b5jjefcmz5t2vjuvco5qtdkshfpabyid.onion. - Persistence: MSI-based installation artifacts; loader staged to survive reboots while modules remain volatile.
- Anti-analysis: In-memory module delivery, Tor-encrypted C2, dynamic capability loading to defeat static signature and sandbox detonation.
Kimsuky — BirdTroy / DriveTroy (Gomir/HttpTroy family)
- Distribution: Vulnerability exploitation of South Korean groupware platforms + spear-phishing (supply-chain vector).
- Payload behavior: BirdTroy implements custom protocol C2; DriveTroy exfiltrates and receives tasking via Google Drive API abuse. Supporting families (TrollStealer, GoBear, Endoor, HttpSpy) provide credential theft, backdoor, and recon capabilities.
- C2 communication: HTTP/3 (QUIC/UDP 443) for BirdTroy — unusual enough to be a high-fidelity hunt pivot; legitimate Google Drive traffic for DriveTroy; DWService remote-access nodes (
node828765.dwservice.net,node896147.dwservice.net) used as interactive access. - Persistence: Implants staged within compromised vendor software update/distribution paths.
- Anti-analysis: Blending C2 into legitimate cloud SaaS traffic; living-off-trusted-infrastructure via compromised vendor hostnames.
Mirage2FA (LinX Coders — PhaaS)
- Distribution: Phishing emails carrying HTML smuggling attachments that assemble M365-lookalike lure pages client-side, bypassing attachment scanning.
- Payload behavior: Adversary-in-the-middle reverse proxy relays the real Microsoft login flow, capturing credentials, MFA responses, and the resulting session cookie/token in real time.
- C2 communication: WebSocket channels between victim browser and operator backend for live session relay.
- Persistence: Stolen session tokens replayed from attacker infrastructure — no endpoint persistence required, which is why identity-layer detection is mandatory.
- Anti-analysis: Client-side HTML assembly, ephemeral themed phishing domains (
.store,.shopTLDs), fast infrastructure rotation.
IOC Analysis
Indicator types in this set:
- File hashes (SHA256/MD5): MSI installer and Kimsuky implant hashes — use for EDR blocklists and retro-hunts. Note: hash-only detection is fragile for the ClickFix RAT since modules are memory-resident; treat hashes as loader indicators only.
- .onion domains/URLs: High-fidelity. Legitimate enterprise endpoints have virtually no reason to resolve Tor or connect outbound to gRPC on :50051. Block Tor at the egress and alert on any Tor process execution.
- IPv4 (Mirage2FA): Dedicated phishing infrastructure — feed to firewall/proxy block and correlate against proxy logs for the last 90 days. PhaaS IPs are frequently re-used across lure domains.
- Phishing hostnames (
*.store,*.shop,office.*subdomains): Theoffice.pcvgtech.storepattern — M365-themed subdomain on a junk TLD — is a reusable detection heuristic, not just a one-off IOC. - Legitimate-service hostnames (DWService, Google Drive): Cannot be blocked outright. Detect behaviorally: non-standard QUIC/UDP-443 flows, DWService execution on endpoints with no sanctioned remote-access policy, and anomalous Google Drive API token usage from endpoints.
Operationalization: Import all 112 indicators into your TI platform (MISP/OpenCTI) with TLP:WHITE handling; push network IOCs to proxy/DNS sinkhole; push hashes to EDR; build detection content (below) for the behavioral layer, because IOCs from PhaaS and MaaS rotate faster than blocklists update. Tools: ANY.RUN/VirusTotal for sample detonation, MISP for IOC correlation, SigmaHQ pipelines for rule conversion to your SIEM.
Detection Engineering
---
title: ClickFix MSI Execution via User-Pasted Command (mshta/powershell)
id: 7c3a1f2e-9b41-4d2a-a6c8-1e5f0a9b2c01
status: experimental
description: Detects ClickFix-style social engineering where users are tricked into running commands that fetch and execute MSI installers (NodeJS RAT delivery pattern).
author: Security Arsenal
date: 2026/08/19
logsource:
category: process_creation
product: windows
service: sysmon
detection:
selection_parent:
ParentImage|endswith:
- '\explorer.exe'
- '\msedge.exe'
- '\chrome.exe'
- '\firefox.exe'
selection_child:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- '\cmd.exe'
- '\mshta.exe'
- '\wscript.exe'
selection_cmd:
CommandLine|contains:
- 'msiexec'
- '.msi'
- 'Invoke-WebRequest'
- 'iwr '
- 'Start-BitsTransfer'
- 'curl '
condition: selection_parent and selection_child and selection_cmd
falsepositives:
- Legitimate software deployment (SCCM/Intune) — filter on known management account contexts
level: high
tags:
- attack.initial_access
- attack.t1204
- attack.t1105
- attack.t1218
---
title: Outbound gRPC over Tor Port 50051 (Modular RAT C2)
id: 8d4b2g3f-0c52-5e3b-b7d9-2f6g1b0c3d02
status: experimental
description: Detects outbound connections to port 50051 (gRPC default) or Tor network processes, matching the ClickFix NodeJS RAT C2 channel.
author: Security Arsenal
date: 2026/08/19
logsource:
category: network_connection
product: windows
service: sysmon
detection:
selection_port:
DestinationPort: 50051
selection_tor_image:
Image|endswith:
- '\tor.exe'
- '\tor\tor.exe'
- '\obfs4proxy.exe'
selection_tor_domain:
DestinationHostname|contains: '.onion'
condition: selection_port or selection_tor_image or selection_tor_domain
falsepositives:
- Legitimate gRPC microservices (rare on endpoints; validate destination)
level: critical
tags:
- attack.command_and_control
- attack.t1573
- attack.t1090
---
title: Non-Browser QUIC HTTP/3 C2 or Cloud Storage API Abuse (BirdTroy / DriveTroy)
id: 9e5c3h4g-1d63-6f4c-c8e0-3g7h2c1d4e03
status: experimental
description: Detects UDP/443 (QUIC) connections from non-browser processes or unexpected Google Drive API access, matching Kimsuky BirdTroy HTTP/3 C2 and DriveTroy Google Drive C2 patterns.
author: Security Arsenal
date: 2026/08/19
logsource:
category: network_connection
product: windows
service: sysmon
detection:
selection_quic:
DestinationPort: 443
Protocol: 'udp'
filter_browsers:
Image|endswith:
- '\chrome.exe'
- '\msedge.exe'
- '\firefox.exe'
- '\brave.exe'
selection_gdrive:
DestinationHostname|contains:
- 'googleapis.com'
- 'drive.google.com'
selection_unusual_proc:
Image|endswith:
- '\powershell.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
- '\mshta.exe'
condition: (selection_quic and not filter_browsers) or (selection_gdrive and selection_unusual_proc)
falsepositives:
- Chrome-based Electron apps using QUIC; scheduled backup tools using Drive API — tune per environment
level: high
tags:
- attack.command_and_control
- attack.t1071
- attack.t1102
- attack.t1567
// Mirage2FA AiTM phishing + ClickFix RAT + Kimsuky C2 hunt (Microsoft Sentinel / Defender)
let phishingIPs = dynamic(["192.52.166.55","209.205.197.130","181.214.165.173","83.147.53.130"]);
let phishingDomains = dynamic(["galatasaraydanhaberler.com","sopbtech.store","pcvgtech.store","verpox.shop","bull-run.fun","spot-wave.fun","cloud-verificate.com"]);
let kimsukyHosts = dynamic(["commit.hanbiro.o-r.kr","node828765.dwservice.net","node896147.dwservice.net","dwservice.net"]);
let NetHits = DeviceNetworkEvents
| where TimeGenerated > ago(30d)
| where RemoteIP in (phishingIPs)
or RemoteUrl has_any (phishingDomains)
or RemoteUrl has_any (kimsukyHosts)
or (RemotePort == 50051)
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemoteUrl, RemotePort;
let ClickFixProc = DeviceProcessEvents
| where TimeGenerated > ago(30d)
| where (FileName in~ ("powershell.exe","cmd.exe","mshta.exe","wscript.exe"))
and (ProcessCommandLine has_any (".msi","msiexec","Invoke-WebRequest","iwr ","Start-BitsTransfer"))
and InitiatingProcessFileName in~ ("explorer.exe","msedge.exe","chrome.exe","firefox.exe")
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine;
let QUICC2 = DeviceNetworkEvents
| where TimeGenerated > ago(30d)
| where RemotePort == 443 and Protocol == "Udp"
| where InitiatingProcessFileName !in~ ("chrome.exe","msedge.exe","firefox.exe","brave.exe","ms-teams.exe")
| project TimeGenerated, DeviceName, InitiatingProcessFileName, RemoteIP, RemoteUrl;
union NetHits, ClickFixProc, QUICC2
| sort by TimeGenerated desc
# Security Arsenal — IOC Hunt: ClickFix RAT / Kimsuky / Mirage2FA artifacts
# Run elevated on suspect endpoints. Outputs JSON to $env:TEMP\sa_ioc_hunt.json
$report = [ordered]@{ Host=$env:COMPUTERNAME; Timestamp=(Get-Date -Format o); Findings=@() }
# 1) ClickFix RAT — suspicious MSI installs & NodeServer payload remnants
$msiEvents = Get-WinEvent -FilterHashtable @{LogName='Application'; Id=1033,1034,11707} -MaxEvents 200 -ErrorAction SilentlyContinue |
Where-Object { $_.Message -match 'NodeServer|cloud-verificate|Setup-Full' }
if ($msiEvents) { $report.Findings += @{Type='MSI_Install'; Detail=($msiEvents | Select-Object TimeCreated,Message | ConvertTo-Json -Compress)} }
# 2) NodeJS RAT loader — rogue node.exe outside sanctioned paths
$nodeProcs = Get-CimInstance Win32_Process -Filter "Name='node.exe'" -ErrorAction SilentlyContinue |
Where-Object { $_.ExecutablePath -notmatch 'Program Files|nodejs|nvm|AppData\\Local\\Programs' }
if ($nodeProcs) { $report.Findings += @{Type='Rogue_NodeJS'; Detail=($nodeProcs | Select-Object ProcessId,ExecutablePath,CommandLine | ConvertTo-Json -Compress)} }
# 3) Tor / gRPC C2 — active or recent connections to :50051 or Tor processes
$grpcConns = Get-NetTCPConnection -State Established -ErrorAction SilentlyContinue | Where-Object { $_.RemotePort -eq 50051 }
if ($grpcConns) { $report.Findings += @{Type='gRPC_C2_50051'; Detail=($grpcConns | ConvertTo-Json -Compress)} }
$torProc = Get-CimInstance Win32_Process -ErrorAction SilentlyContinue | Where-Object { $_.Name -match 'tor.exe|obfs4proxy' }
if ($torProc) { $report.Findings += @{Type='Tor_Process'; Detail=($torProc | Select-Object ProcessId,ExecutablePath | ConvertTo-Json -Compress)} }
# 4) Persistence — Run keys & scheduled tasks referencing MSI/node/temp paths
$runKeys = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run','HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
foreach ($k in $runKeys) {
Get-ItemProperty -Path $k -ErrorAction SilentlyContinue | ForEach-Object {
$_.PSObject.Properties | Where-Object { $_.Value -match 'node|\.msi|AppData\\Local\\Temp|cloud-verificate' } |
ForEach-Object { $report.Findings += @{Type='RunKey_Persistence'; Key=$k; Name=$_.Name; Value=$_.Value} }
}
}
Get-ScheduledTask -ErrorAction SilentlyContinue | Where-Object {
($_.Actions.Execute -match 'node.exe|powershell|mshta') -and ($_.TaskPath -notmatch 'Microsoft')
} | ForEach-Object { $report.Findings += @{Type='Suspicious_ScheduledTask'; Task=$_.TaskName; Action=$_.Actions.Execute} }
# 5) Kimsuky — DWService remote access & BirdTroy hash presence
if (Test-Path "$env:ProgramFiles\DWService","$env:LOCALAPPDATA\DWService" -ErrorAction SilentlyContinue) {
$report.Findings += @{Type='DWService_Install'; Detail='Unauthorized remote access tooling present (Kimsuky TTP)'}
}
$hashes = '84e9b066bebd49036b7fc71b5f5f8d83','a452a860f973c7a43ea804c17e9427d2','aa61e76255a6e13313439655bc02bdf5','b1c72139f2cdd9419562369fc6ced4fc'
Get-ChildItem -Path "$env:TEMP","$env:LOCALAPPDATA\Temp","$env:ProgramData" -Recurse -File -ErrorAction SilentlyContinue -Depth 3 |
ForEach-Object { $h=(Get-FileHash $_.FullName -Algorithm MD5 -ErrorAction SilentlyContinue).Hash
if ($hashes -contains $h.ToLower()) { $report.Findings += @{Type='Kimsuky_Implant_Hash'; Path=$_.FullName; MD5=$h} } }
# 6) Mirage2FA — HTML smuggling lure files in Downloads
Get-ChildItem "$env:USERPROFILE\Downloads" -Filter *.html -ErrorAction SilentlyContinue |
Where-Object { (Get-Content $_.FullName -Raw -ErrorAction SilentlyContinue) -match 'atob\(|Blob\(|login\.microsoftonline|msauth' } |
ForEach-Object { $report.Findings += @{Type='HTML_Smuggling_Lure'; Path=$_.FullName; LastWrite=$_.LastWriteTime} }
$report | ConvertTo-Json -Depth 5 | Out-File "$env:TEMP\sa_ioc_hunt.json" -Encoding utf8
Write-Host "[+] Hunt complete. $($report.Findings.Count) finding groups -> $env:TEMP\sa_ioc_hunt.json"
Response Priorities
Immediate (0–4h):
- Block all Mirage2FA IPs and domains at proxy/DNS; sinkhole
.store/.shopM365-themed hostnames matching theoffice.*/ver.*subdomain pattern. - Block outbound TCP/UDP 50051 and Tor egress at the perimeter; alert on any
tor.exe/node.exeexecution outside sanctioned paths. - Push the ClickFix MSI SHA256 and Kimsuky MD5s to EDR blocklists; run the PowerShell hunt across endpoints that browsed lure domains in the last 30 days.
24h (identity response — this is credential/session theft):
- Any user whose browser touched Mirage2FA infrastructure: revoke all M365 sessions and refresh tokens, force password reset, re-register MFA. Session-token theft means password reset alone is insufficient — use
Revoke-MgUserSignInSession/ Conditional Access token revocation. - Hunt sign-in logs for impossible-travel and token-replay anomalies (sign-ins from Mirage2FA IP ranges or new ASN geographies post-phish).
- For Kimsuky-exposed organizations (Korean groupware customers): audit DWService/remote-access presence and Google Drive OAuth grants on endpoints.
1 week (architecture hardening):
- Deploy phishing-resistant MFA (FIDO2/passkeys) — the only durable control against AiTM kits like Mirage2FA; enforce token-binding Conditional Access policies where possible.
- Restrict MSI execution to management tooling (AppLocker/WDAC); block user-context
msiexecfrom browser-spawned shells (ClickFix kill chain). - Egress filtering: deny UDP/443 (QUIC) from non-browser processes where feasible, restrict cloud-storage API access to sanctioned apps, and alert on unsanctioned remote-access tools (DWService, AnyDesk et al.).
- South Korean / APAC supply-chain exposure: demand vendor SBOM and incident attestations from groupware providers; monitor vendor-domain trust relationships.
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.