The Hunter's Ledger
CVE Exploitation Toolkit · May 17, 2026

CVE-2026-41940 cPanel Harvester Toolkit — 216.126.227.49

Contents

Campaign Identifier: CVE-2026-41940-cPanel-Harvester-216.126.227.49
Last Updated: May 17, 2026
Threat Level: HIGH

1. Executive Summary

The Hunters Ledger has identified a previously-undocumented, financially-motivated cybercriminal — tracked internally as UTA-2026-011 (an internal tracking label used by The Hunters Ledger — see Section 7) — operating a sustained credential-harvesting and phishing-as-a-service operation against the global cPanel, WHM, Plesk, and DirectAdmin shared-hosting ecosystem. The operator’s working filesystem was briefly exposed via a Python http.server development socket on TCP/7777 at 216.126.227.49 on 2026-05-12, allowing an open directory crawler (opendir-hunter) to recover 37 SHA256 hashes from a 45-file operator-built Python and Bash toolkit. The orchestrator file in that toolkit is named pipeline-41940.sh — a literal filename encoding of CVE-2026-41940, the cPanel/WHM CRLF authentication bypass disclosed 2026-04-28 (CVSS 9.8, added to CISA’s Known Exploited Vulnerabilities catalog 2026-05-01).

What Was Found

A single previously-undocumented operator (HIGH 87% confidence, single-operator-cluster identity) running an end-to-end shared-hosting credential-harvesting pipeline:

  • Custom toolkit: 45 operator-built Python and Bash files (37 SHA256s recovered, 8 lost to rate-limiting). All 7 distinctive hashes checked returned File not found on VirusTotal — operator-bespoke tooling not seen by the wider security community.
  • Multi-vendor coverage: Scanners and credential harvesters targeting cPanel (TCP/2083), WHM (TCP/2087), Plesk, and DirectAdmin Webmail. CVE-2026-41940 is the current high-leverage entry vector; other panel coverage is opportunistic.
  • Live Flask C2 dashboard: Server: Werkzeug/3.1.8 Python/3.13.12 with HTTP 302 redirect to /login-2fa on 216.126.227.49:8888. Novel operator signature; hunt-ready Shodan/Censys queries available.
  • Three definitive registrar-level same-operator locks: WHOIS org-ID hashes lock 10+ phishing/landing domains to one operator account across three independent registrars (WEBCC 20c6e82190de8bc4, NameCheap 4b7a0912c26a13e2, Dynadot 473daf17453d83cd).
  • Operator MX backend mx.plingest.com on 38.143.66.193 (AS63023 GTHost) — shared across three otherwise-separate registrar clusters and is the cross-cluster attribution anchor.
  • Operator Linux /etc/machine-id 6e3644a97f844763a34565b865d35310 leaked via systemd-private-tmp paths — a unique-per-VM-install identifier providing a definitive future same-machine pivot.
  • Parklogic TDS monetization layer — operator account pkAId=2143526812 stable across 11 operator-owned parked landing domains routing victim traffic through a legitimate domain-monetization platform’s customer infrastructure to multi-brand phishing destinations.
  • OpenClaw AI agent platform install footprint at /openclaw/2026.4.29/ with first-execution timestamp 2026-05-01 16:10:09 UTC. Filesystem presence is MODERATE-HIGH confidence; offensive use is LOW-MODERATE / UNCONFIRMED. This is novel observational data on AI-platform presence in an offensive operator’s working environment, not evidence of AI-assisted offensive tool development.

This investigation fills a gap in public threat intelligence reporting: no public reporting enumerates a per-operator toolkit and multi-month infrastructure rotation for the CVE-2026-41940 exploitation cluster. The operator is not the first observed exploiter — KnownHost telemetry documented in-the-wild exploitation since approximately 2026-02-23 — but represents one of the few publicly characterized end-to-end operator profiles for this CVE.

Why This Threat Is Significant

CVE-2026-41940 affects approximately 1.5 million internet-exposed cPanel instances. The bug is a three-stage exploit chain (CRLF injection in the Authorization: Basic header, encryption skip via the expired=1 marker, session promotion to WHM-root) that yields full administrative access to a hosting customer’s panel — and through it, every website, mailbox, and database hosted on that panel. Shadowserver Foundation measured 44,000 internet-wide scanning IPs probing for this CVE; CISA added it to the KEV catalog on 2026-05-01.

This operator’s distinctive contribution is the end-to-end pipeline wrapping the CVE — internet-wide mass scanning, multi-vendor admin-panel coverage, scripted same-day domain registration → certificate → activation, a multi-brand phishing-page generator (Office 365, Amazon, Coinbase, KuCoin, Brazilian Receita Federal, LATAM Airlines), and a Parklogic TDS monetization layer. The operator iterates on their tooling: 10+ versioned scanner/dashboard variants (mass_v4.py through mass_v8.py, live-dashboard-v1.py through live-dashboard-v10.py) coexist on disk, indicating sustained 6+ month internal development.

Key Risk Factors

Risk Dimension Score (X/10) Rationale
Victim Impact (cPanel/WHM customers) 8/10 Full administrative access to compromised panels yields every website, mailbox, database, and customer-account on the host. ~1.5M instances exposed globally.
Infrastructure Resilience 7/10 9 operator IPs maintained on AS14956 RouterHosting LLC for 15+ months without observed takedown; three registrar diversification; Cloudflare NS-fronting on newer domains.
Detection Difficulty (victim-side) 7/10 CVE-2026-41940 exploitation requires Authorization-header inspection at reverse proxy / WAF layer; cPanel default deployments lack this. CRLF detection patterns published but not universally deployed.
Operator Persistence 7/10 15+ months observable activity (Feb 2025 — May 2026); active development through May 2026; live C2 dashboard observed at time of publication.
Multi-sector Phishing Reach 7/10 Office 365 enterprise, web hosting customers, multi-brand consumer phishing across cryptocurrency platforms, airlines, government tax authorities, and rewards programs.
Overall Risk Score 7.2/10 HIGH — active, mature, multi-sector cybercrime operator with rapid CVE-adoption tradecraft; rated HIGH (not CRITICAL) because operator-side IOCs are infrastructure-hunting-grade, not victim-endpoint-detection grade, and CVE-2026-41940 patching is the primary defender lever.

Threat Actor

  • Designation: UTA-2026-011 (Unattributed Threat Actor — internal Hunters Ledger tracking label; see Section 7)
  • Named-actor attribution: INSUFFICIENT (<50%) — cannot attribute to any named threat actor
  • Single-operator-cluster identity: HIGH 87% (three registrar-level org-ID locks + synchronized cross-registrar MX rotation events + stable Parklogic customer ID + leaked machine-ID)
  • Motive: Financial — HIGH 90% (credential theft + TDS monetization; no destructive tooling; no espionage TTPs; no political messaging)
  • Possible self-brand: “Beast” observed in 3 of 45 toolkit filenames (beast-dashboard.py, beast-notify.py, gen-beast-page.py) — UNVERIFIED against forum/Telegram corpora. Open hypothesis.

For Technical Teams

Immediate priorities for SOC analysts, threat hunters, and incident responders:

  • CVE-2026-41940 mitigation comes first. Patching is the primary lever for cPanel/WHM customers. See Section 4 for the three-stage exploit chain and Section 9 for detection content.
  • Hunt the operator infrastructure. The Werkzeug /login-2fa C2 fingerprint, the three registrar org-ID hashes, the mx.plingest.com MX backend, the pkAId=2143526812 TDS parameter, and the operator IP cluster on AS14956 are all defender-actionable. See Section 5 for hunting queries.
  • The toolkit is operator-side, not victim-side. The 37 SHA256s are useful for forensic disk imaging of suspected operator-controlled hosts, not for victim-endpoint scanning. YARA byte-pattern detection against the toolkit is impossible — no source code was recovered.
  • Detection deliverables are Sigma + Suricata-focused. A single hash-based YARA rule covers the 8 highest-value toolkit files; 9 Sigma rules cover CVE-2026-41940 exploitation patterns and operator infrastructure indicators; 3 Suricata signatures cover network-side detection. See linked detection file in Section 9.
  • OpenClaw AI agent platform on operator filesystem is a novel observation, not a confirmed offensive capability. Track as data, not as actionable threat capability — see Section 8.

2. Threat Context — CVE-2026-41940 and the cPanel Shared-Hosting Ecosystem

Analyst note: This section explains the vulnerability the operator weaponizes, the scale of the affected ecosystem, and the timeline of broader exploitation. It is intended to be readable by SOC managers and risk owners who need to understand “why this CVE matters” before reading the technical exploit chain in Section 4.

2.1 CVE-2026-41940 in plain language

cPanel and WHM are the dominant shared-hosting administration panels worldwide — used by small businesses, hosting resellers, and managed-services providers to run thousands of customer websites and mailboxes on a single Linux server. CVE-2026-41940 is an unauthenticated authentication bypass in cPanel and WHM: an attacker who can reach the panel over the network can become an authenticated WHM-root user without knowing any password.

The technical mechanic is a CRLF (carriage-return / line-feed) injection in the Authorization: Basic HTTP header. By splicing a carefully-formatted byte sequence into the header, the attacker triggers two downstream bugs in cPanel’s session-handling code: an “encryption skip” via the expired=1 marker (the session-decryption routine is bypassed), followed by session promotion that issues a valid cpsessXXXX session token at WHM-root privilege.

What WHM-root access yields to an attacker:

  • Full read/write access to every customer cPanel account on the host
  • Every website’s source code, file system, and database (potentially hundreds of websites per host)
  • Every mailbox on the host (read inbox, set forwarding rules, send mail as the customer)
  • Ability to create new accounts, new SSH users, new email-forwarding rules, and new authentication tokens

2.2 Scale and adoption timeline

Metric Value Source
Vulnerable cPanel instances exposed to internet ~1.5 million globally watchTowr Labs telemetry, May 2026
Internet-wide scanning IPs probing for the CVE ~44,000 Shadowserver Foundation, May 2026
Disclosure date 2026-04-28 cPanel security advisory
CISA KEV catalog addition 2026-05-01 CISA.gov KEV catalog
Earliest pre-disclosure exploitation observed ~2026-02-23 KnownHost shared-hosting telemetry
Operator toolkit deployment observed 2026-05-12 The Hunters Ledger (this investigation)
Operator weaponization lag (post-disclosure) ~14 days Direct observation

The 14-day weaponization lag is consistent with rapid-adoption tradecraft seen for other high-severity server-side bypass CVEs — not zero-day-actor tradecraft. The operator is not the first observed CVE-2026-41940 exploiter. Whether the same operator participated in the pre-disclosure February exploitation cannot be determined from publicly available evidence; host-side forensics on February victims would be needed to resolve this.

2.3 The three-stage exploit chain

Analyst note: This subsection is a high-level walkthrough of the public exploit chain published by watchTowr Labs and Rapid7. SOC analysts who need the implementation details for a WAF rule should read Section 4.1 (Stage 1 — Initial Access) and the Sigma rules in the linked detection file.

The exploit chain has three stages, all unauthenticated:

  1. CRLF injection in Authorization: Basic header. The attacker sends an HTTP request to cPanel’s authentication endpoint with a base64-decoded username portion containing raw \x00, \x0a, or \x0d bytes. cPanel’s pre-decryption routine treats these bytes as field-terminators in a way the original developers did not anticipate.

  2. Encryption skip via expired=1. The CRLF-injected payload contains a downstream marker expired=1. The session-decryption code interprets this as “session is expired, skip decryption and reissue” rather than its intended meaning (“validate then reject”). The cipher block that would normally protect session creation is bypassed.

  3. Session promotion to WHM-root. Once encryption is skipped, cPanel issues a fresh cpsessXXXX token. The token is keyed to a privilege level controlled by the original (manipulable) request — the attacker requests root, the system grants root. The attacker now holds a WHM-root session cookie and can perform any administrative action.

