One Operator, Several AI Attack Agents: The Ultra Suite and ARTEX
BlogThreat Intelligence

One Operator, Several AI Attack Agents: The Ultra Suite and ARTEX

An operator in Hong Kong is running several AI attack frameworks against internet-facing web applications and rotating through a commercial residential proxy pool to do it. In late October 2026, during an active engagement, Profero IRT observed this operator run ARTEX alongside a private suite that wraps a VulnHunter instance, Hermes Agent, a reverse-engineering console and, earlier, CyberStrikeAI. A Cairn AI penetration-testing platform runs in the same network range, but Profero has no evidence it was used against the targets.

An active operator is chaining ARTEX and a private suite of AI attack agents behind a 273,000-node residential proxy pool, already hitting multiple customers with a high success rate across web applications, APIs and mobile applications, with injection payloads that match no known tool signature. Scanning preceded exploitation by days, and Profero has not identified a sector focus: treat the targeting as opportunistic. Profero’s advisory of 23 October 2026 described these frameworks. This is the first time Profero has seen one operator chain them.1

Severity: High. Block the operator’s infrastructure now. The indicator appendix lists 63 IP addresses and 3 domains, and the CSV downloads are ready for import into firewalls and web application firewalls (WAFs).

  • Block: import the Block Now list into the perimeter firewall and WAF, and alert on hits.
  • Harden the edge: lock the origin to your edge provider, run generic SQL injection rules in blocking mode after a log-only run, and challenge proxy traffic on login and admin paths. WAF and edge guidance gives the settings.
  • Hunt: search logs back to 1 August 2026 for the indicators in Hunting. A confirmed hit means an active intrusion: contact Profero IRT before remediating.

What we see

  • Operator infrastructure: three hosts in one Hong Kong hosting network. One is the attacking host. One is the origin for an operator-registered domain and runs a password-protected SOCKS5 relay. One runs the “Ultra Reverse” console. All three carry a custom “Ultra” brand (HTTP Basic authentication realm “Ultra”, an “Ultra Reverse” certificate) on the same Ubuntu 22.04, nginx and OpenSSH 8.9p1 build. No other host in Profero’s internet scan searches carries this combination. The domain, with www and wiki subdomains, moved behind Cloudflare on 21 September 2026 and its function is not known. The addresses, domain, certificates and keys are in Block now, Hunting and the indicator appendix.
  • The private “Ultra” suite: an operator-built console, not a public product, that wraps several agent tools behind HTTP Basic authentication. The domain host serves a panel titled “Ultra - VulnHunter” (the title is verbatim) and a Hermes Agent dashboard. The panel is most likely Clouditera’s VulnHunter, a Chinese AI vulnerability workbench that generates proofs of concept, though Profero has not confirmed which build.2 Hermes Agent is a general-purpose open-source agent.3 The third host runs the “Ultra Reverse” console, an LLM-driven static reverse-engineering tool. In August and September 2026, the domain host ran CyberStrikeAI4 on port 8080.5
  • ARTEX: the attacking host requested ARTEX probe files (artex-*) from the targets.6 It also serves port 8787, the ARTEX console default, behind an nginx login. On its own that port is only corroborating. ARTEX’s default user agents (norma/0.4, artex-selfupdate) did not appear.
  • Cairn, next door: one server answered on 60 addresses in the same /24 between mid-September and 8 October 2026, and was still live on 31 October. It runs Cairn, an open-source AI penetration-testing framework,7 branded “Cairn CF Platform” and “cf 作战平台” (CF ops platform), with Codex, Claude and Pi workers and presets for the DashScope, DeepSeek and Kimi model providers. Five cluster members also serve port 8787. Profero has no evidence that Cairn was used against the targets. It is listed because it shares the operator’s /24, serves port 8787 on five cluster members and is an AI attack platform in active use. Treat it as adjacent infrastructure, not as part of the attack.
  • Residential proxy rotation: the operator sent attack traffic through 31 exit IPs across 16 autonomous system numbers (ASNs) in one session. All 31 are Thordata exits: each returns Thordata’s documented x-thor-error-code header on port 6666.8 Internet scan data on 31 October 2026 showed about 273,000 hosts with that header, which is the size of the pool the operator can draw on. None of the 31 has an AlienVault OTX pulse.
  • Three more hosts in the same network: they expose ARTEX consoles or the same nginx login on port 8787 or 8080. Nothing ties them to this operator beyond the hosting network and the tooling. They are watch-only, listed in watch-ips.csv and the indicator appendix.

Why it matters

One operator has assembled several AI agents into a toolkit. The suite is built so that a vulnerability workbench finds and proves flaws, ARTEX drives exploitation, a general agent handles glue work and a reverse-engineering console takes apart recovered binaries. Profero saw the exploitation stage against the targets. The other components were observed on the operator’s hosts, not in use against them. Each stage runs at machine speed, faster than playbook automation can follow, and the operator can run many targets in parallel.

The payloads do not match known tool signatures. The SQL injection Profero observed used stacked statements in a GET parameter, request paths carrying custom zz and nr markers, and data exfiltration in base64 chunks of about 1,800 bytes. Profero has not found this pattern in any public tool and assesses that it is an LLM agent improvising with a generic HTTP tool. Detections keyed to sqlmap, ARTEX default user agents or fixed payload strings will miss it. Generic injection rules, an origin lockdown and behavioral hunting are far more likely to catch it.

Block now

Import the Block Now list (block-ips.csv and block-domains.csv) into your firewall and WAF today. Both files hold one indicator per row for direct import; block-now-details.csv adds the role, confidence and first and last seen for each. Block the listed IPs only, never all of 156.240.236[.]0/24: unrelated tenants share that range. Tier numbers below map to the confidence column in the CSV files.

TierIndicatorsAction
Tier 1, high confidence156.240.236[.]28, 156.240.236[.]27, 156.240.236[.]14, gladdaily[.]vip, www.gladdaily[.]vip, wiki.gladdaily[.]vipBlock inbound and outbound. Alert on any hit and investigate it. Block the domains by name at DNS and the web gateway: they sit behind Cloudflare, so never block the Cloudflare addresses they resolve to. Review after 180 days.
Tier 2, medium confidenceThe 60 Cairn-cluster IPs in 156.240.236[.]0/24, including 156.240.236[.]6 and 156.240.236[.]180Block inbound and alert. Review after 90 days and expire unless they reappear.
Tier 3, watch onlyThe three AS399077 hosts above and the 31 Thordata proxy exitsDo not block. Use them to scope hunts. The proxy exits are shared with legitimate Thordata customers and rotate per request.

WAF and edge guidance

Two rules apply to every platform. First, test rules that can block real users (ASN challenges, managed rulesets, origin lockdown) in log or simulate mode before enforcing them. Second, when your WAF sits behind another proxy or content delivery network (CDN), match on the client IP header that your own proxy appends and trust no other, because attackers can spoof it.

The guidance below is written for any WAF, CDN or edge platform. Each item maps to a standard feature. Use your platform’s equivalent:

  • Block list: import block-ips.csv as an IP list or address set and reference it from a block rule placed above every other rule. Use /32 entries. Block the three domains by name at DNS and the web gateway.
  • Probe paths: add a rule that blocks requests whose path contains /artex-, whose path starts with /zz, or whose path is /nr with a query string that starts with zz. Do not block a bare /nr prefix: it matches legitimate routes.
  • Challenge proxy traffic on login and admin paths: where the platform offers an interactive or managed challenge, apply it to the 14 proxy ASNs in proxy-exit-ips.csv on login, admin and account paths. Run it in log mode first. Exclude API, webhook and mobile-app paths, because machine clients cannot solve a challenge. Residential exits sit inside consumer ISPs (AS9304 is HGC, a major Hong Kong carrier), so some real users will see the challenge. That is the trade-off. Leave out the transit carriers in the pool (AS174 and AS3257).
  • Lock the origin: allow only your edge provider’s published ranges to reach the origin, or enable mutual TLS between edge and origin with a certificate issued for your zone alone (a provider-wide shared certificate lets any customer of that provider reach you). Before enforcing, inventory direct callers: health checks, monitoring, partners and deployment pipelines. Without a lockdown, an attacker who finds the origin IP bypasses every rule above.
  • Managed rules: run the platform’s core and SQL injection rulesets on the application’s hostnames in log or count mode first, then switch them to block. Add a rate limit on login, admin and search paths.
  • Perimeter firewall: create an address group of /32 objects and deny it in both directions with logging. Outbound hits matter: they can mean an implant, or a staff member reaching the operator’s consoles or SOCKS relay (ports in Hunting).