Two public proof-of-concept repositories existed at the time of investigation: watchtowrlabs/cve-2026-41940 (the disclosing researcher’s PoC) and ynsmroztas/cPanelSniper (a community-maintained scanning wrapper). The operator’s pipeline-41940.sh file is 10,219 bytes; whether it wraps one of these public PoCs, implements the operator’s own exploit from root-cause analysis, or is aspirational cannot be determined from filename and size alone (this remains a MODERATE-confidence uncertainty).

2.4 What this means for defenders

  • Patching is the primary lever. cPanel released a fix in late April 2026; affected versions are documented in the cPanel security advisory. Hosting providers should be at the patched version by the time this report is read.
  • WAF/reverse-proxy inspection is the secondary lever. A WAF in front of cPanel/WHM (ports 2083, 2087) that inspects the Authorization: Basic header for raw \x00/\x0a/\x0d bytes will block the exploit independent of the patch state. The Sigma and Suricata rules in the linked detection file implement this pattern.
  • Hosting customers should monitor. Customers should look for new WHM/cPanel accounts created outside admin sessions, new SSH authorized_keys entries, new email-forwarding rules, and new webshell drops in customer doc-roots. These are post-exploitation persistence patterns associated with this CVE per the cPanel advisory and the watchTowr/Rapid7 writeups.

3. Technical Classification

3.1 Classification table

Field Value Confidence
Primary family Unknown — operator-built Python/Bash toolkit INSUFFICIENT (no source recovery; no Tier-1/2 vendor naming; zero VT coverage on 7/7 distinctive hashes checked)
Internal naming “Beast” branding observed on 3 of 45 toolkit files (beast-dashboard.py, beast-notify.py, gen-beast-page.py) LOW — open hypothesis, unverified against forum/Telegram corpora
Type Credential-harvesting and phishing-as-a-service toolkit; multi-vendor shared-hosting-panel cracker; CVE-2026-41940 weaponization orchestrator HIGH
Family confidence INSUFFICIENT — no source recovery; no Tier-1 or Tier-2 vendor naming; “Beast” brand is suggestive but uncorroborated n/a
Sophistication Intermediate-mature HIGH
First seen (this operator) 2025-02-20 (registration of supportsite.info, oldest confirmed operator domain) HIGH
Operator working filesystem first observed 2026-05-12 (open directory crawler crawl of 216.126.227.49:7777) DEFINITE
CVE weaponized CVE-2026-41940 (cPanel & WHM unauthenticated CRLF authentication bypass; CVSS 9.8; disclosed 2026-04-28) HIGH (filename pipeline-41940.sh literally encodes the CVE)
Target ecosystem cPanel (TCP/2083), WHM (TCP/2087), Plesk, DirectAdmin Webmail; phishing destinations include Office 365 enterprise, multi-brand consumer phishing (cryptocurrency, airlines, government tax authorities, rewards programs) HIGH
Threat actor type UTA-track — financially-motivated cybercrime; no nation-state indicators HIGH (87% for single-operator-cluster identity; INSUFFICIENT for named-actor attribution)
Primary motivation Financial (credential theft + Parklogic TDS monetization) HIGH (90%)

3.2 File-level identifiers

The operator’s toolkit comprises 45 files total: 37 with successful SHA256 recovery; 8 permanently unrecoverable due to open directory crawler rate-limit cooldowns on the operator’s single-threaded python -m http.server socket. File composition:

Property Observation
File types 35 × .py (Python source), 6 × .sh (Bash shell), 1 × .html (XAMPP default — non-operator artifact), 1 × per-host XLS+HTA stack on a prior-tenant box (LOW-MODERATE operator attribution)
Total population 45 files inside /cpanel-toolkit-export/cpanel-toolkit-export/ and the parent listing
Hash coverage 37 of 45 SHA256 recovered (82%); 8 FAILED after 3 hash attempts each
Largest file live-dashboard-v10.py (34,294 bytes) — corresponds to the live Flask C2 dashboard on TCP/8888
Smallest substantive file gen-logins-instant.py (1,361 bytes) — probable one-liner URL builder
Compression / packing None observed (plain .py / .sh, no packer extensions)
Code signing N/A (scripted source)
AV detection 0/76 on all 7 distinctive hashes checked against VirusTotal

3.3 The eight highest-value toolkit files (curated subset)

These eight files are the highest-leverage forensic artifacts from the 37-hash recovered set, selected for their role in the operator’s kill chain. This is a curated subset for narrative reference, not an IOC inventory — hashes are shown as 12-character previews; the full SHA256 values for these and the remaining 29 recovered files are maintained in the IOC feed at threat-intel-vault/ioc-feeds/opendirectory-216-126-227-49-cve-2026-41940-cpanel-harvester-20260517-iocs.json.

SHA256 preview Size (B) Filename Function (inferred MODERATE)
4b054892b4a5… 10,219 pipeline-41940.sh CVE-2026-41940 weaponization orchestrator
16855dfbb2a8… 34,294 live-dashboard-v10.py Main Flask C2 dashboard (matches live :8888 service)
0442691db9f9… 14,812 beast-dashboard.py Earlier or alternate Beast-branded dashboard
96babe4f65d3… 20,531 whm-hunter.py Primary WHM credential harvester
0330a32ad6cc… 23,650 gen-beast-page.py Multi-theme phishing page generator
2c92c6d466f3… 10,286 mass_v8.py Mass scanner v8 (most recent iteration)
c635f3d80895… 4,287 megahunt-fast.sh Mass-hunt orchestration shell
38f10f41e221… 7,239 harvest_whm_v2.py WHM credential harvester v2

3.4 Why this is intermediate-mature, not nation-state

Indicators of maturity:

  • 15+ months observable infrastructure rotation (Feb 2025 — May 2026)
  • 5+ registrar diversification with org-ID-locked pairs across WEBCC, NameCheap, Dynadot, Whoisprotection.cc, and Withheld for Privacy ehf
  • Scripted same-day domain registration → certificate → activation pipeline (sub-1-hour: quick-barber.com registered, certed by Let’s Encrypt, and A-record-pointed at the operator’s box all within less than 1 hour on 2026-05-02)
  • Versioned filenames showing iterative development (mass_v4..v8, live-dashboard-v10, harvest_whm_v2)
  • JARM template consistency across operator boxes (consistent with image-based deployment of a “Gen-2” build template)
  • Cloudflare anti-attribution NS-fronting on newer domains (eps-soltec.cloud, tesaco.sbs, mrrbno.shop)

Indicators of dev-hygiene gaps (below nation-state threshold):

  • Exposed python -m http.server on port 7777 (this is how the toolkit was discovered)
  • Exposed Werkzeug dev server on internet-facing port 8888 (production C2 should use gunicorn/uWSGI behind nginx)
  • Default OS hostname certs on legacy boxes
  • All operator infrastructure on a single ASN (AS14956 RouterHosting LLC)
  • Operator Linux /etc/machine-id leaked via systemd-private-tmp paths in the open directory listing

The combination of mature operational tradecraft with these specific OpSec gaps is consistent with a financially-motivated cybercriminal who optimizes for throughput over stealth — not with a nation-state actor where machine-ID leakage would be operationally disqualifying.


4. Technical Capabilities Deep-Dive

Executive Impact Summary: The operator runs an end-to-end shared-hosting credential-harvesting pipeline. Their distinctive contribution is not any single technique but the integration: internet-wide scanning → multi-vendor admin-panel exploitation → CVE-2026-41940 weaponization → credential cracking → multi-theme phishing page generation → Parklogic TDS monetization. The full pipeline runs from operator-controlled infrastructure and is invisible to victim endpoints. Defender leverage comes from CVE patching, WAF inspection of Authorization: Basic headers, and infrastructure hunting against the operator’s C2 fingerprint.

Quick reference: capabilities matrix

Capability Impact Detection Difficulty (victim-side) Confidence
CVE-2026-41940 CRLF auth-bypass weaponization CRITICAL — yields WHM-root MEDIUM (WAF or proxy required) HIGH
Internet-wide mass scanning (10+ variants) MEDIUM — noisy, attributable LOW (firewall logs) HIGH
Multi-vendor admin-panel coverage HIGH LOW–MEDIUM HIGH
Multi-target credential cracking MEDIUM — post-scanner step LOW (auth-log spikes) MODERATE
Multi-theme phishing-page generation HIGH — Office 365, crypto, multi-brand MEDIUM (DNS / URL pattern) HIGH
Live Flask C2 dashboard with 2FA LOW (operator-side only) n/a victim-side HIGH
Parklogic TDS monetization layer HIGH — routes through legitimate platform MEDIUM (TDS routing pattern) HIGH
afraid.org FreeDNS abuse MEDIUM LOW (DNS analytics) HIGH
Cloudflare anti-attribution NS-fronting LOW operator HIGH (CDN-fronting defeats passive DNS pivot) HIGH
Same-day domain → cert → activation pipeline HIGH — operational tempo n/a HIGH
Vertical 8-step infographic titled 'UTA-2026-011 cPanel Harvester Kill Chain'. Step 1 (orange band, initial trigger): Initial access via CVE-2026-41940 cPanel CRLF auth bypass — operator pipeline `pipeline-41940.sh` injects CRLF into cPanel session-init paths; CVSS 9.8, disclosed 2026-04-28, CISA KEV 2026-05-01, toolkit observed ~14 days post-disclosure; pre-disclosure ITW exploitation since ~2026-02-23; detection via CRLF (%0D%0A) in session paths and Suricata sid:9100101. Step 2 (red band, operator code): Internet-wide mass scanning — 10+ versioned scanner variants mass_v4.py through mass_v8.py on disk, bespoke operator tooling with 0/7 distinctive hashes on VirusTotal; detect high-rate /login probes via Sigma sid:9100201. Step 3 (red band): Multi-vendor admin-panel coverage — unified toolkit targeting cPanel, WHM, Plesk, DirectAdmin via `whm-hunter.py` and `cpanel_aggressive.py`. Step 4 (red band): Multi-target credential cracking — unified_cracker.py with wordlists/, results/, valid/ directories; detect cPanel/WHM auth-failure bursts via Sigma sid:9100204. Step 5 (yellow band, payload retrieval): Multi-theme phishing-page generation — gen-beast-page.py producing Office 365, Amazon, tech-support, and multi-brand consumer themes; observed payload-fetch URL https://officebyt.e56sutx.eps-soltec.cloud/f/d6aba322369c; detect /f/<12-hex> URL pattern via Sigma sid:9100208. Step 6 (deep red band, endgame): Live Flask C2 dashboard on port 8888 — Werkzeug/3.1.8 Python/3.13.12 redirecting to /login-2fa, live-dashboard-v10.py; novel operator C2 fingerprint, Shodan/Censys huntable; Suricata sid:9100102. Step 7 (deep red band): Parklogic TDS monetization layer — 11 operator-owned parked domains with Parklogic account ID pkAId=2143526812, feeding M365, Coinbase, Yahoo, and Receita Federal lures; detect URL param a=2143526812 via Sigma sid:9100209. Step 8 (yellow band, staging): Same-day domain → cert → activation pipeline — operator rotates lure infrastructure in under 1 hour via register → Let's Encrypt → publish, with Cloudflare NS-fronting and afraid.org FreeDNS donor-domain abuse; detect via kit-naming pattern <keyword>.<8-12-char hex>.<corp-domain>. Footer: detection anchors are CVE-2026-41940 CRLF, Werkzeug + /login-2fa banner, Parklogic a=2143526812 parameter, kit-pattern subdomains; operator IP core is 216.126.227.49 on AS14956 RouterHosting LLC with 9 confirmed operator IPs.
Figure 1: The eight-stage kill chain of UTA-2026-011's operation, from CVE-2026-41940 entry through Parklogic TDS monetization. Color bands carry the kill chain phase semantics — orange for initial trigger, red for operator code execution, yellow for payload staging, deep red for endgame. Function inferences for the toolkit files are MODERATE confidence because the operator's source code was never recovered; behaviors are anchored by live C2 observation, hash inventory, and infrastructure pivots.