Why IP blocking alone fails. The operator draws on a pool of about 273,000 residential exits, and those addresses also carry legitimate traffic. Blocking the 31 we saw buys minutes. What holds is an origin that accepts traffic only from your edge, plus challenges on login and admin paths for proxy ASNs, rate limits, and injection rules that do not depend on the source IP.

Generic SQL injection rules. Because the payloads are improvised, rely on generic detection. Run managed SQL injection rulesets in blocking mode, at a higher paranoia level on sensitive endpoints. Inspect the query string and body after URL and base64 decoding. Add rules for the keywords EXEC, DECLARE and WAITFOR inside parameters (T-SQL stacks statements without a semicolon) and for error-based probing. Then fix the root cause: parameterized queries, a least-privilege database account for the application, and OS command execution disabled in the database (for example xp_cmdshell on SQL Server).

Hunting

Search from 1 August 2026 (the first Cairn and CyberStrikeAI activity) to today. The first table is for your security operations center (SOC) and covers your own WAF, CDN, web server, proxy, DNS and database audit logs. The second is for a threat intelligence team with access to internet-scan platforms, TLS inspection or Zeek x509 and ssh logs. hunting-indicators.csv holds all 30 hunting indicators with where to look for each.

What a hit looks like. A source IP from the block list, or a proxy exit, requesting paths that match /artex-, ^/zz or ^/nr\?zz, or sending a GET parameter that matches (?i)\b(exec|declare|waitfor)\b after decoding. Exfiltration shows as repeated responses or error messages of about 1,800 bytes of base64. If you find one: pull database audit logs for the same window, check for new administrative accounts and web shells on the web tier, review endpoint detection and response (EDR) telemetry on the web servers, and contact Profero IRT before you remediate.

For your SOC:

CategoryValue
Web request pathsartex-* (for example /artex-q<digits>.*, /cdn/artex-i<digits>-w.txt), /zz*, /nr?zz*
Request contentT-SQL keywords (EXEC, DECLARE, WAITFOR) stacked in a GET parameter, with or without a semicolon. Base64 exfiltration in chunks of about 1,800 bytes
User-agent patternChrome/120 to Chrome/126 desktop user agents (about two years old) mixed with curl/7.88.1 from a single source. Traffic through the proxy pool used one Chrome/124 user agent across all exits.
Source IPsThe 63 Block Now IPs and the 31 Thordata exits
Domains (DNS and proxy logs)gladdaily[.]vip, www.gladdaily[.]vip, wiki.gladdaily[.]vip
Outbound connections156.240.236[.]27 port 1080 (SOCKS5). Any Block Now IP on 443, 8000, 8001, 8080, 8787, 9000

For threat intelligence and scan platforms:

CategoryValue
HTTP realm and headers (Ultra)Basic realm="Ultra" together with X-Frame-Options: SAMEORIGIN, Referrer-Policy: no-referrer and Cache-Control: private, no-store. The realm alone matches unrelated hosts.
Realm and title (Cairn)Basic realm="Cairn CF Platform". HTML title cf 作战平台
Ultra Reverse consoleNext.js build ID bgKW21tRkUzD3sCvJ_f6N. Paths /ultra-reverse-mark.svg, /ultra-reverse-apple.png, /favicon.ico?favicon.2l5o99a3yfs4a.ico. Title Ultra 逆向专版 (Ultra reverse-engineering edition). Certificate CN Ultra Reverse *
Certificate SHA-256e553d0e46e759f9e094e462130beae409cdbae834036f99f9c9e9a076fe3d7d9 (156.240.236[.]28); 0b2ee72473130c1412b0e9cf78fd1e6a66e8a335094d5ccd6a5fbd3efb5900d1 (156.240.236[.]27); 638ba19790e381d77c300a2efb1ee41a33d8ec6c64ca2af890b566fd9009153e (156.240.236[.]14); 73459ec05ecb98a1dd6a3be197e942fc17569510f7dc4af3e4ea49a90f5bd4d2 (Cairn cluster)
SSH host key (MD5)6c:03:cf:d5:94:d9:36:c8:2b:ec:74:13:39:f0:85:39 (156.240.236[.]28); 9a:b0:29:86:48:c8:12:38:ed:c4:fd:9e:50:74:b3:89 (156.240.236[.]27); b9:ae:52:da:b9:1c:4a:3e:25:60:03:af:cb:96:d1:bb (156.240.236[.]14); a6:7c:e6:ab:ca:46:f1:6e:3b:aa:4a:3e:fe:df:2b:91 (Cairn cluster, 17 IPs)
Proxy exitsx-thor-error-code: client_102 on port 6666 identifies a Thordata exit

Attribution note

Profero assesses that this is a Chinese-speaking operator iterating through AI attack frameworks: CyberStrikeAI in August and September, the “Ultra” suite from October, with ARTEX alongside and a Cairn deployment in the same range. The basis is the language of the consoles, the Chinese model providers in the Cairn presets and the Hong Kong hosting.

Profero found no link to the actor named in public ARTEX reporting. The infrastructure shares no IPs, ASNs, certificates or providers with the published indicators, and its ARTEX probe markers use a different format. ARTEX is public code, so shared tooling says nothing about who runs it. Profero cannot rule out a link. It has found no evidence for one.

Indicator appendix

Indicators below are defanged. The CSV files are not, so they import directly: handle them as live. First and last seen are passive observation dates (scan data, certificate transparency, DNS), not attack times.

Downloads

Download the import-ready files:

Block-now indicators