4.1 Stage 1 — Initial access via CVE-2026-41940 (the kill chain entry point)

Analyst note: This is the operator’s primary entry vector into customer cPanel/WHM hosts. The exploit chain is fully public (watchTowr Labs and Rapid7 have published root-cause analyses), so this section describes the chain at the level needed to understand detection content — not as a how-to. Defenders should focus on the three discriminator strings called out in the detection section: raw CRLF bytes inside an Authorization: Basic header, the expired=1 marker in the payload, and the msg_code:[expired_session] confirmation marker in successful-exploit responses.

Confidence: HIGH (filename pipeline-41940.sh literally encodes the CVE; size and naming consistent with an orchestrator script).

Mechanism (summarized): A single HTTP request to the cPanel/WHM authentication endpoint contains a CRLF-injected Authorization: Basic header. The injected bytes trigger an encryption-skip in the session-decryption routine, which then issues a fresh cpsessXXXX session token at WHM-root privilege.

What was observed in this investigation:

  • Filename pipeline-41940.sh (10,219 bytes) — orchestrator script
  • Filename poc-fixed.py (3,754 bytes) — “fixed” PoC, likely operator-patched public PoC
  • Filename trace_auth.py (4,076 bytes) — auth-flow tracing utility (useful for CRLF-injection exploit development)
  • Filename whm-hunter.py (20,531 bytes) — primary post-exploitation WHM credential harvester

The orchestrator likely chains scanner → exploit → session-token capture → credential dump. The internal call graph cannot be confirmed without source code.

Detection priorities (vendor-side, for cPanel/WHM customers):

  1. WAF or reverse proxy in front of TCP/2083, TCP/2087, TCP/443 inspecting Authorization: Basic header for raw \x00, \x0a, \x0d bytes after the Basic prefix
  2. Web server access log detection of expired=1 token inside Authorization headers
  3. HTTP response-body monitoring for msg_code:[expired_session] success marker
  4. File integrity monitoring on /var/cpanel/users/, ~/.ssh/authorized_keys, and `cPanel email-forwarding configuration

4.2 Stage 2 — Internet-wide mass scanning

Analyst note: This stage is the top-of-funnel for the operator’s pipeline. Mass-scanning tools enumerate internet-exposed cPanel, WHM, Plesk, and DirectAdmin instances before any exploitation occurs. The 10+ versioned scanner variants on disk indicate sustained iterative development, not a one-off tool download.

Confidence: HIGH (10+ scanner variants observed by filename across 3 development generations).

Observed scanner variants:

Filename Size Inferred role
mass_scanner_v2.py, mass_scanner_v3.py 23,144 B / 16,855 B Earlier generation mass scanners
mass_v4.py through mass_v8.py 9,614 – 12,308 B Current generation mass scanners, 5 coexisting versions
mass_probe_v3.py, mass_probe_v4.py 7,261 B / 9,053 B Lighter probe variants
masscan-boost.sh 3,044 B Wrapper around masscan open-source SYN scanner
megahunt-fast.sh 4,287 B Mass-hunt orchestration shell glue
unified_scanner.py 9,948 B Multi-target scanner orchestrator
deep_probe.py 10,660 B Deeper / more thorough probing
persistent_scanner.py 12,092 B Long-running scanner (state-persistent / restart-safe)
fast-scan.py 2,422 B Lightweight fast scanner

The coexistence of v4 through v8 mass scanners alongside earlier mass_scanner_v2/v3 and a mass_probe family signals active iterative development over a multi-month timeframe. The operator keeps prior versions alongside current ones — consistent with A/B comparison and rollback discipline. (Version numbers do not prove 10 iterations occurred; numbering can start at any digit.)

The masscan-boost.sh wrapper around the open-source masscan tool indicates the operator is comfortable bridging custom Python with off-the-shelf scanners for the heaviest network-throughput work.

4.3 Stage 3 — Multi-vendor admin-panel coverage

Analyst note: This stage shows the operator’s scope extends beyond CVE-2026-41940. Separate scanners and harvesters target cPanel, WHM, Plesk, and DirectAdmin — the four dominant shared-hosting control panels. This means defenders cannot rely solely on patching one CVE; the broader panel ecosystem is in scope.

Confidence: HIGH (filenames explicitly cover four major panels).

Panel Filename Size
cPanel cpanel_aggressive.py 6,383 B
cPanel cpanel-scan.sh 2,862 B
WHM whm-hunter.py 20,531 B
WHM harvest_whm.py / harvest_whm_v2.py 5,504 B / 7,239 B
Plesk plesk_scanner.py 8,801 B
DirectAdmin Webmail da_wm_scanner.py / da_fast.py 10,088 B / 4,740 B
SSH ssh_scanner.py 3,888 B

The operator is not cPanel-only. CVE-2026-41940 is the current high-leverage entry vector, but the toolkit treats the entire small-business shared-hosting ecosystem as in-scope. The Plesk, DirectAdmin, and SSH scanners suggest opportunistic coverage across all major panels — consistent with a mature pipeline where new CVEs are grafted onto a generic credential-harvesting platform.

4.4 Stage 4 — Multi-target credential cracking

Analyst note: This stage converts a list of discovered admin-panel hosts into validated stolen credentials. The operator’s unified_cracker.py likely combines brute-force, dictionary attack, or post-exploitation credential harvesting — the exact method cannot be confirmed without source code, but the output feeds the live Flask C2 dashboard.

Confidence: MODERATE (function inferred from filename; no source observation).

The toolkit explicitly contains unified_cracker.py (FAILED hash, 8,752 bytes per directory listing) and the per-vendor harvesters cited above. The likely workflow is: scanner produces candidate hosts → cracker runs credential-guessing / brute-force or post-exploit harvest against the candidates → results land in the C2 dashboard.

unified_cracker naming suggests a multi-target wrapper consistent with the multi-vendor scanner suite. Whether it implements credential brute-force, dictionary attack, password spraying, or post-exploit credential dump cannot be determined from filename alone.

4.5 Stage 5 — Multi-theme phishing page generation

Analyst note: The phishing layer is downstream of the CVE-2026-41940 entry vector. Compromised cPanel/WHM hosts are used to host operator-generated phishing pages on legitimate-looking subdomains. This stage uses customer hostname space as the phishing-landing infrastructure, making block-by-IP responses ineffective.

Confidence: HIGH (filename gen-beast-page.py plus observed multi-theme phishing destinations).

File: gen-beast-page.py (23,650 bytes — the third-largest file in the toolkit).

Observed phishing themes (from passive DNS + visited URL evidence):

  • Office 365 enterprise: https://officebyt.e56sutx.eps-soltec.cloud/f/d6aba322369c and similar subdomain-token patterns
  • Tech-support / Amazon spoof: supportsite.info family
  • Multi-brand consumer phishing: Coinbase (coinbase-co.cc), KuCoin (kucoinsgem.xyz), Brazilian Receita Federal (receita-federal.com), Yahoo (yahoohelp.com), LATAM Airlines, Livelo rewards, Netflix, AT&T, Bet365

The naming convention <keyword>.<8-12-char hex-token>.<corp-sounding-domain> is consistent across operator-owned domains (e56sutx.eps-soltec.cloud, mmnsdvrt8.eps-soltec.cloud) and afraid.org-abused donor domains (mail.hcjs2.jlengineering.se) — a single kit-generated subdomain pattern reused across infrastructure.

4.6 Stage 6 — Live Flask C2 dashboard

Analyst note: This is the operator’s harvest-tracking and operations console. It runs on the operator’s infrastructure, not victim infrastructure — defenders cannot directly remediate it, but they can use its banner fingerprint to hunt for peer operator infrastructure on Shodan and Censys.

Confidence: HIGH (direct passive observation, captured 2026-05-17).

Live banner (HTTP HEAD against 216.126.227.49:8888 on 2026-05-17 13:53 UTC):

HTTP/1.1 302 FOUND
Server: Werkzeug/3.1.8 Python/3.13.12
Date: Sun, 17 May 2026 13:53:18 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 207
Location: /login-2fa
Vary: Cookie
Connection: close

Distinctive elements:

  • Server: Werkzeug/3.1.8 Python/3.13.12 — Flask’s development server banner. Production Flask deployments should use gunicorn or uWSGI behind nginx; the dev server on an internet-facing port is an OpSec gap.
  • Location: /login-2fa — operator-named path. Flask defaults would be /login or /auth/login. This is the discriminator string for the Shodan/Censys hunt query.
  • Vary: Cookie — session-cookie authentication flow on the C2 dashboard, consistent with a 2FA login workflow.
  • TLS JARM: 27d40d40d00040d00042d43d000000d2e61cae37a985f75ecafb81b33ca523 (note: the 27d40d40d00040d00042d43d000000 prefix is too common for standalone use, but the full hash is a stable operator pivot).

Hunt queries (defender-actionable):

  • Shodan: http.server:"Werkzeug/3.1.8" "login-2fa" port:8888
  • Censys: services.http.response.headers.server: "Werkzeug/3.1.8" AND services.http.response.headers.location: "/login-2fa" AND services.http.response.status_code: 302

These queries are first-documented in this investigation. Any peer Werkzeug+/login-2fa C2 dashboards surfaced by these queries are candidate operator infrastructure or candidate peer-operator infrastructure using the same toolkit fork — both are valuable.

4.7 Stage 7 — Parklogic TDS monetization layer

Analyst note: A TDS (Traffic Distribution System) is the layer between a phishing page’s “click” and the final landing destination. Operators use TDSs to (a) filter out security researchers, sandboxes, and Googlebot from real victims, and (b) monetize traffic that does not match the operator’s primary phishing intent by routing it to parked-domain monetization platforms. The Parklogic abuse here is unusual because Parklogic itself is a legitimate domain monetization platform — this operator is its customer, not a compromise of the platform itself.

Confidence: HIGH (operator Parklogic customer ID pkAId=2143526812 stable across 11 operator-owned parked landing domains).

Observed architecture:

  • Parklogic.com is a legitimate domain monetization platform (0/92 malicious on VirusTotal; Cisco Umbrella rank 37,769).
  • Operator is a Parklogic customer with account ID pkAId=2143526812.
  • 11 operator-owned parked landing domains are configured as Parklogic-monetized: adorarama.com, gocomper.com, and the 7 runwaylander* siblings (runwaylander.com, runwaylanderplace.com, runwaylanderhome.com, runwaylanderspot.com, runwaylanderlights.com, runwayparking.com, runwaylanderstreet.com), plus coinbase-co.cc and receita-federal.com.
  • Landing-domain IPs (172.237.149.231, 172.234.24.120) are Parklogic-controlled, not operator-exclusive — they are shared with all Parklogic customers. Blocking by IP would have a HIGH false-positive rate.
  • 5 confirmed operator-controlled source-referer brand-spoof domains route TDS traffic: kucoinsgem.xyz, checkwithsec.online, coinbase-co.cc, receita-federal.com, yahoohelp.com.

Important caveat — do not over-attribute: the operator’s TDS architecture surfaces approximately 55 additional brand-spoof source-referer domains. Of these, only the 5 above are verified operator-controlled through registrar org-ID locks or infrastructure matches. The remaining ~55 are unverified candidates. Treat the verified 5 as defender-actionable and the unverified 55 as hunt candidates pending per-domain validation.

2x2 phase-grid infographic titled 'Parklogic TDS Monetization Architecture'. Phase 1 top-left (orange band, operator entry): Operator-owned parked domains — 11 landing parents including adorarama.com, gocomper.com, and 7 runwaylander* siblings (runwaylander, runwaylanderplace, home, spot, lights, street, parking), definitively operator-owned via Dynadot org-ID lock 473daf17453d83cd. Phase 2 top-right (red band, operator account): Operator Parklogic account — stable customer ID pkAId=2143526812 embedded in every TDS landing URL as the a=2143526812 parameter, constant across all 11 landing domains; serves as cross-domain attribution anchor and identity artifact for future correlation. Phase 3 bottom-left (grey band, third-party infrastructure): Parklogic-shared TDS infra — Linode/Akamai shared IPs 172.237.149.231 and 172.234.24.120, Parklogic-controlled NOT operator-owned, so blocking should be by domain reputation NEVER by IP reputation. Phase 4 bottom-right (deep red band, endgame): Branded phishing destinations — M365 plus multi-brand consumer lures; 5 source-referer brand-spoofs confirmed (kucoinsgem.xyz, checkwithsec.online, coinbase-co.cc, receita-federal.com, yahoohelp.com); approximately 55 additional source-referers remain unverified candidates and must not be over-attributed. Flow note below grid reads: operator-owned domains → operator's Parklogic account → Parklogic shared IPs → branded phishing destinations. Footer detection anchors: a=2143526812 URL parameter, the 11 operator landing domains; block by domain reputation not by Parklogic IP.
Figure 2: The four-layer Parklogic TDS monetization architecture. The orange/red operator layers are operator-owned and should be blocked; the grey Parklogic-shared infrastructure layer is third-party and must NOT be blocked by IP (high false-positive rate against legitimate Parklogic customers). The deep-red phishing-destination layer is the victim-facing endpoint, with only 5 of approximately 60 source-referer brand-spoofs positively confirmed operator-controlled.

4.8 Stage 8 — Same-day domain registration → cert → activation pipeline

Analyst note: This stage describes the operator’s ability to stand up new phishing campaigns within an hour. Domain registration, TLS certificate issuance via Let’s Encrypt, and DNS activation are all automated — meaning a new phishing campaign can be live before threat intelligence feeds have time to catalog and distribute the new domain.

Confidence: HIGH (direct observation of quick-barber.com lifecycle 2026-05-02).

Observed example: quick-barber.com was registered, certified by Let’s Encrypt, and A-record-pointed at the operator’s Gen-1 box (216.126.224.181) all within less than 1 hour on 2026-05-02. This pipeline is automated — the operator can spin up new phishing campaigns within an hour of choosing a domain.

The implication for defenders: by the time a new operator domain is observed in passive DNS, the certificate is already issued and the phishing campaign is already live. URL/domain-block latency from threat intel feeds is unlikely to meaningfully constrain this operator. Hunt queries against the operator’s CT-log subject pattern and the Werkzeug+/login-2fa C2 banner are higher-leverage than chasing individual phishing domains.

4.9 Anti-attribution layering

Cloudflare NS-fronting on newer domains (eps-soltec.cloud, tesaco.sbs, mrrbno.shop) hides the backend IP from passive-DNS pivoting. Published domain-threat research indicates a significant fraction of blocklist-tracked malicious domains use Cloudflare nameservers for this attribution-evasion purpose. Direct A-records on older/disposable domains (pernex.online, supportsite.info) show less OpSec discipline in earlier operator infrastructure — a temporal trend toward more careful operator behavior.

afraid.org FreeDNS abuse on multi-tenant donor domains. The operator created mail.hcjs2.jlengineering.se as one tenant on a multi-tenant FreeDNS-enrolled donor domain (the legitimate Swedish engineering firm jlengineering.se had its domain enrolled in afraid.org’s FreeDNS service, which allows any user to create DNS records on donor domains without consent). The operator is not compromising jlengineering.se — they are exploiting an architectural property of afraid.org’s multi-tenant DNS model.


5. Operator Infrastructure Analysis

5.1 Operator IPs on AS14956 RouterHosting LLC

Analyst note: AS14956 RouterHosting LLC is a US-based VPS provider with documented abuse history across ThreatFox, AbuseIPDB, and Scamalytics. The operator has maintained 9 IPs on this ASN for 15+ months without observed takedown. This pattern is consistent with an abuse-tolerant acceptable-use policy (AUP) or a slow-responding network operations center, though no formal “bulletproof hosting” listing exists. RouterHosting is rated SUSPECTED-but-not-CONFIRMED bulletproof.

IP Confidence Role Confirmation evidence
216.126.227.49 HIGH Live Flask C2 + dev-server Direct observation 2026-05-12 and 2026-05-17
144.172.103.253 HIGH Office 365 phishing host Active phishing URL observed
144.172.116.74 HIGH Operator infrastructure passive DNS chronology
216.126.227.148 HIGH Operator infrastructure supportsite.info IP rotation chain

Additional historical infrastructure: 5 MODERATE-confidence historical operator IPs on AS14956 (including 216.126.224.181 flagged with prior-gen commodity-malware distribution observed April 2026 — likely different RouterHosting tenant after operator departure) are maintained in the IOC feed at threat-intel-vault/ioc-feeds/opendirectory-216-126-227-49-cve-2026-41940-cpanel-harvester-20260517-iocs.json. These rotations were observed across the passive DNS chronology and same-day registration pipeline observations (e.g., quick-barber.com) but are not included as standalone rows here to avoid duplicating IOC-feed content in the report body.

Operator MX backend on AS63023 GTHost:

IP Hostname Role Confidence
38.143.66.193 mx.plingest.com Operator MX backend (shared across supportsite.info, adorarama.com, gocomper.com) HIGH

Parklogic TDS shared infrastructure (on AS63949 Akamai/Linode — Parklogic-controlled, not operator-exclusive):

IP Role Caveat
172.237.149.231 Parklogic TDS landing host Shared across all Parklogic customers — HIGH false-positive risk for IP-based blocking
172.234.24.120 Parklogic TDS landing host Same caveat

5.2 Three registrar-level same-operator org-ID locks

Analyst note: WHOIS org-ID hashes are per-customer-account hashes maintained by each registrar’s privacy service. When two domains share the same org-ID hash within the same registrar, it almost always means they are registered under the same customer account. Intra-registrar collisions between unrelated legitimate accounts are negligible (roughly 1 in 2^64). Observing three independent registrar-level locks in a single operator profile is exceptional in the cybercrime literature — typical published profiles report zero or one.

Registrar Org-ID hash Confirmed domains Likely additional domains Confidence
WEBCC (Web Commerce Communications Ltd, Malaysia) 20c6e82190de8bc4 tesaco.sbs, mailmanagement.cfd HIGH
NameCheap 4b7a0912c26a13e2 eps-soltec.cloud, checkwithsec.online HIGH
Dynadot LLC 473daf17453d83cd gocomper.com, coinbase-co.cc, receita-federal.com adorarama.com, runwaylander.com, runwaylanderplace.com, runwaylanderhome.com, runwaylanderspot.com, runwaylanderlights.com, runwayparking.com, runwaylanderstreet.com HIGH (confirmed); MODERATE (likely additional)

The Dynadot lock is cross-validated by synchronized MX rotation events (see 5.3), which drives the probability of coincidence on those additional domains to effectively zero.

Three-column phase-grid infographic titled 'Three Registrar-Level Same-Operator Locks'. Top row carries the three lock cards. Lock 1 left card (red band, WEBCC): WHOIS privacy-service org-ID hash 20c6e82190de8bc4 locks two domains tesaco.sbs and mailmanagement.cfd under the same WEBCC customer account; both used for cPanel credential-phish lures. Lock 2 center card (red band, NameCheap): WHOIS privacy-service org-ID hash 4b7a0912c26a13e2 locks two domains eps-soltec.cloud and checkwithsec.online under the same NameCheap WhoisGuard account; eps-soltec.cloud hosts the M365 phishing payload URL observed in evidence. Lock 3 right card (deep red band, Dynadot — highest confidence): WHOIS Super Privacy org-ID hash 473daf17453d83cd locks three domains gocomper.com, coinbase-co.cc, and receita-federal.com under the same Dynadot customer account; likely also covers the 7 runwaylander* siblings plus adorarama.com via the same Super Privacy contact pattern. Bottom row carries a wide cross-validation card with orange band labeled 'Cross-Validation: Synchronized MX rotation across adorarama.com plus gocomper.com'. Body explains that both domains switched to mx.plingest.com within approximately 1 hour on 2025-08-01 and switched back to mx156.hostedmxserver.com within approximately 3 hours on 2026-01-09 — requiring a single operator with administrative DNS access to both Dynadot-registered domains at both events. This is the ruling evidence for Q1 single-operator-cluster identity, the ACH H1 winner. Footer: three independent registrar accounts, zero overlap with existing UTAs, UTA-2026-011.
Figure 3: Three independent registrar-level org-ID hash locks, the strongest cross-domain attribution evidence in this investigation. Each hash is a per-customer-account identifier within its registrar's privacy service — intra-registrar collisions between unrelated legitimate accounts are roughly 1 in 2 to the 64. The Dynadot lock (deep red) is additionally cross-validated by the synchronized MX rotation card, driving its probability of coincidence to effectively zero.

5.3 Synchronized MX rotation — ruling evidence for single-operator identity

This is the ruling evidence for the HIGH 87% single-operator-cluster identity verdict (ACH H1 winner for Q1):

Event Date Domains affected Resolution time Implication
Switch TO mx.plingest.com 2025-08-01 adorarama.com + gocomper.com Within ~1 hour of each other Single operator with administrative access to both domains’ DNS at this event
Switch BACK to mx156.hostedmxserver.com 2026-01-09 adorarama.com + gocomper.com Within ~3 hours of each other Single operator with continued admin access at the second event

Multi-domain coordination events at 1-3 hour temporal resolution are forensically rich and rare in cybercrime literature. They are the single highest-quality single-operator-identity evidence in this investigation.

5.4 Operator MX backend mx.plingest.com — cross-cluster attribution anchor

A shared MX record across three otherwise-separate registrar/privacy clusters:

  • supportsite.info (oldest operator domain)
  • adorarama.com (Dynadot org-ID lock)
  • gocomper.com (Dynadot org-ID lock)

A single dedicated MX backend across this many cross-registrar domains resolves clusters as same-operator that would otherwise appear disjoint.

Retraction: An earlier framing of 38.143.66.193 as a multi-purpose commodity-malware C2 node was retracted during investigation. The supposed Rhadamanthys / Phorpiex / GandCrab evidence was a researcher-uploaded sample on VirusTotal with no confirmed network connection to .193. The IP’s role is now established as operator MX backend only.

5.5 supportsite.info IP-rotation chain — definitive cluster pivot backbone

supportsite.info is the operator’s oldest confirmed domain (registered 2025-02-20). Its A-record has rotated across 7 of the 9 confirmed operator IPs between September 2025 and January 2026:

Date range IP Notes
Sep 2025 216.126.227.148 Earliest documented operator IP for this domain
Oct 2025 144.172.116.74 First rotation
Nov 2025 144.172.103.253 Continued rotation
Dec 2025 (additional historical IPs) (see infrastructure summary)
Jan 2026 216.126.227.49 Most recent rotation; this is the current C2 IP

The chain links 7 of 9 operator IPs and is the definitive pivot backbone of the cluster. This is what allows the analyst to confidently say “these 9 IPs are the same operator” rather than “these are 9 unrelated VPS tenants on the same ASN.”

5.6 Operator domain inventory (HIGH-confidence operator-controlled, 17 domains)

Note on operator vs. shared infrastructure: The 17 domains listed below are operator-controlled. The 11 Parklogic TDS landing domains are operator-owned but hosted on Parklogic-shared infrastructure. The 5 confirmed TDS source-referer brand-spoof domains are operator-controlled. The ~55 additional unverified candidates are NOT included — over-attribution would corrupt downstream block lists.

Phishing destination domains: pernex.online, eps-soltec.cloud, tesaco.sbs, mailmanagement.cfd, supportsite.info, kwpbby.in, mrrbno.shop, ltamaeropromoweb-ecuador-travel.shop, quick-barber.com

Operator MX backend domain: plingest.com (+ mx.plingest.com)

Confirmed TDS source-referer brand-spoofs: kucoinsgem.xyz, checkwithsec.online, coinbase-co.cc, receita-federal.com, yahoohelp.com

Parklogic TDS landing parent domains (11 total): adorarama.com, gocomper.com, runwaylander.com, runwaylanderplace.com, runwaylanderhome.com, runwaylanderspot.com, runwaylanderlights.com, runwayparking.com, runwaylanderstreet.com, plus coinbase-co.cc and receita-federal.com (also brand-spoofs)

5.7 Pivoting expansion

Stage Domains IPs
Initial IOCs (Stage 1) 19 6
Discovered IOCs (Stage 2 infrastructure pivot) 30 5
Expansion ratio ~5x (confirmed operator-controlled cluster); ~13x including unverified TDS candidates  

6. Static and Dynamic Findings

Source caveat. The operator’s port-7777 development server died ~5 days post-discovery. No source code was ever persisted to disk. “Static analysis” below means filename + size + ecosystem context inference. “Dynamic analysis” means passive observation of operator infrastructure (live C2 banner, port scan, passive DNS chronology) and passive collection of operator filesystem artifacts (directory layout, timestamps, machine-ID leak). Treat these as behavioral indicators of the operator’s environment and workflow, not of the malicious tooling’s runtime behavior, which was never observed.

6.1 Static analysis findings

Strings of forensic value (from filename inventory and live C2 fingerprint):

String Source Significance
pipeline-41940 Filename pipeline-41940.sh Encodes CVE-2026-41940 — vanishingly unlikely in legitimate codebases
live-dashboard-v10 Filename Operator-distinctive (zero GitHub Code Search hits)
beast-dashboard, beast-notify, gen-beast-page Filenames “Beast” branding — possible self-brand or forked criminal-forum kit
whm-hunter, harvest_whm, harvest_whm_v2 Filenames WHM-specific harvester naming
mass_v4..v8, live-dashboard-v1..v10 Filenames Versioned dev cycle indicator
megahunt-fast Filename Distinctive bash orchestration glue
cpanel-toolkit-export Parent directory Operator’s internal kit-bundle label
Werkzeug/3.1.8 Python/3.13.12 Live dashboard Server header Production-quality C2 should not use Flask dev server
/login-2fa Live dashboard 302 redirect Custom operator-named path (not Flask default)
6e3644a97f844763a34565b865d35310 Operator Linux /etc/machine-id (leaked via systemd-private-tmp paths) Unique-per-VM-install identifier; future definitive same-machine pivot
pkAId=2143526812 TDS URL parameter Operator Parklogic monetization customer account number
20c6e82190de8bc4 / 4b7a0912c26a13e2 / 473daf17453d83cd WHOIS org-ID hashes Per-customer locks at WEBCC / NameCheap / Dynadot
openclaw/2026.4.29/ Operator filesystem directory OpenClaw AI agent platform install footprint
v22.22.1-x64-9de703df-0 Operator Node.js compile-cache path Specific Node binary build hash
1777651809344 Operator Node compile-cache ms-epoch timestamp Decodes to 2026-05-01 16:10:09 UTC = first OpenClaw execution
/asteroid/, /krypto/, /cdc_hunt/ Operator-internal directory names Unverified project labels (possible future same-operator pivots)

Inferred dependencies (no source observation; MODERATE confidence):

Inferred dependency Why inferred Files implicated
requests or httpx HTTP scanner + harvester workflow All *scanner*, *probe*, whm-hunter, harvest_*
flask + werkzeug (3.1.8) Live dashboard banner confirms Werkzeug 3.1.8 live-dashboard-v10.py, beast-dashboard.py, fix_dashboard.py
masscan (system binary) masscan-boost.sh filename masscan-boost.sh
aiohttp / asyncio (probable) High-throughput parallel scanning mass_*
Telegram / Discord client beast-notify.py typically dispatches to operator channel beast-notify.py
jinja2 (likely with Flask) Phishing page generation at 23,650 B gen-beast-page.py, dashboards

No Windows-specific APIs are observed. The operator’s current platform is Linux + Python + Flask + Let’s Encrypt; prior-generation infrastructure (.181, .105.176) used Windows + XAMPP + Apache.

6.2 Dynamic (passive) observation timeline

Analyst note: This is a chronological reconstruction of operator behavior across the observation window. Timestamps in UTC where available. The timeline tracks operator-side activity, not victim-side execution — no malware sample was detonated in a sandbox.

T-15 months (approx 2025-02-20): First operator domain registration — supportsite.info. Marks the earliest confirmed operator activity.

T-15 months (2025-02-23): Earliest confirmed operator-attributable IP rotation — supportsite.info resolves to 45.61.128.128 (operator’s earliest IP).

2025-08-01: Synchronized MX rotation — adorarama.com + gocomper.com both switch to mx.plingest.com within ~1 hour of each other. Ruling evidence for single-operator identity.

2025-12 (approximate): Operator activates the Parklogic TDS landing layer (pkAId=2143526812). Earliest operator-attributable TDS landing hostname observed.

2026-01-09: Synchronized MX rotation — adorarama.com + gocomper.com both switch back to mx156.hostedmxserver.com within ~3 hours of each other. Second ruling-evidence event.

2026-04-28: CVE-2026-41940 publicly disclosed by cPanel.

2026-05-01 16:10:09 UTC: First OpenClaw execution timestamp recovered from operator’s Node.js compile-cache (v22.22.1-x64-9de703df-0 / 1777651809344 ms-epoch). 4 days post-CVE disclosure.

2026-05-01: CISA adds CVE-2026-41940 to KEV catalog.

2026-05-02: quick-barber.com registered, certed by Let’s Encrypt, and A-record-pointed at operator Gen-1 box — all within less than 1 hour. Same-day pipeline directly observed.

2026-05-12: Operator’s port-7777 development python -m http.server socket exposes their working filesystem. The open directory crawler crawls and hashes 37 of 45 toolkit files. 8 hashes fail due to operator-side rate-limiting cooldowns hitting the single-threaded HTTP server.

2026-05-12 to 2026-05-17: Port-7777 dev server dies sometime in this window. Port-8888 Flask C2 dashboard remains live.

2026-05-17 13:53 UTC: Single passive HTTP HEAD captures Flask C2 dashboard banner — Werkzeug/3.1.8 Python/3.13.12 + 302 → /login-2fa. Port scan confirms only TCP/22 (SSH) and TCP/8888 (Flask C2) open across a 20-port sweep.

6.3 Operator persistence (operator-side, not victim-side)

  • live-dashboard-v10.py runs as a long-lived Flask process on TCP/8888 of 216.126.227.49. The dashboard survives across multiple days of observation (reachable 2026-05-12 and again 2026-05-17), suggesting either a systemd service unit, a tmux detached session, or a nohup background process. The operator filesystem listing showed /tmux-0/ (tmux user-0 socket directory) at the root of the exposed working directory — consistent with running the dashboard inside a tmux session.
  • /etc/machine-id 6e3644a97f844763a34565b865d35310 is persistent across reboots on this VM. If the operator clones this VM image to a new IP without resetting machine-id, the clone will leak the same value via systemd-private-tmp paths — a future definitive same-VM pivot.

6.4 Victim-side persistence (inferred from toolkit composition; not observed)

Files in the toolkit consistent with post-exploitation persistence on compromised cPanel/WHM hosts:

  • gen-cpanel-access.py (FAILED hash, 6,070 B) — likely generates cPanel access artifacts
  • gen-sessions.py (5,754 B) — likely forges session cookies

A successful CRLF injection yields a cpsessXXXX token granting WHM-root access. Post-exploitation persistence patterns associated with this CVE (per cPanel advisory and Rapid7 / watchTowr Labs writeups) include:

  • New WHM/cPanel account creation outside admin sessions
  • New SSH user creation or new ~/.ssh/authorized_keys entries
  • Webshell drop into customer doc-root directories
  • New email-forwarding rules on compromised mailboxes
  • Scheduled-task creation for re-entry

6.5 Code-pattern inferences (no source observation)

  1. Versioned active development — 5 coexisting mass_v[4-8].py files plus earlier mass_scanner_v[2-3].py plus mass_probe_v[3-4].py plus harvest_whm_v2, harvest-v3.py, live-dashboard-v10.py. Operator keeps prior versions alongside current ones — consistent with A/B comparison and rollback discipline.

  2. CVE-specific orchestrator grafted onto generic harvester platform. pipeline-41940.sh is a single CVE-named orchestrator surrounded by generic scanners and crackers. Consistent with a mature operator who adds new CVE capability to an existing pipeline; equally consistent with an operator who copied a public PoC into a folder of separately-downloaded generic harvester tools. Filename-only inference cannot distinguish.

  3. Multi-vendor admin-panel coverage — toolkit explicitly covers cPanel, WHM, Plesk, DirectAdmin Webmail. Operator is not cPanel-only.

  4. “Beast” self-branding — 3 of 45 files share Beast brand identity. Open hypothesis: operator’s own self-brand, operator licensed/forked an existing Beast-branded criminal-forum kit, or coincidental naming. Underground-forum / Telegram-corpus search would resolve.

  5. Phishing-kit generator with theme supportgen-beast-page.py at 23,650 bytes suggests a template engine with multi-theme support, consistent with observed Office 365 + Amazon + multi-brand phishing destinations.

  6. Operator-templated boxes — JARM 27d40d40d00040d00042d43d000000 prefix identical across 216.126.227.49 and 144.172.103.253, consistent with snapshot/image-based deployment of the operator’s “Gen-2” build template. JARM prefix alone is too common (Ubuntu + OpenSSL + Python + Let’s Encrypt) for standalone same-operator pivot but corroborates the domain-rotation evidence.

  7. Same-day domain → cert → activation pipelinequick-barber.com registration → cert → A-record in less than 1 hour on 2026-05-02. Automation in place.

  8. Cloudflare anti-attribution layering on newer domains hides backend IPs; direct A-records on older/disposable domains show less OpSec discipline in earlier infrastructure — a temporal trend.


7. Threat Actor Assessment — UTA-2026-011

Note on UTA identifiers: “UTA” stands for Unattributed Threat Actor. UTA-2026-011 is an internal tracking designation assigned by The Hunters Ledger to actors observed across analysis who cannot yet be linked to a publicly named threat group. This label will not appear in external threat intelligence feeds or vendor reports — it is specific to this publication. If future evidence links this activity to a known named actor, the designation will be retired and updated accordingly.

The full UTA profile is maintained at threat-intel-vault/threat-actors/UTA-2026-011.md. This section summarizes the attribution evidence, ACH-tested conclusions, and explicit gaps.

7.1 Attribution conclusion

The investigation answers three attribution questions:

Question Verdict Confidence
Q1 — Is this a single-operator cluster? UTA-2026-011 (single operator) HIGH (87%) — highly likely operated by a single previously-undocumented financially-motivated cybercriminal
Q2 — Is this attributable to a named threat actor? Unknown / Unattributed INSUFFICIENT (30%) — cannot attribute to any named threat actor; no indicators of known APT or criminal-crew involvement
Q3 — What is the motive? Financial (credential theft + TDS monetization) HIGH (90%) — highly likely financially-motivated

7.2 UTA gate evaluation

The UTA-2026-011 designation was assigned only after both gates passed with substantial margin:

Gate Threshold Observed Result
Gate 1 — Distinctive characteristics 3+ characteristics (at least 2 technical) 11 characteristics (6 technical, 5 behavioral) PASS
Gate 2 — Admiralty threshold 2+ independent sources at B2 Admiralty 6 independent sources at B2 PASS

7.3 Eleven distinguishing characteristics

Technical / infrastructure fingerprints (6):

  1. Three independent registrar-level org-ID locks observed simultaneously — WEBCC 20c6e82190de8bc4, NameCheap 4b7a0912c26a13e2, Dynadot 473daf17453d83cd. Exceptional in cybercrime literature.
  2. Operator Linux /etc/machine-id 6e3644a97f844763a34565b865d35310 leaked via systemd-private-tmp paths — unique per OS install; survives reboots; propagates to VM clones. Definitive future same-machine pivot.
  3. Operator Parklogic monetization customer ID pkAId=2143526812 stable across 11 operator-owned TDS landing parked domains. Definitive cross-domain attribution anchor.
  4. Operator-controlled MX backend mx.plingest.com on 38.143.66.193 (AS63023 GTHost) — shared across three otherwise-separate registrar/privacy clusters.
  5. Synchronized 1–3-hour MX rotation across adorarama.com + gocomper.com on 2025-08-01 and 2026-01-09. Ruling evidence for Q1.
  6. Novel Flask C2 banner fingerprint on TCP/8888Werkzeug/3.1.8 Python/3.13.12 + 302 → /login-2fa. Hunt-ready Shodan/Censys queries.

Behavioral fingerprints (5):

  1. CVE-2026-41940 weaponization pipeline filename pipeline-41940.sh literally encodes the CVE number — uncommon and operator-specific.
  2. Possible “Beast” operator self-brand observed in 3 of 45 toolkit files. UNVERIFIED — open hypothesis.
  3. OpenClaw AI agent platform install footprint at /openclaw/2026.4.29/ with first-execution timestamp 2026-05-01 16:10:09 UTC. Filesystem presence MODERATE-HIGH; offensive use LOW-MODERATE / UNCONFIRMED. See Section 8.
  4. 10+ versioned scanner/dashboard variants coexisting on disk — sustained 6+ month internal development cycle.
  5. afraid.org FreeDNS donor-domain abuse for legitimate-corporate-looking phishing URLs — confirmed donor jlengineering.se, MODERATE additional groundsstudio.com.

7.4 ACH (Analysis of Competing Hypotheses) — summary

Analyst note: Analysis of Competing Hypotheses (ACH) is a structured analytic technique where multiple hypotheses are tested against the same evidence matrix, and the hypothesis with the fewest inconsistencies wins. The technique is designed to counter confirmation bias by forcing analysts to weigh alternative explanations against the same data.

Q1 — single-operator cluster identity:

  • Winner — H1: Single experienced cybercrime operator (UTA) — 0 inconsistencies in the 10-evidence matrix
  • Runner-up — H2: Small multi-person criminal group (2-5 people) — 0 inconsistencies but no positive multi-person evidence
  • Ruling evidence: Synchronized 1–3-hour MX rotation across two Dynadot-registered domains on 2025-08-01 (and 3-hour rotation on 2026-01-09) requires a single operator with administrative access to both domains’ DNS at both events

Q2 — named-actor attribution:

  • Winner — H1: Previously-undocumented independent operator (UTA-track) — 0 inconsistencies
  • Runner-up — H5: “Beast” criminal-forum kit operator — needs Telegram corpus search
  • Ruling evidence: Zero overlap with 10 existing UTAs; zero public Tier-1/2/3 attribution to named actor; 0/7 distinctive hashes on VT; 0 operator-relevant GitHub hits across 14 queries; no language/time-zone/geolocation operator-side signal

Q3 — motive:

  • Winner — H1: Financial (credential theft + TDS monetization) — 0 inconsistencies
  • Ruling evidence: All monetization streams commercial; no destructive tooling; no espionage TTPs; no political messaging

7.5 Alternative hypotheses considered and ruled LOW

Hypothesis Likelihood Why ruled
False-flag operation by different actor LOW Zero plant-style artifacts pointing toward any named actor; 15+ months sunk infrastructure cost inconsistent with false-flag
Existing UTA-2026-001 through UTA-2026-010 operating under new modus operandi EFFECTIVELY ZERO Zero grep matches on distinctive operator attributes across all 10 existing UTA files
Russian-speaking cybercrime crew LOW No Russian-language artifacts; targeting includes Brazilian/Indonesian/Japanese lures not aligned with Russian crime-crew typical victim selection
Chinese state-adjacent or financially-motivated Chinese operator LOW Chinese-themed XLS lure was likely a different RouterHosting tenant (operator-attribution downgraded to LOW-MODERATE); broader multi-sector targeting not Chinese-operator-typical
Brazilian-speaking operator (given Receita Federal + Livelo lures) LOW Brazilian lures are 2 of 60+ TDS source-referers; broader Yahoo/Coinbase/Netflix/Bet365 multi-regional targeting; no Portuguese artifacts
State-adjacent actor using cybercrime as cover LOW No long-dwell persistence; no lateral-movement tooling; no custom backdoors; OpSec failures (machine-ID leak, default Werkzeug dev mode) below state-actor threshold
Co-tenancy on AS14956 conflating multiple unrelated operators PARTIALLY VALID, ALREADY APPLIED HIGH-confidence operator core anchored by per-pivot evidence (registrar locks, MX backend, machine-ID), not AS-membership alone; explicit downgrades already applied to MODERATE/LOW peripheral IPs

7.6 “Beast” — open hypothesis, not confirmed

The string “Beast” appears in 3 of 45 toolkit files (beast-dashboard.py, beast-notify.py, gen-beast-page.py) and could represent:

  • (a) The operator’s own self-brand — possibly with intent to advertise or share the kit
  • (b) A licensed customer or fork of an existing “Beast”-branded criminal-forum kit-vendor
  • (c) Coincidental naming

This investigation could not validate any of these scenarios. GitHub Code Search returned 0 operator-relevant hits across 14 distinctive string queries; no Telegram or underground-forum corpus search was performed. The hypothesis remains open. If future intelligence surfaces a Beast-branded kit-vendor on a criminal forum or Telegram channel, this designation may shift from INSUFFICIENT to LOW or MODERATE named-actor attribution.

7.7 Gaps and what would shift attribution

Specific evidence that would shift this profile from INSUFFICIENT named-actor attribution to LOW/MODERATE/HIGH:

Target confidence Required evidence
To DEFINITE Government attribution by Tier-1 agency (FBI/CISA/NSA/Five Eyes); subpoena-grade registrar disclosure of any of the three org-IDs to a specific natural person; future observation of 6e3644a97f844763a34565b865d35310 machine-ID at a new IP linking to a known operator identity
To HIGH (named) 2+ Tier-2 vendor reports independently naming the actor (e.g., Mandiant + CrowdStrike + Microsoft); toolkit source recovery with 70%+ byte-level overlap to known criminal-crew tooling
To MODERATE (named) 1 Tier-2 vendor report; underground forum/Telegram scrape naming the kit vendor and confirming this operator as a licensed customer or fork
To LOW (named) Operator email leak via WHOIS RDAP unmasking; underground-forum post containing distinctive operator filenames as channel/file references
Priority Item
HIGH Underground-forum / Telegram corpus search for distinctive operator filenames
HIGH Reverse-WHOIS pivot on the three registrar org-IDs (expected substantial cluster expansion)
HIGH Vendor-side CVE-2026-41940 cluster reporting watch over 30-90 day window
MEDIUM Parklogic abuse engagement for pkAId=2143526812 account disclosure
MEDIUM Beast kit-vendor underground identity validation
MEDIUM afraid.org reverse-NS pivot narrowed by operator IPs
LOWER Host-side forensics on Feb 2026 pre-disclosure cPanel victims (resolves zero-day-vs-rapid-adoption question)
LOWER Shodan/Censys hunt execution on Werkzeug + /login-2fa + 8888 fingerprint
LOWER groundsstudio.com control-mechanism investigation
LOWER Recovery of 8 toolkit hashes lost to hasher cooldown

8. OpenClaw AI Agent Platform Observation

Analyst note: This section addresses a novel observational data point — the operator has an OpenClaw AI agent platform install footprint on their working filesystem. The framing of this section is deliberately cautious. Filesystem presence is MODERATE-HIGH confidence (real platform, real version, real first-execution timestamp recovered from operator-side artifacts). Offensive use of the platform is LOW-MODERATE / UNCONFIRMED. The investigation could not recover evidence demonstrating that the operator is using OpenClaw to develop offensive tooling. This is not a “the operator is using AI to build malware” finding — it is a “AI-agent-platform presence on an offensive operator’s working filesystem is novel observational data” finding.

8.1 What was observed

Artifact Value Source
Install path /openclaw/2026.4.29/ Operator filesystem directory listing
Platform version 2026.4.29 Path-encoded version
Node.js runtime build hash v22.22.1-x64-9de703df-0 Node.js compile-cache subdirectory
First execution timestamp 1777651809344 ms-epoch → 2026-05-01 16:10:09 UTC Node.js compile-cache filename ms-epoch decoded

8.2 What this is and is not

OpenClaw is a real platform. The install footprint was independently verified — OpenClaw v2026.4.29 is a documented release of a real AI agent platform. The version path, Node.js runtime build hash, and first-execution timestamp are mutually consistent with a genuine install on the operator’s working VM.

The first-execution timestamp (2026-05-01 16:10:09 UTC) is approximately 4 days post CVE-2026-41940 disclosure (CVE disclosed 2026-04-28). The temporal proximity is suggestive but not probative — millions of OpenClaw installs began in early 2026, and the disclosure timing is coincidental from a population-base-rate standpoint.

What is NOT established:

  • Whether the operator uses OpenClaw to develop their offensive toolkit
  • Whether OpenClaw was used to generate any of the 45 toolkit files
  • Whether OpenClaw access is integrated into the operator’s C2 dashboard, scanner orchestration, or phishing-page generation
  • Whether the operator uses OpenClaw for general-purpose developer productivity (entirely consistent with the observation)

What IS established:

  • The operator has installed and executed OpenClaw on their working VM
  • The operator’s working VM is the same VM running the live Flask C2 dashboard (same /etc/machine-id, same filesystem)
  • The platform is therefore co-resident with offensive infrastructure, not on a separate sandbox

8.3 OpenClaw security context (2026)

The 2026 OpenClaw security crises documented by Zscaler ThreatLabZ, Barracuda Networks, Reco.ai, and The Hacker News include:

  • The ClawHavoc supply-chain campaign (~1,100+ malicious OpenClaw “skills” delivered via the official skill marketplace)
  • The DeepSeek-Claw malicious skill delivering Remcos RAT and GhostLoader payloads
  • The ClawJacked flaw (February 2026) affecting OpenClaw skill-permission boundaries

None of these documented OpenClaw security crises are observed in this investigation. The operator’s install appears to be a stock 2026.4.29 release without evidence of either the ClawHavoc skill payloads or the DeepSeek-Claw skill on disk.

8.4 Why this observation matters

The observation is novel observational data, not actionable threat intelligence in the strict sense. Its value is in three areas:

  1. Threat-intelligence-community baseline. Prior to this investigation, no public reporting we are aware of documents the presence of an AI agent platform on an offensive operator’s working filesystem. This is a baseline data point against which future observations can be compared.

  2. Future cross-campaign correlation. Observation of /openclaw/2026.4.29/ (or any OpenClaw variant) co-resident with offensive infrastructure at a new IP is one correlation signal for future attribution work — especially if observed alongside the 6e3644a97f844763a34565b865d35310 machine-ID, which would be a definitive same-machine match.

  3. Capability ceiling tracking. If future evidence demonstrates the operator is using OpenClaw to accelerate offensive tool development, that would justify a sophistication-tier upgrade. The current evidence does not support that conclusion.

8.5 What would change this assessment

Target confidence (offensive use) Required evidence
To MODERATE Recovery of an OpenClaw skill on the operator filesystem that is recognizably offensive (e.g., a scanner-generator skill, a phishing-page-generator skill, a CVE-research skill)
To HIGH OpenClaw .claw skill bundle recovery containing offensive prompts or workflows
To DEFINITE Recovered chat-transcript or output artifact directly linking OpenClaw output to a recovered toolkit file

9. MITRE ATT&CK Mapping

Confidence note: all rows below are HIGH confidence unless explicitly marked (MODERATE) or (LOW). The Confidence Summary in Section 12 organizes findings by confidence level for the higher-level view. 32 techniques are mapped, organized by tactic in ATT&CK kill-chain order.

Tactic / Technique Name Evidence
Resource Development / T1583.001 Acquire Infrastructure: Domains 17+ operator-controlled domains across WEBCC, NameCheap, Dynadot, plus afraid.org FreeDNS abuse
Resource Development / T1583.004 Acquire Infrastructure: Server 9 operator IPs on AS14956 RouterHosting LLC; operator MX backend on AS63023 GTHost
Resource Development / T1583.006 Acquire Infrastructure: Web Services afraid.org FreeDNS donor-domain abuse (mail.hcjs2.jlengineering.se)
Resource Development / T1583.008 Acquire Infrastructure: Malvertising Parklogic TDS monetization layer (pkAId=2143526812) routing 11 operator-owned parked landing domains
Resource Development / T1587.001 Develop Capabilities: Malware 45-file operator-built Python/Bash toolkit (37 SHA256s, 0/76 VT) (MODERATE — no source observation)
Resource Development / T1588.005 Obtain Capabilities: Exploits poc-fixed.py likely wraps public CVE-2026-41940 PoC; pipeline-41940.sh orchestrator (MODERATE — filename inference)
Reconnaissance / T1595.001 Active Scanning: Scanning IP Blocks 10+ scanner variants (mass_v4..v8, mass_scanner_v2..v3, mass_probe_v3..v4); masscan-boost.sh (MODERATE — filename inference)
Reconnaissance / T1595.002 Active Scanning: Vulnerability Scanning cpanel_aggressive.py, plesk_scanner.py, da_wm_scanner.py, whm-hunter.py (MODERATE — filename inference)
Initial Access / T1190 Exploit Public-Facing Application CVE-2026-41940 weaponization via pipeline-41940.sh against cPanel/WHM (MODERATE — filename inference; CVE attribution HIGH)
Initial Access / T1078 Valid Accounts Post-CRLF-injection session-token acquisition yields valid WHM-root session (MODERATE)
Execution / T1059.006 Command and Scripting Interpreter: Python 35 .py files in toolkit; Werkzeug Python/3.13.12 runtime confirmed on live C2
Execution / T1059.004 Command and Scripting Interpreter: Unix Shell 6 .sh files (pipeline-41940.sh, megahunt-fast.sh, masscan-boost.sh, cpanel-scan.sh, etc.)
Persistence / T1136.001 Create Account: Local Account Post-WHM-root account creation pattern documented in CVE-2026-41940 advisories (MODERATE — inferred)
Persistence / T1098.005 Account Manipulation: Device Registration Post-WHM-root device-registration pattern (MODERATE — inferred from cPanel advisories)
Persistence / T1505.003 Server Software Component: Web Shell Post-WHM-root webshell drop pattern documented in CVE-2026-41940 advisories (MODERATE — inferred)
Defense Evasion / T1090.001 Proxy: Internal Proxy Cloudflare fronting on newer operator domains (eps-soltec.cloud, tesaco.sbs, mrrbno.shop)
Defense Evasion / T1090.002 Proxy: External Proxy Cloudflare NS-fronting hides backend IPs from passive-DNS pivoting
Defense Evasion / T1480 Execution Guardrails TDS rickroll-filter mechanism filters researchers/sandboxes from real victims (MODERATE)
Defense Evasion / T1568.002 Dynamic Resolution: Domain Generation Algorithms Kit-generated subdomain tokens (<keyword>.<8-12-char hex-token>.<corp-domain> pattern)
Defense Evasion / T1027 Obfuscated Files or Information None observed; downgrade to LOW (LOW)
Credential Access / T1110 Brute Force unified_cracker.py filename and per-vendor harvesters (MODERATE — filename inference)
Credential Access / T1110.003 Brute Force: Password Spraying Inferred from mass-scanner + cracker workflow against shared-hosting panels (MODERATE)
Credential Access / T1212 Exploitation for Credential Access CVE-2026-41940 CRLF auth-bypass yields WHM-root session token without authentication
Credential Access / T1056.003 Input Capture: Web Portal Capture Multi-theme phishing-page generator gen-beast-page.py captures credentials at Office 365 and consumer phishing landings
Discovery / T1018 Remote System Discovery Mass-scanner variants enumerate internet-exposed admin panels (MODERATE)
Discovery / T1082 System Information Discovery Scanner outputs include OS/version banners from cPanel, WHM, Plesk, DirectAdmin (MODERATE — inferred)
Discovery / T1083 File and Directory Discovery Post-WHM-root harvester workflow enumerates customer cPanel accounts (MODERATE — inferred)
Discovery / T1213 Data from Information Repositories Post-WHM-root access to customer hosted databases, websites, mailboxes (MODERATE — inferred)
Command and Control / T1071.001 Application Layer Protocol: Web Protocols Live Flask C2 dashboard on TCP/8888 (Werkzeug/3.1.8 Python/3.13.12 + /login-2fa)
Command and Control / T1219 Remote Access Software OpenClaw AI agent platform installed at /openclaw/2026.4.29/ (MODERATE — install footprint only; offensive use UNCONFIRMED)
Exfiltration / T1041 Exfiltration Over C2 Channel Credential harvest results dispatched to Flask C2 dashboard for operator review (MODERATE — inferred from architecture)
Impact / T1657 Financial Theft Parklogic TDS monetization + multi-brand consumer phishing routing yields direct monetary payoff

10. Risk & Detection Content

10.1 IOC summary

The full validated, machine-readable IOC feed is maintained separately. The main report links to it rather than embedding IOCs inline (per project standard — see Section 13 for the link). High-level counts:

IOC type Count
Operator toolkit SHA256 hashes (HIGH confidence) 37
Operator IPs HIGH confidence 4 (216.126.227.49, 144.172.103.253, 144.172.116.74, 216.126.227.148)
Operator IPs MODERATE confidence 5 (historical AS14956 rotations)
Operator MX backend IP (AS63023 GTHost) 1 (38.143.66.193)
Operator-owned phishing destination domains 9
Operator-owned MX backend domain 1 (plingest.com)
Confirmed TDS source-referer brand-spoof domains 5
Parklogic TDS landing parent domains (operator-owned) 11
WHOIS org-ID hashes (registrar-level locks) 3
Operator identity artifacts (machine-ID, Parklogic ID, Node.js build, OpenClaw paths) 8
URL patterns (TDS routing, phishing subdomain naming) 5

Total HIGH-confidence operator IOCs: approximately 70 unique indicators across hashes, IPs, domains, and identifiers.

Defanging note: the IOC file is machine-readable JSON and is NOT defanged. Defanging is reserved for human-readable prose in this report.

10.2 Operator vs. shared-infrastructure distinction (CRITICAL for blocklists)

Category Action
4 HIGH-confidence operator IPs on AS14956 BLOCK at egress (low FP risk)
5 MODERATE-confidence historical operator IPs MONITOR / HUNT (validate before blocking)
Operator MX backend 38.143.66.193 BLOCK at egress for mail flows
Parklogic TDS landing IPs 172.237.149.231 / 172.234.24.120 DO NOT BLOCK BY IP — Parklogic-shared infrastructure with HIGH FP risk. Block by domain instead.
11 Parklogic TDS landing parent domains BLOCK
5 confirmed TDS source-referer brand-spoofs BLOCK
~55 unverified TDS source-referer candidates HUNT only — do not block without per-domain validation

10.3 Detection content

Detection rules and hunting queries are maintained in a separate detection deliverable to keep this report focused on analysis. The full detection content is available at:

threat-intel-vault/hunting-detections/opendirectory-216-126-227-49-cve-2026-41940-cpanel-harvester-20260517-detections.md

Coverage summary:

Rule Type Count MITRE Techniques Covered FP Risk
YARA 1 T1588.005, T1587.001 LOW (hash-only)
Sigma 9 T1212, T1110.003, T1071.001, T1583.008, T1190, T1505.003, T1136.001, T1568.002, T1595.001 LOW–MEDIUM
Suricata 3 T1212, T1071.001, T1583.008 LOW–MEDIUM

10.4 Detection gap — why YARA byte-pattern detection is impossible

Critical evidence-gap note: The operator’s port-7777 development server died ~5 days post-discovery. The opendir-hunter platform hashed files in memory only — no source code was ever persisted to disk. YARA byte-pattern (string-based) detection against the operator toolkit is therefore fundamentally impossible, not a coverage gap that additional analysis effort could close. The single YARA rule deployed is hash-based, covering the 8 highest-value toolkit files by exact SHA256. Defender detection leverage is concentrated in Sigma (log-based) and Suricata (network-based) content.

The full IOC feed is available at:

threat-intel-vault/ioc-feeds/opendirectory-216-126-227-49-cve-2026-41940-cpanel-harvester-20260517-iocs.json


11. Response Orientation

This is not an incident-response playbook. Readers with IR needs should engage their internal IR team or a dedicated playbook — that is out of scope for this publication.

Detection priorities (highest-value behaviors to hunt for first):

  • CRLF injection in Authorization: Basic headers to TCP/2083, 2087, 443 (CVE-2026-41940 exploit attempts)
  • Werkzeug/3.1.8 + 302 → /login-2fa HTTP responses (operator C2 banner)
  • DNS queries to operator-controlled domains and the Parklogic pkAId=2143526812 TDS parameter

Persistence targets (what to look for and remove on compromised cPanel/WHM hosts):

  • New entries in /var/cpanel/users/ outside admin sessions
  • New ~/.ssh/authorized_keys entries
  • New email-forwarding rules on cPanel-hosted mailboxes
  • Webshells in customer doc-root directories
  • New WHM/cPanel accounts created outside admin sessions

Containment categories:

  • Patch cPanel/WHM to fixed version (CVE-2026-41940 primary mitigation)
  • Block operator IP cluster at network egress and ingress
  • Block the 11 Parklogic TDS landing parent domains and 5 confirmed brand-spoof source-referers at DNS
  • Deploy WAF inspection of Authorization: Basic header for raw CRLF bytes at cPanel/WHM perimeter
  • Isolate affected hosts pending forensic scope assessment

12. Confidence Levels Summary and Retractions

12.1 Findings organized by confidence level

DEFINITE:

  • Operator port-7777 development server exposed working filesystem on 2026-05-12 (direct open directory crawler observation)
  • Live Flask C2 dashboard on 216.126.227.49:8888 with banner Werkzeug/3.1.8 Python/3.13.12 + 302 → /login-2fa (direct passive HTTP HEAD captured 2026-05-17 13:53 UTC)
  • 37 of 45 toolkit file SHA256s recovered; 8 permanently unrecoverable

HIGH:

  • Single-operator-cluster identity (UTA-2026-011) — 87% confidence
  • Three registrar-level same-operator org-ID locks (WEBCC, NameCheap, Dynadot)
  • Synchronized 1–3-hour MX rotation across adorarama.com + gocomper.com on 2025-08-01 and 2026-01-09
  • Operator MX backend mx.plingest.com on 38.143.66.193 shared across three otherwise-separate registrar clusters
  • Operator Linux /etc/machine-id 6e3644a97f844763a34565b865d35310
  • Operator Parklogic monetization customer ID pkAId=2143526812 stable across 11 TDS landing domains
  • Financial motive (90%)
  • 9 operator IPs on AS14956 RouterHosting LLC (4 HIGH-confidence, 5 MODERATE-confidence historical)
  • pipeline-41940.sh filename encodes CVE-2026-41940
  • 0/76 VT detections on 7 distinctive toolkit hashes checked

MODERATE:

  • Function inferences for all 37 toolkit files (filename + size only; no source observation)
  • Inferred Python/Bash dependencies (requests, flask, werkzeug, aiohttp, jinja2, etc.)
  • Victim-side persistence patterns (inferred from toolkit composition and CVE-2026-41940 advisories)
  • AS14956 RouterHosting bulletproof-hosting classification (SUSPECTED, not CONFIRMED)
  • OpenClaw filesystem install footprint (presence MODERATE-HIGH; offensive use LOW-MODERATE / UNCONFIRMED)
  • unified_cracker.py brute-force / password-spraying / dictionary attack semantics

LOW:

  • “Beast” operator self-brand interpretation (open hypothesis; unverified)
  • Operator-attributable status of April 2026 commodity-malware activity on 216.126.224.181 (likely different RouterHosting tenant)
  • Operator-attributable status of approximately 55 unverified TDS source-referer brand-spoof domains
  • Whether the operator participated in pre-disclosure February 2026 CVE-2026-41940 exploitation

INSUFFICIENT:

  • Named-actor attribution (30%)
  • Primary malware family name
  • Operator nationality, language, time zone, geographic location
  • Operator’s exact relationship to the broader CVE-2026-41940 exploitation cluster

12.2 Twelve documented retractions from this investigation

This investigation explicitly retracts the following claims that appeared in earlier drafts. They are documented here to prevent recreation in future reports:

  1. NOT “first-observed ITW weaponization of CVE-2026-41940” — broader exploitation predates by ~2 months per KnownHost telemetry (~2026-02-23)
  2. NOT “two coherent operator generations Gen-1/Gen-2 XAMPP→Linux” — the architectural shift is observed but the Gen-1 attribution to this specific operator is MODERATE, not HIGH
  3. NOT “JL Engineering hijacked-victim mail server” — jlengineering.se is an afraid.org FreeDNS multi-tenant donor, not a compromise victim
  4. NOT “operator runs commodity-malware C2 from MX backend 38.143.66.193” — the supposed Rhadamanthys / Phorpiex / GandCrab evidence was a researcher-uploaded VirusTotal sample with no confirmed contacted_ips to .193
  5. NOT “all ~60 TDS source-referer brand-spoofs are operator-controlled” — only 5 are verified operator-controlled
  6. NOT “~350+ unique victim phishing URLs in TDS landing layer” — this was an extrapolation, not a count
  7. NOT “operator is the zero-day actor for CVE-2026-41940” — current evidence supports rapid-adoption tradecraft, not zero-day actor profile
  8. NOT “operator is using OpenClaw to build offensive tooling” — filesystem presence is MODERATE-HIGH; offensive use is LOW-MODERATE / UNCONFIRMED
  9. NOT “operator nationality is [X]” — no operator-side language or time-zone signal recovered
  10. NOT “operator is part of [named criminal crew]” — zero overlap with all 10 existing UTAs and zero Tier-1/2/3 public attribution to any named actor
  11. NOT “Parklogic is operator-controlled” — Parklogic is a legitimate domain-monetization platform; the operator is its customer (pkAId=2143526812)
  12. NOT “all 9 operator IPs are HIGH confidence” — 4 are HIGH; 5 are MODERATE historical

12.3 Evidence and Data Gaps

This subsection consolidates the four named-gap categories that constrain the depth of this report’s claims. Detection-content coverage gaps are maintained separately in the detection file (see Section 10.3).

  • No source-code recovery (Section 6). The operator’s port-7777 development server was hashed in memory by the open directory crawler; source code was never persisted to disk. All function-level claims for the 37 recovered toolkit files are filename + size inference (MODERATE), not source-observation (HIGH). YARA byte-pattern detection against the toolkit is fundamentally impossible — see Section 10.4.
  • 8 unrecovered toolkit hashes (Section 3.2). 37 of 45 operator-built toolkit file SHA256s were recovered before the development server was rate-limited and died ~5 days post-discovery. The 8 unrecovered files are permanently lost — no second snapshot is possible.
  • No chat-transcript, command-history, or OpenClaw output recovery (Sections 7.7 and 8.5). No operator chat logs, shell history, or OpenClaw conversation/output artifacts were captured. This is the primary gap blocking (a) elevation of OpenClaw offensive-use to HIGH confidence and (b) operator nationality/language attribution.
  • No operator nationality, language, time-zone, or geographic signal (Sections 7.7 and 12.1). Recovered artifacts contain no language-localized strings, no timezone-leaking timestamps, and no geographically-disambiguating commit metadata. Named-actor attribution remains INSUFFICIENT (30%).

See Section 6 (source-observation gap), Section 7.7 (attribution gaps), Section 8.5 (OpenClaw offensive-use gap), and Section 12.1 (INSUFFICIENT findings list) for the full per-section discussion.


13. References and Appendices

13.1 External research references

CVE-2026-41940 disclosure and analysis:

  • cPanel Security Advisory — CVE-2026-41940 (2026-04-28)
  • watchTowr Labs — CVE-2026-41940 root-cause analysis (researcher: Sina Kheirkhah)
  • Rapid7 — ETR (Emerging Threat Report) CVE-2026-41940
  • CISA.gov — KEV catalog entry, added 2026-05-01
  • CyCognito — CVE-2026-41940 CRLF injection technical blog
  • watchtowrlabs/cve-2026-41940 (public PoC)
  • ynsmroztas/cPanelSniper (community-maintained scanning wrapper)

Infrastructure and ecosystem research:

  • VirusTotal — IP, domain, and hash reports
  • Shadowserver Foundation — CVE-2026-41940 scanning telemetry
  • KnownHost — pre-disclosure exploitation telemetry
  • DomainTools Iris Investigate — WHOIS history and passive DNS exports
  • Recorded Future — AS14956 RouterHosting context
  • AbuseIPDB — AS14956 individual IP reports
  • Scamalytics — RouterHosting LLC ISP risk score

TDS, monetization, and DNS abuse:

  • Infoblox — “Parked Domains Become Weapons”
  • Cofense — “The Unintentional Enabler: Cloudflare Abuse”
  • Krebs on Security — “Most Parked Domains Now Serving Malicious Content” (Dec 2025)
  • Spamhaus — “Too big to care? Cloudflare anti-abuse posture”
  • Palo Alto Networks Unit 42 — Wildcard DNS Abuse research
  • Silent Push — Dynamic DNS Providers dark-side research
  • Let’s Encrypt Community Forum — afraid.org ongoing abuse discussion

OpenClaw security context (2026):

  • Zscaler ThreatLabZ / CybersecurityNews — Malicious OpenClaw DeepSeek Skill (delivering Remcos RAT and GhostLoader)
  • Barracuda Networks — OpenClaw agentic AI security risks
  • Reco.ai — OpenClaw security crisis analysis
  • The Hacker News — ClawJacked Flaw (February 2026)

Press coverage of the CVE:

  • Help Net Security — “cPanel zero-day exploited for months before patch”
  • CyberScoop — “cPanel authentication bypass exploited in the wild, CISA warns”
  • BleepingComputer — CVE-2026-41940 coverage

13.2 Appendix A — Operator identity artifacts (consolidated)

Type Value Significance
Linux /etc/machine-id 6e3644a97f844763a34565b865d35310 Unique per OS install; survives reboots; propagates to VM clones — definitive same-machine pivot
Parklogic customer account ID pkAId=2143526812 Stable across 11 operator-owned TDS landing parked domains
WEBCC WHOIS org-ID hash 20c6e82190de8bc4 Locks tesaco.sbs + mailmanagement.cfd
NameCheap WHOIS org-ID hash 4b7a0912c26a13e2 Locks eps-soltec.cloud + checkwithsec.online
Dynadot WHOIS org-ID hash 473daf17453d83cd Locks gocomper.com + coinbase-co.cc + receita-federal.com (and likely 8+ more)
Operator MX hostname mx.plingest.com On 38.143.66.193 (AS63023 GTHost); cross-cluster attribution anchor
Node.js runtime build hash v22.22.1-x64-9de703df-0 Narrows operator Node install context
OpenClaw install path + version /openclaw/2026.4.29/ AI agent platform install footprint; first execution 2026-05-01 16:10:09 UTC
Operator-internal directory names /asteroid/, /krypto/, /cdc_hunt/ Unverified project labels; potential future same-operator pivots
Possible self-brand Beast In 3 of 45 toolkit files; UNVERIFIED

13.3 Appendix B — Operator filesystem layout (observed)

/cpanel-toolkit-export/
├── cpanel-toolkit-export/
│   ├── [37 hashed .py / .sh files — see Section 3.3 and IOC file]
│   ├── [8 hash-FAILED files: deep_probe_v2.py, gen-cpanel-access.py,
│   │     harvest_hostnames.py, mass_exploit_v6.py, post_scanner.py,
│   │     self-scan-whm.sh, unified_cracker.py, whm_enumerator.py]
│   └── [XAMPP default index.html — non-operator artifact]
/openclaw/2026.4.29/
│   └── [Node.js compile-cache: v22.22.1-x64-9de703df-0 with ms-epoch 1777651809344
│         decoding to first execution 2026-05-01 16:10:09 UTC]
/asteroid/        — operator-internal project (contents unknown)
/krypto/          — operator-internal project (cryptography/wallet connotation)
/cdc_hunt/        — operator-internal project (possible Chrome DevTools Cookies hunt)
/tmux-0/          — tmux user-0 socket directory (operator session control)

13.4 Appendix C — Glossary

Term Definition
BLUF “Bottom Line Up Front” — the report’s headline conclusion presented in the executive summary
C2 Command and Control — operator infrastructure used to manage compromised hosts or harvest results
CRLF Carriage Return / Line Feed — \r\n byte sequence used as HTTP header field-terminator; the injection vector for CVE-2026-41940
KEV CISA’s Known Exploited Vulnerabilities catalog — vulnerabilities confirmed exploited in the wild
MX backend The mail-exchange server an operator uses to receive harvested mail or send phishing email
Parklogic TDS Traffic Distribution System — a routing layer between phishing pages and final landing destinations; in this case operated by Parklogic.com (a legitimate domain monetization platform whose customer the operator is)
TDS source-referer Domain that initiates a TDS routing decision; brand-spoof source-referers impersonate legitimate brands (Coinbase, KuCoin, Receita Federal, etc.)
UTA Unattributed Threat Actor — internal Hunters Ledger tracking designation for an operator that cannot yet be linked to a publicly named threat group
WHM Web Host Manager — cPanel’s hosting administration panel (TCP/2087)
afraid.org FreeDNS Free DNS hosting service with a multi-tenant donor-domain model that allows users to create DNS records on domains enrolled by their owners

13.5 Appendix D — Acknowledgments

This investigation was triggered by the open directory crawler platform, which surfaced 216.126.227.49 as a tier-suspicious open directory on 2026-05-12. Infrastructure attribution analysis relied on DomainTools Iris Investigate, VirusTotal MCP, and public CVE-2026-41940 research from watchTowr Labs, Rapid7, CISA, KnownHost, and Shadowserver Foundation.

The full UTA-2026-011 profile is maintained at threat-intel-vault/threat-actors/UTA-2026-011.md. The detection deliverable is maintained at threat-intel-vault/hunting-detections/opendirectory-216-126-227-49-cve-2026-41940-cpanel-harvester-20260517-detections.md. The IOC feed is maintained at threat-intel-vault/ioc-feeds/opendirectory-216-126-227-49-cve-2026-41940-cpanel-harvester-20260517-iocs.json.


© 2026 Joseph. All rights reserved. See LICENSE for terms.

Support Independent Threat Research

If this report was useful, consider supporting the work that goes into it.

High Priority IOCs