#IndicatorTypeConfidenceFirst seenLast seen
1156.240.236[.]28IPv4High2026-08-162026-10-24
2156.240.236[.]27IPv4High2026-08-032026-10-30
3156.240.236[.]14IPv4High2026-09-232026-10-31
4156.240.236[.]6IPv4Medium2026-08-022026-10-31
5156.240.236[.]180IPv4Medium2026-09-212026-10-08
6156.240.236[.]22IPv4Medium2026-10-072026-10-07
7156.240.236[.]31IPv4Medium2026-10-082026-10-08
8156.240.236[.]32IPv4Medium2026-10-072026-10-07
9156.240.236[.]33IPv4Medium2026-10-052026-10-07
10156.240.236[.]34IPv4Medium2026-10-082026-10-08
11156.240.236[.]42IPv4Medium2026-10-022026-10-02
12156.240.236[.]49IPv4Medium2026-10-072026-10-07
13156.240.236[.]50IPv4Medium2026-10-072026-10-07
14156.240.236[.]58IPv4Medium2026-10-052026-10-05
15156.240.236[.]61IPv4Medium2026-10-072026-10-07
16156.240.236[.]77IPv4Medium2026-10-072026-10-07
17156.240.236[.]84IPv4Medium2026-10-082026-10-08
18156.240.236[.]85IPv4Medium2026-10-072026-10-07
19156.240.236[.]86IPv4Medium2026-10-082026-10-08
20156.240.236[.]87IPv4Medium2026-10-082026-10-08
21156.240.236[.]88IPv4Medium2026-10-012026-10-01
22156.240.236[.]89IPv4Medium2026-10-072026-10-07
23156.240.236[.]90IPv4Medium2026-10-072026-10-07
24156.240.236[.]91IPv4Medium2026-10-072026-10-07
25156.240.236[.]92IPv4Medium2026-10-022026-10-02
26156.240.236[.]93IPv4Medium2026-10-022026-10-02
27156.240.236[.]95IPv4Medium2026-10-052026-10-05
28156.240.236[.]97IPv4Medium2026-10-072026-10-07
29156.240.236[.]99IPv4Medium2026-10-022026-10-02
30156.240.236[.]100IPv4Medium2026-10-072026-10-07
31156.240.236[.]101IPv4Medium2026-10-062026-10-07
32156.240.236[.]107IPv4Medium2026-10-072026-10-07
33156.240.236[.]111IPv4Medium2026-10-072026-10-07
34156.240.236[.]120IPv4Medium2026-10-082026-10-08
35156.240.236[.]123IPv4Medium2026-10-012026-10-01
36156.240.236[.]126IPv4Medium2026-10-042026-10-07
37156.240.236[.]128IPv4Medium2026-10-042026-10-04
38156.240.236[.]129IPv4Medium2026-10-072026-10-07
39156.240.236[.]135IPv4Medium2026-10-072026-10-07
40156.240.236[.]145IPv4Medium2026-10-072026-10-07
41156.240.236[.]156IPv4Medium2026-10-072026-10-07
42156.240.236[.]157IPv4Medium2026-10-072026-10-07
43156.240.236[.]162IPv4Medium2026-10-082026-10-08
44156.240.236[.]165IPv4Medium2026-10-072026-10-07
45156.240.236[.]167IPv4Medium2026-10-072026-10-07
46156.240.236[.]169IPv4Medium2026-10-012026-10-01
47156.240.236[.]170IPv4Medium2026-10-072026-10-07
48156.240.236[.]195IPv4Medium2026-10-072026-10-07
49156.240.236[.]198IPv4Medium2026-10-072026-10-07
50156.240.236[.]199IPv4Medium2026-10-072026-10-07
51156.240.236[.]202IPv4Medium2026-10-072026-10-07
52156.240.236[.]203IPv4Medium2026-10-072026-10-07
53156.240.236[.]211IPv4Medium2026-10-042026-10-06
54156.240.236[.]216IPv4Medium2026-10-072026-10-07
55156.240.236[.]217IPv4Medium2026-10-072026-10-07
56156.240.236[.]222IPv4Medium2026-10-072026-10-07
57156.240.236[.]226IPv4Medium2026-10-072026-10-07
58156.240.236[.]230IPv4Medium2026-10-082026-10-08
59156.240.236[.]231IPv4Medium2026-10-072026-10-07
60156.240.236[.]232IPv4Medium2026-10-072026-10-07
61156.240.236[.]234IPv4Medium2026-10-072026-10-07
62156.240.236[.]243IPv4Medium2026-10-032026-10-03
63156.240.236[.]250IPv4Medium2026-10-072026-10-07
64gladdaily[.]vipDomainHigh2026-09-212026-10-30
65www.gladdaily[.]vipDomainHigh2026-09-212026-10-30
66wiki.gladdaily[.]vipDomainHigh2026-09-212026-10-30

Watch-only indicators

#IndicatorConfidenceASN / orgCountryLast seen
1206.238.123[.]21LowAS399077 (announced via Cogent Communications)SG2026-10-29
2154.82.110[.]68LowAS399077 TcloudnetSG2026-10-22
3154.82.92[.]16LowAS399077 TcloudnetHK2026-10-25
431.59.112[.]253Confirmed proxy exitAS5065 Bunny CommunicationsUSLate Oct 2026
538.30.237[.]245Confirmed proxy exitAS55201 SkyQuantum Internet ServiceUSLate Oct 2026
638.33.147[.]117Confirmed proxy exitAS21859 Zenlayer IncUSLate Oct 2026
738.33.154[.]203Confirmed proxy exitAS21859 Zenlayer IncAELate Oct 2026
838.33.155[.]48Confirmed proxy exitAS21859 Zenlayer IncUSLate Oct 2026
950.114.60[.]4Confirmed proxy exitAS21859 Zenlayer IncIDLate Oct 2026
1084.32.225[.]155Confirmed proxy exitAS5065 Bunny CommunicationsJPLate Oct 2026
1185.208.44[.]91Confirmed proxy exitAS5065 Bunny CommunicationsUSLate Oct 2026
1291.124.195[.]83Confirmed proxy exitAS39600 BUNNY TECHNOLOGY LLCHKLate Oct 2026
1395.135.70[.]133Confirmed proxy exitAS9304 HGC Global Communications LimitedHKLate Oct 2026
1495.135.70[.]146Confirmed proxy exitAS9304 HGC Global Communications LimitedHKLate Oct 2026
1596.62.31[.]90Confirmed proxy exitAS23532 IOVZ NETWORKS INCSGLate Oct 2026
1696.62.31[.]184Confirmed proxy exitAS23532 IOVZ NETWORKS INCSGLate Oct 2026
17103.12.54[.]19Confirmed proxy exitAS142622 Dream Information LaboratoryJPLate Oct 2026
18108.165.118[.]153Confirmed proxy exitAS21859 Zenlayer IncDELate Oct 2026
19108.165.137[.]220Confirmed proxy exitAS21859 Zenlayer IncTHLate Oct 2026
20149.51.95[.]83Confirmed proxy exitAS55201 SkyQuantum Internet ServiceMXLate Oct 2026
21149.51.105[.]13Confirmed proxy exitAS202736 WISDOM CLOUD INTERNET TECHNOLOGY PTE. LTD.PLLate Oct 2026
22149.51.120[.]58Confirmed proxy exitAS63450 Ether Web Network, Inc.USLate Oct 2026
23149.87.172[.]242Confirmed proxy exitAS197537 WISDOM CLOUD INTERNET TECHNOLOGY PTE. LTD.IDLate Oct 2026
24149.88.222[.]60Confirmed proxy exitAS174 Cogent Communications, LLCDELate Oct 2026
25150.241.171[.]229Confirmed proxy exitAS63450 Ether Web Network, Inc.USLate Oct 2026
26151.242.8[.]241Confirmed proxy exitAS395793 Arisk Communications inc.ITLate Oct 2026
27151.246.91[.]48Confirmed proxy exitAS984 OCTOPUS WEB SOLUTION INCSGLate Oct 2026
28156.254.118[.]153Confirmed proxy exitAS401783 TOKALA COMMUNICATIONS INC.TWLate Oct 2026
29166.0.246[.]176Confirmed proxy exitAS21859 Zenlayer IncVNLate Oct 2026
30172.121.190[.]86Confirmed proxy exitAS399073 BUNNY TECHNOLOGY LLCHKLate Oct 2026
31178.92.155[.]145Confirmed proxy exitAS3257 GTT Communications Inc.USLate Oct 2026
32209.213.193[.]108Confirmed proxy exitAS5065 Bunny CommunicationsUSLate Oct 2026
33216.132.198[.]253Confirmed proxy exitAS5065 Bunny CommunicationsUSLate Oct 2026
34216.231.45[.]144Confirmed proxy exitAS5065 Bunny CommunicationsUSLate Oct 2026

References

#SourceLink
1Profero, AI Attack Frameworks in the Wild, threat advisory, 23 October 2026 (distributed to clients)
2Clouditera, VulnHunter repository, GitHubgithub.com
3Nous Research, Hermes Agent repository, GitHubgithub.com
4CyberStrikeAI repository, GitHubgithub.com
5Houdin Research, Mapping 200 still undetected Chinese AI attack platforms in the wild, 29 September 2026houdin.io
6ARTEX source backup (Hinln/ARTEX), GitHubgithub.com
7oritera, Cairn repository, GitHubgithub.com
8Thordata, Proxy troubleshooting (x-thor-error-code reference)doc.thordata.com