TI Mindmap HUB
← All Agentic Reports
HIGH TLP:CLEAR November 13, 2026 HIGH confidence 20 sources analyzed
artex agentic-ai scopeweaver vapor-panda storm-0940 storm-3358 tag-217 bloodalchemy cloud-security supply-chain

ARTEX Agentic Offensive Framework: Architecture, Fork Ecosystem, and Multi-Actor Abuse

Bottom line: ARTEX is an autonomous, multi-agent penetration-testing framework that turns high-level goals into parallel reconnaissance, identity probing, and post-exploitation at machine speed. Adopted by state espionage groups, financial criminals, and red teams—and backdoored in a rogue Docker image pulled over 9,000 times—it requires defenders to remove public API maps, harden self-service identity flows, and detect behavioral bursts rather than static indicators.

Period covered: 2026-01-01 to 2026-11-13 · Overall confidence: High · Sources: 20 (20 primary, 0 secondary)

Key Judgments

  1. ARTEX almost certainly compresses intrusion timelines from days to minutes (15 minutes to four hours) by coordinating LLM planner and worker agents over a shared asset graph rather than using novel exploits. (Confidence: High; [#1][#2][#4][#9][#17])
  2. Taking ARTEX closed-source on 2026-10-08 very likely failed to curb proliferation: 12,000+ prior forks, 1,428–1,645 exposed consoles, and derivatives like ScopeWeaver keep it widely available. (Confidence: High; [#1][#3][#10][#12][#13])
  3. Distinct China-nexus espionage groups (Storm-0940/UNC7228, VAPOR PANDA) and financial actors (Storm-3358, TAG-217) almost certainly operate ARTEX independently; tool artifacts alone attribute nothing. (Confidence: High; [#1][#4][#5][#6][#7])
  4. Operators who pulled tomicdd/artex:latest or congdonglinux/artex:latest after 2026-10-08 are almost certainly exposed to unauthenticated root RCE and theft of stored target credentials and LLM keys. (Confidence: High; [#2][#12])
  5. Static IP and user-agent blocks are very likely ineffective; durable defense requires removing public OpenAPI/source-map files, hardening OAuth and self-registration flows, and alerting on trial-and-error API cadences. (Confidence: High; [#1][#9][#10][#11])

Am I Affected?

Check How to verify If yes
Public source maps, OpenAPI specs, or unauthenticated write APIs Check web logs for .js.map, /openapi.json, /docs, /redoc followed by internal API calls Actions 1 and 3
Public self-registration or weak OAuth/SSO in Entra ID, Okta, or Cognito Audit IdP logs for zz* or nonexistent canary users, alg:none JWTs, and Cognito SignUp spikes Action 2
Host or DB artifacts from ARTEX worker execution Search for C:\Windows\Temp\artx*, C:\ProgramData\artx5v\, artex-probe-*, or MySQL general_log_file edits Action 2, open an incident
Internal red team deployed ARTEX via Docker after 2026-10-08 Check Docker images for tomicdd/artex, congdonglinux/artex, or build ID 3aC1db3gGU08O4UHbAt4J Action 1, isolate and rotate keys
Consented to ConnectWise or SkyKick M365 apps Follow the Storm-0940 ConnectWise Compromise report Execute ConnectWise remediation

Priority Actions

When Action Owner
Now (24h) 1. Isolate hosts running tomicdd/artex or congdonglinux/artex, rebuild from source, and rotate all stored API, DB, and target secrets SecOps / Red Team
Now (24h) 2. Hunt from 2026-08-15 across IdP, cloud, web, and EDR logs for canary probes, 25–31 s request bursts, and artx* artifacts (section 7) SOC / CERT
7 days 3. Remove public .js.map and /openapi.json files; enforce authentication and object-level authorization on every API route AppSec / DevOps
7 days 4. Disable unneeded Okta/Cognito self-registration, restrict Cognito roles, and enforce strict OAuth redirect URI and JWT checks IAM / Cloud
30 days 5. Replace long-lived cloud keys with workload identities, enforce 100% server EDR coverage, and register red-team AI tools with the SOC CISO

Briefing by Role


1. Situation Overview

Released on GitHub on 2026-07-26 by developer Autumn-27, ARTEX is a Go-based, multi-agent offensive framework that pairs large language models (LLMs) with conventional penetration-testing utilities [#3][#10]. Unlike earlier AI assistants that only drafted scripts or phishing lures, ARTEX accepts a target scope, credentials, and a high-level goal, then autonomously plans tasks, executes tools, interprets errors, and adapts attack paths until the objective is met [#1][#3][#9]. Between August and November 2026, responders across Google Threat Intelligence Group (GTIG), Microsoft, CrowdStrike, Sophos, Palo Alto Networks Unit 42, Zscaler, Recorded Future, Wiz, and Datadog documented its rapid adoption in real-world intrusions worldwide [#1][#2][#4][#5][#6][#7][#9][#11][#16].

The operational shift introduced by ARTEX is compression of time and expansion of scale, not zero-day invention [#1][#2][#9]. Across documented incidents, operators either unleashed ARTEX on internet-facing applications and APIs or fed it valid stolen credentials to automate post-exploitation [#1][#2][#11]. In campaigns tracked by GTIG (UNC7228) and CrowdStrike (VAPOR PANDA), agents progressed from initial access to deep system or cloud control in 15 minutes to four hours and attacked more than 200 organizations in parallel [#1][#4]. Separately, Storm-0940 used ARTEX to accelerate a multi-tenant supply-chain compromise of ConnectWise (SkyKick) applications in Microsoft 365 [#17]; that incident is analyzed in our dedicated report, Storm-0940 Abuses ConnectWise App Credentials to Reach Microsoft 365 Tenants with ARTEX, and is not repeated here.

Following public disclosures of abuse against South Korean financial institutions, Autumn-27 closed the repository on 2026-10-08 [#3][#10][#12]. By then, ARTEX had accumulated more than 12,000 GitHub forks [#10][#11][#16]. Within hours of the takedown, an unknown actor published a counterfeit successor repository pointing to a trojanized Docker Hub image (tomicdd/artex:latest) that contained an unauthenticated root command-execution backdoor and accumulated 9,176 total pulls before removal [#12]. As of early November 2026, between 1,428 and 1,645 ARTEX-family consoles remained exposed on the public internet [#3][#12][#13].

2. Timeline

Date (UTC) Event Source
2026-07-26 Autumn-27 publishes ARTEX as open source on GitHub; reaches 1,500–2,000 stars and 12,000+ forks [#3][#10][#11]
2026-08-17 to 08-22 TAG-217 begins provisioning ARTEX jump servers (38.244.50[.]120:18899 open dir seen 08-18) and YiiMP/Linux tools [#3][#6]
2026-08 (late) GTIG observes ARTEX, PentAGI, CAIRN, and HexStrike in live intrusions [#1]
2026-09 Storm-0940 adopts ARTEX; TAG-217 breaches at least 7 South Korean financial firms (~67,000–68,000 PII records) [#6][#7][#17]
2026-09-24 to 10-27 Unit 42 tracks ongoing ARTEX campaigns abusing exposed OpenAPI specs, source maps, and IdPs [#10]
2026-10-03 Custom Docker image artex-local:perf2-20261003 built for global multi-model financial campaign [#8]
2026-10-08 Autumn-27 takes ARTEX closed-source; 102 forks appear that week [#3][#10][#13]
2026-10-08 18:50–19:41 tomicdd Docker Hub account created and pushes trojanized tomicdd/artex:latest with pre-auth root RCE [#12]
2026-10-15 Storm-0940 uses ARTEX in the ConnectWise M365 campaign (see dedicated ConnectWise report) [#17]
2026-10-17 to 10-28 VAPOR PANDA uses ARTEX + DeepSeek to target 200+ organizations in 14 countries, deploying BLOODALCHEMY [#4]
2026-10-19 GMO Cybersecurity links Japanese corporate breaches and 8 confirmed data leaks to sector-focused ARTEX hosts [#18]
2026-10-19 to 11-06 Cambodia-based Storm-3358 uses ARTEX against financial institutions, deploying WISP, vshell, and AdaptixC2 [#5]
2026-10-20 to 10-27 Datadog records ARTEX mining AWS CloudWatch logs (103.54.154[.]40) and abusing public Cognito pools (154.64.252[.]77) [#11]
2026-11-03 to 11-07 Censys, BadByte, and GitGuardian index 1,428–1,645 exposed ARTEX consoles; 62 confirmed running the Docker backdoor [#3][#12][#13]
2026-11-05 Docker Hub removes tomicdd/artex (9,131 pulls) and congdonglinux/artex (45 pulls) [#12]

3. Attack Flow

flowchart TD
    A["1. Operator Setup<br/>Target scope, stolen keys or URLs T1588.007"] --> B["2. Planner & Blackboard<br/>LLM decomposes goal into intents on asset graph"]
    B --> C["3. App & API Mapping<br/>Workers fetch .js.map, /openapi.json, S3 T1595"]
    B --> D["3. Identity Probing<br/>Canary baselines, OAuth fuzzing, Cognito T1110.003"]
    C --> E["4. Adaptive Exploitation<br/>SQLi, SSRF, SAML/XXE, 422 payload fixes T1190"]
    D --> F["4. Cloud & Account Abuse<br/>Self-registration, IAM/Entra role abuse T1078.004"]
    E --> G["5. Host & DB Execution<br/>MySQL log poisoning, JSP webshells, curl T1505.003"]
    F --> H["5. Lateral Movement & Evasion<br/>EDR checks, BLOODALCHEMY, WISP C2 T1518.001"]
    G --> B
    H --> B
    G --> I["6. Collection & Exfiltration<br/>CloudWatch/DB dumps, webhook.site output T1005"]
    H --> I

4. Technical Analysis

4.1 Architecture: Planner, Worker Agents, and the Asset Graph

ARTEX is written in Go and ships with an embedded Next.js operator console (default TCP port 8787, commonly also 8790, 8890, 443, and 80), backed by PostgreSQL (127.0.0.1:5435 in containerized builds) and mitmproxy for HTTP traffic capture [#1][#3][#8][#11]. Google GTIG notes that the platform divides the intrusion lifecycle across six specialized agents [#1], while Datadog, Censys, and CrowdStrike document three primary execution tiers [#3][#4][#11]:

Coordination occurs through a shared "blackboard" asset graph (mapping discovered hosts, subdomains, APIs, accounts, and permissions) and an exploration graph (tracking tested intents, findings, facts, and hints so workers do not repeat dead ends) [#2][#3][#4][#11]. Exposed console API routes reflect this internal architecture: /tasks, /exploration/findings, /exploration/graph, /exploration/intents, /traffic, /companies, /llm/profiles, /llm/pool, /intercept, /mcp, /skills, /agents, and /notify [#11].

Workers orchestrate standard dual-use and offensive tools rather than custom zero-days: nmap, nuclei, httpx, ffuf, sqlmap, curl, wget, netcat, Impacket (SMBExec, WMIExec), fscan, GodPotato, Invoke-TheHash, jadx, apktool, frida, Norma SDK WebFetch, and headless Chromium via Playwright [#3][#5][#8][#10][#16]. For cognitive reasoning, ARTEX connects to OpenAI Chat Completions, OpenAI Responses, and Anthropic-compatible APIs [#3][#11]. In observed intrusions, operators favored low-cost or permissive models—primarily DeepSeek (deepseek-v4.1-flash, deepseek-v4-pro), Zhipu AI GLM-5.3, and xAI Grok 4.6, alongside Claude Code and Codex—often routed through self-hosted bridges (Sub2API on port 8080, CLIProxyAPI, New API, grok2api) or grey-market API resellers (xcai[.]pro, lanmao666[.]com) to avoid provider bans and obscure attribution [#2][#3][#7][#8][#10].

4.2 Evolution: Open Source to Closed Source, Forks, and the Docker Backdoor

Within ten weeks of its 2026-07-26 release, ARTEX gained 1,500 to 2,000 stars and more than 12,000 forks [#3][#10][#11][#16]. Although early versions contained prompt/config guardrails meant to block targeting of government and university domains, those controls were easily stripped or ignored [#7][#8]. When Autumn-27 took the repository closed-source on 2026-10-08, 102 new forks and ARTEX-named repositories appeared during the takedown week alone [#13]. Rebranded and localized derivatives—including ScopeWeaver, ARTEX PRO, ARTEX MX, ARTEX v2 · Agent Security Workbench, LUCK, and Guanlan SEC Penetration Testing Platform—proliferated alongside peer frameworks such as PentAGI, CyberStrikeAI, CAIRN, HexStrike, Agent Zero, Pojun, and RedAmon [#1][#3][#9][#11][#13]. Internet-wide scans between November 3 and 7 identified 1,428 (GitGuardian/Shodan), 1,465 (Censys), and 1,645 (BadByte) exposed ARTEX consoles, concentrated in the United States, Hong Kong, and China [#3][#12][#13]. Censys noted that ~650 hosts belonged to two uniform hosting templates in AS54600 (PEG Tech, 493 hosts) and AS138415 (Yancy Limited, 157 hosts), leaving ~815 distinct deployments, while 10.6% (155 hosts) co-hosted C2 or offensive frameworks such as CyberStrikeAI, Cobalt Strike, Adaptix C2, vshell, FRP, and NPS [#3].

Hours after the 2026-10-08 shutdown announcement, an attacker executed a supply-chain hijack targeting ARTEX users [#2][#12]. At 18:50 UTC on 2026-10-08, the Docker Hub account tomicdd was created and pushed tomicdd/artex:latest at 19:41 UTC (later mirrored byte-for-byte as congdonglinux/artex:latest) [#12]. The GitHub account trhhubsd (formerly ptasm) published a clean-looking source copy (github.com/trhhubsd/ARTEX), inflated it with ~2,449 star events, closed a user issue reporting a backdoor, and altered one line in docker-compose.yml to pull tomicdd/artex [#12].

Binary diffing against upstream v0.3.15 revealed that the compiled 51.2 MB /app/artex binary (v0.3.16-0.20261008134550-5c0dbd4bec94+dirty) added a hidden server.verifyCaptcha function and a Captcha JSON field to POST /api/auth/login [#12]. Supplying a specific prefix in captcha passes the string directly to exec.Command("sh", "-c", command) as root and returns stdout/stderr before username or password checks run [#12]. Because ARTEX binds port 8787 on 0.0.0.0 as root by default, any internet-exposed container granted unauthenticated root RCE, exposing ARTEX_PG_DSN, LLM API keys, /app/jwt.key (allowing 7-day admin token forgery), mitmproxy CA private keys, and all downstream target credentials [#12]. Before Docker removed both images on 2026-11-05, they reached 9,176 pulls (7,946 prior to disclosure), with 62 confirmed backdoored consoles exposed online [#12].

4.3 Threat Actor Adoption and Operational Playbooks

5. Cross-Source Assessment

5.1 Where sources converge

5.2 Where sources diverge

Claim Source A Source B Our assessment
Exposed ARTEX console count (early Nov 2026) Censys: 1,465 hosts (~815 distinct after AS54600/AS138415 dedup) [#3] BadByte: 1,645 [#12]; GitGuardian: 1,428 [#13]; Unit 42: 609 (Oct) [#9]; Cybrani: 39–185 [#14][#15] Differences reflect scan dates and fingerprint strictness; ~1,400–1,650 raw hosts (~800 distinct) is the consensus range
Victim PII count in South Korean bank breaches Zscaler: ~67,000 individuals [#7] Recorded Future: at least 68,000 individuals across 7 institutions [#6] Minor rounding difference across public breach disclosures; treat as ~67,000–68,000
Storm-3358 ARTEX server IP Microsoft IOC table: 178.16.54[.]129 [#5] Microsoft Sentinel KQL query in same blog: 178.15.54[.]129 [#5] Editing typo in Microsoft's published query; hunt for both addresses
Significance of shared AS54600 / Sub2API clusters Censys notes 493 uniform hosts in AS54600 [#3] Cybrani finds 0 links to pivot 38.11.221[.]82 and warns shared favicons/ETags are template reuse [#14][#15] Shared hosting templates and favicons prove software/image reuse, not a single operator
Malware classification on 89.34.227[.]96 ThreatFox / prior notes: Mirai for hash 4ecd5cdd... [#15] Earlier lookup notes: conflicting SNOWLIGHT label [#15] Unverified third-party feed tags on an unattributed ToShell/ARTEX server; do not treat as core ARTEX malware

5.3 Intelligence gaps

6. Attribution

ARTEX is a shared capability, not an actor signature [#1][#3][#10]. Across the 2026 research window, four named threat clusters and several unattributed groups have been documented:

7. Detection & Hunting

7.1 Retrospective hunt window

Hunt from 2026-08-15 to the present. Exposed infrastructure for TAG-217 (38.244.50[.]120) was active by 2026-08-17 [#3][#6], GTIG observed live intrusions starting in late August 2026 [#1], and Storm-0940, VAPOR PANDA, Storm-3358, and the tomicdd/artex Docker backdoor peaked between September and November 2026 [#4][#5][#12][#17].

7.2 Detection rules

Host, Database, Network, and Identity Hunting Matrix

Surface High-Signal Artifact or Behavior Source
Host (Windows/Linux) Folders C:\Windows\Temp\artx*, C:\ProgramData\artx5v\; scripts i12345_b2.ps1; probe files artex-probe-*; CLI markers ARTX123, MARKER123; web servers spawning curl/wget [#1][#2][#4][#5]
Host (ARTEX Console) /app/artex spawning sh -c; Docker images tomicdd/artex, congdonglinux/artex; UI build ID 3aC1db3gGU08O4UHbAt4J; sync scripts tools/project_context_hook.py, tools/sync-all.sh [#8][#12]
Database & Web Root MySQL SET GLOBAL general_log_file = ... writing <% ... %> into incremental JSPs (cl1217.jsp, f1219a.jsp, z1219.jsp) [#1]
Network & API 1–14 req/s bursts with 25–31 s pauses; 48 s polling loops; .js.map or /openapi.json fetch followed by internal API writes + 1–2 s GET verification; POST /api/auth/login with JSON key captcha [#9][#10][#12][#16]
Network Egress / Headers Egress to webhook.site (hundreds of endpoints), xcai.pro, lanmao666.com, zeofast.cn; response header WWW-Authenticate: Basic realm="ARTEX"; favicon SHA-256 8b567c0244f2dbee... [#1][#2][#8][#10][#14]
Identity & Cloud Canary users (zz_no_such_user_9f3a, precheck.not-a-user@example.invalid, ArtexProbe) followed 1 s later by admin; alg:none JWTs; illegal_redirect_uri_enhanced; Cognito SignUp + custom:isAdmin; CloudWatch FilterLogEvents (limit=1000) for AKIA/presigned; cloud roles artx* or comments art18- [#1][#4][#10][#11][#16]
title: ARTEX Agentic Framework Host Artifacts and Verification Markers
id: 9b4e1d7c-3a62-4f89-8c15-6d2e4f8a1b30
status: experimental
description: Detects host-level temporary directories, probe files, and command-line execution markers generated by ARTEX worker agents, or pre-auth RCE shell spawning in trojanized ARTEX containers.
references:
  - https://ti-mindmap-hub.com/report/f820dd7e-d01b-4127-8115-9f4f56fde795
  - https://ti-mindmap-hub.com/report/f4a52e8f-2e00-4c15-8d7c-f162dca645c6
  - https://ti-mindmap-hub.com/report/e3ec0068-1306-44be-9a22-6442c85aca4d
  - https://ti-mindmap-hub.com/report/a35ce6e1-20d5-42bf-a6a3-10ed055d0c4b
logsource:
  category: process_creation
  product: windows
detection:
  selection_cli:
    CommandLine|contains:
      - '\Windows\Temp\artx'
      - '\ProgramData\artx5v'
      - 'artex-probe-'
      - 'ARTX123'
      - 'MARKER123'
      - 'ArtexProbe'
      - 'art18-'
  selection_sideload:
    Image|endswith: '\svchost.exe'
    CommandLine|contains: 'graphics-hook'
  condition: selection_cli or selection_sideload
falsepositives:
  - Authorized red-team engagements using ARTEX (verify against registered testing hosts)
level: high
tags:
  - attack.execution
  - attack.t1059
  - attack.defense_evasion
  - attack.t1574.001
title: Trojanized ARTEX Docker Container Pre-Auth Root Shell Execution
id: 4d8a2c19-7e3b-4c10-9f54-1a8b3e6d9c02
status: experimental
description: Detects the /app/artex binary spawning a Unix shell via sh -c, triggered by the hidden captcha backdoor in tomicdd/artex and congdonglinux/artex images.
references:
  - https://ti-mindmap-hub.com/report/a35ce6e1-20d5-42bf-a6a3-10ed055d0c4b
logsource:
  category: process_creation
  product: linux
detection:
  selection:
    ParentImage|endswith: '/app/artex'
    Image|endswith: '/sh'
    CommandLine|contains: ' -c '
  condition: selection
falsepositives:
  - Unlikely in standard container operation where worker tools are invoked directly or in separate sandboxes
level: critical
tags:
  - attack.initial_access
  - attack.t1195.002
  - attack.execution
  - attack.t1059.004

Microsoft Sentinel / Defender XDR (KQL), detecting ARTEX API/Web user agents, nonexistent calibration probes, and OpenAPI/source-map harvesting:

let artexUAs = dynamic(["artex-readonly/1.0","artex-pentest/1.0","artex-audit/1.0",
  "artex-spawn/1","artex-verify/1.0","ARTEX-worker/1.0","artex-i21861-canary",
  "Mozilla/5.0 ARTeX","ReconProbe/1.0","norma/0.4","security-testing; authorized","recon-audit"]);
let probePaths = dynamic(["/zzz-nonexistent-xyz123","/zzzrandom12345","nonexistent-i3185",
  "zz-no-such-key-1a2b3c.html","zzz_nonexistent_abc.txt","Notexist-xyz"]);
let mapPaths = dynamic([".js.map","/openapi.json","/swagger.json","/redoc","/api/auth/login"]);
W3CIISLog
| where TimeGenerated > datetime(2026-08-15)
| where csUserAgent has_any (artexUAs)
    or csUriStem has_any (probePaths)
    or csUriStem has_any (mapPaths)
| summarize Requests=count(),
    MapFetches=countif(csUriStem has_any (mapPaths)),
    CanaryProbes=countif(csUriStem has_any (probePaths)),
    DistinctPaths=dcount(csUriStem),
    UAs=make_set(csUserAgent, 10)
    by cIP, bin(TimeGenerated, 15m)
| where CanaryProbes > 0 or csUserAgent has_any (artexUAs) or (MapFetches > 0 and DistinctPaths > 15)

Microsoft Sentinel (KQL), detecting ARTEX identity baselining (zz* / nonexistent / ArtexProbe canary usernames followed by admin or OAuth redirect errors):

SigninLogs
| where TimeGenerated > datetime(2026-08-15)
| where UserPrincipalName has_any ("nonexistent","not-a-user","ArtexProbe","artex-probe","test@test.com","deadbeef")
    or UserPrincipalName startswith "zz_" or UserPrincipalName startswith "zzq."
    or ResultDescription has "illegal_redirect_uri_enhanced"
| summarize Attempts=count(), Users=make_set(UserPrincipalName, 20), UAs=make_set(UserAgent, 10)
    by IPAddress, AppDisplayName, bin(TimeGenerated, 30m)

For ConnectWise/SkyKick service-principal KQL queries and app IDs, use Section 7.2 of the Storm-0940 ConnectWise Compromise report.

7.3 Detection limitations

8. Indicators of Compromise

Network indicators are defanged. All values come from the cited sources; machine-readable versions are available as STIX 2.1 bundles in TI Mindmap HUB. ConnectWise-specific Storm-0940 indicators are maintained in the Storm-0940 ConnectWise report.

VAPOR PANDA & BLOODALCHEMY espionage campaign

Type Indicator Context Confidence Source
Domain nginxmysql[.]com, sqlserver-sqlite[.]com, www[.]ddduuuppp[.]com BLOODALCHEMY C2 domains High [#4]
IPv4 45.153.126[.]223, 89.46.234[.]50, 192.121.47[.]20 Resolutions for the three BLOODALCHEMY C2 domains High [#4]
SHA-256 49fe70419fd19b81ca8d730a6ef7c1ec71b681d60b390761070d42686c7d2068 Legitimate GameHook binary renamed svchost.exe for DLL sideloading High [#4]
SHA-256 3fb5a9fb3e2cb1d6208966bd4e55d10282d19c7250d827efa560463d60a12ee4 graphics-hook-filter64.dll (BLOODALCHEMY loader DLL) High [#4]
SHA-256 364251838edfcf5ef1107fa692da3c5bd9a540482449f645992830134bf807ab graphics-hook_config.bin (encrypted BLOODALCHEMY payload) High [#4]

Storm-3358 financial sector campaign

Type Indicator Context Confidence Source
IPv4 199.19.95[.]66, 199.19.95[.]67, 199.19.95[.]68 WISP RAT C2 nodes (active 2026-11-02 to 11-06) High [#5]
IPv4 91.92.240[.]238, 85.11.168[.]45, 178.16.54[.]129, 31.77.229[.]35 Storm-3358 ARTEX servers (also check 178.15.54[.]129 from KQL typo) High [#5]
IPv4 85.11.167[.]52 Storm-3358 C2 server (first seen 2026-11-04) High [#5]

TAG-217 / South Korean & global multi-model financial campaign

Type Indicator Context Confidence Source
IPv4 38.244.50[.]120 Primary ARTEX jump server (exposed dir on port 18899) High [#3][#8]
IPv4 23.248.226[.]250, 23.248.226[.]251, 23.248.226[.]252, 23.248.226[.]253, 23.248.226[.]254 Campaign work servers hosting artex-local:perf2-20261003 High [#8]
IPv4 154.201.79[.]246, 205.214.59[.]31, 161.8.161[.]140 Proxy pool API (:443) and upstream SOCKS proxies (:443, :11005) High [#3][#8]
IPv4 101.53.80[.]20, 124.155.252[.]63, 23.248.249[.]90, 23.158.220[.]98 Additional proxy IPs tied to the South Korean financial campaign Moderate [#3]
IPv4 103.248.148[.]84, 203.160.133[.]172, 209.209.85[.]38 Additional proxy IPs tied to the South Korean financial campaign Moderate [#3]
Domain xcai[.]pro OpenAI-compatible LLM reseller gateway (hxxps://xcai[.]pro/v1) Moderate [#3][#8]

Unattributed ARTEX API, IdP, AWS, and Storm-0940 vendor-probing clusters

Type Indicator Context Confidence Source
IPv4 31.40.205[.]155, 173.254.220[.]78, 103.100.158[.]103, 152.233.51[.]12 Unit 42 API/IdP exploitation and Sub2API (:8080) hosts High [#10]
Domain lanmao666[.]com, lanmao666[.]xyz Multi-tenant AI/LLM gateway infrastructure linked to Unit 42 cluster Moderate [#10]
IPv4 103.54.154[.]40, 154.64.252[.]77, 169.128.55[.]214, 154.36.136[.]197, 154.36.136[.]23 Datadog AWS CloudWatch mining and Cognito self-registration abuse High [#11]
IPv4 102.216.154[.]102, 82.158.88[.]233, 88.229.22[.]232, 103.54.154[.]32, 45.145.228[.]25 Additional Datadog AWS ARTEX source IPs Moderate [#11]
Domain zeofast[.]cn, yecaoyun[.]com Infrastructure domains referenced in AWS CloudWatch/Cognito attacks Moderate [#11]
IPv4 104.194.150[.]21, 167.88.172[.]97 Storm-0940-linked probing of software vendors' identity systems Moderate [#16]
IPv4 23.106.46[.]239 Hosts artex.nhhh[.]de and llm-routing[.]com; tested stolen Bedrock keys Moderate [#20]
File cl1217.jsp, f1219a.jsp, z1219.jsp Incremental JSP webshells written by ARTEX via MySQL log poisoning High [#1]

Trojanized ARTEX Docker supply-chain backdoor (tomicdd/artex & congdonglinux/artex)

Type Indicator Context Confidence Source
SHA-256 d5070f52262effe216b840711343bff8f2787f39208d887d8dfd9c673f8d1573 Backdoored /app/artex ELF binary (51,210,988 bytes, server.verifyCaptcha) High [#12]
SHA-256 ce85d8369ccc1a85423f1f75d2f3afaa2fab759e580da37a6891af2f7392745e Malicious Docker Hub multi-arch index digest High [#12]
SHA-256 cb85a7206290dc1813e3203e044741054b26c7a7c557c7d9d6d91af20aeb232b Malicious Docker amd64 manifest digest High [#12]
SHA-256 009e2bdd6548886a363ee06d17331c7209741273d886f1bb818bceeb416f1654 Malicious Docker image layer containing /app/artex High [#12]

ARTEX console hunting pivots (exposure leads, context needed before blocking)

Type Indicator Context Confidence Source
SHA-256 8b567c0244f2dbee787165aea9c4ddabaaafb0fdb3b29899ac898c60a589856b Reference ARTEX console favicon SHA-256 (MD5 cd3ebd16437d6d3963592f7365dd3980) High [#14][#15]
IPv4 38.11.221[.]82, 89.34.227[.]96 Cybrani reference ARTEX pivot (:8787/:8790) and separate ToShell/ARTEX staging host Moderate [#14][#15]

9. MITRE ATT&CK

Tactic Technique Evidence Source
Resource Development T1588.007 Obtain Capabilities: Artificial Intelligence Multi-agent orchestration with DeepSeek, GLM, Grok, Claude, and OpenAI APIs [#1][#4][#5][#8]
Reconnaissance T1595 Active Scanning Automated ScopeSentry, Nmap, Nuclei, ffuf, and .js.map / /openapi.json harvesting [#3][#10][#16]
Initial Access T1190 Exploit Public-Facing Application SQLi, SSRF, anonymous upload, unsigned SAML + XXE, unauthenticated API writes [#4][#5][#7][#10]
Initial Access T1078.004 Valid Accounts: Cloud Accounts Stolen IAM keys, unrotated mail signing keys, and third-party OAuth credentials [#1][#4][#11][#17]
Initial Access T1195.002 Compromise Software Supply Chain Trojanized tomicdd/artex:latest Docker image pushed via copycat GitHub repo [#12]
Execution T1059 Command and Scripting Interpreter Worker execution of PowerShell (i12345_b2.ps1), bash (sh -c), Python, and SQL [#1][#2][#5][#12]
Persistence T1505.003 Server Software Component: Web Shell Incremental JSP/PHP/ASPX webshells (cl1217.jsp) via MySQL general log poisoning [#1][#2][#4][#5]
Persistence T1136.003 Create Account: Cloud Account Automated self-registration in Okta, AWS Cognito, and production web APIs [#10][#11][#16]
Privilege Escalation T1098 Account Manipulation Entra ID role/secret additions, RBCD (T1134.001), and is_admin=true / custom:isAdmin [#1][#4][#11][#17]
Defense Evasion T1518.001 Security Software Discovery VAPOR PANDA prompting ARTEX to locate Windows hosts without CrowdStrike Falcon [#4]
Defense Evasion T1574.001 DLL Search Order Hijacking GameHook renamed svchost.exe sideloading graphics-hook-filter64.dll (BLOODALCHEMY) [#4]
Credential Access T1110.003 Password Spraying 1-second interval sprays against engineers; invalid-user baselining before admin [#4][#10][#16][#17]
Credential Access T1552.005 Cloud Instance Metadata API XXE chained to query cloud IMDS for privileged role credentials; Kerberoasting/DCSync [#1][#4]
Discovery T1526 Cloud Service Discovery AWS DryRun bursts, 330–400 ms Azure blob capability checks, Cognito enumeration [#1][#11]
Collection T1005 Data from Local System CloudWatch FilterLogEvents mining, 50 MB API dumps, 67,000+ Korean financial PII records [#7][#10][#11]
Command and Control T1102 Web Service Outbound command output to 491 rotating webhook.site URLs; Chisel/FRP/SOCKS tunnels [#1][#3][#4]

In addition to ATT&CK, Zscaler maps ARTEX multi-model workflows to MITRE ATLAS techniques AML.T0040 (AI Agent Tool Integration), AML.T0043 (Autonomous AI Reconnaissance and Exploitation), AML.T0048 (Multi-Model LLM Routing and Delegation), AML.T0051 (LLM Peer Review and Verification), AML.T0052 (Persistent AI Context and State Management), and AML.T0054 (AI Guardrail Bypass) [#8].

10. Sources

# Title Source Published TI Mindmap HUB
1 ARTEX and Friends: Enter Agentic Offensive Frameworks cloud.google.com (primary) 2026-11-01 Open
2 ARTEX: Attackers apply agentic AI sophos.com (primary) 2026-11-10 Open
3 ARTEX: Agentic Asbestos censys.com (primary) 2026-11-08 Open
4 VAPOR PANDA Uses AI-Driven ARTEX to Scale a Global Espionage Campaign crowdstrike.com (primary) 2026-11-03 Open
5 ARTEX abuse expands as cybercriminals target financial sector microsoft.com (primary) 2026-11-06 Open
6 TAG-217 Targets South Korean Financial Services with ARTEX recordedfuture.com (primary) 2026-10-16 Open
7 Threat Actor Abuses Agentic AI Pentesting Framework to Target South Korean Financial Institutions zscaler.com (primary) 2026-10-19 Open
8 Inside a Global AI-Assisted Hacking Campaign zscaler.com (primary) 2026-10-22 Open
9 ARTEX and AI-Powered Red Teaming Tools: What Defenders Need to Know unit42.paloaltonetworks.com (primary) 2026-11-12 Open
10 ARTEX Agentic AI Framework Used to Abuse Exposed APIs and Probe Identity Providers unit42.paloaltonetworks.com (primary) 2026-10-30 Open
11 On the hunt for ARTEX: understanding agentic attacks in AWS environments securitylabs.datadoghq.com (primary) 2026-11-09 Open
12 ARTEX Backdoor: 7,946 Pulls of a Trojanized Docker Image Handing Out Root Shells badbyte.io (primary) 2026-11-08 Open
13 Beyond ARTEX: 45 Agentic Attack Frameworks, What They Hunt For, and How to Find Them blog.gitguardian.com (primary) 2026-11-11 Open
14 ARTEX Infrastructure Hunting intel.cybrani.io (primary) 2026-11-08 Open
15 ARTEX infrastructure hunting: follow-up intel.cybrani.io (primary) 2026-11-08 Open
16 ARTEX in the Wild: Storm-0940 Expands Targeting of IT and Software Vendors wiz.io (primary) 2026-10-22 Open
17 Context: AI-driven, large-scale nation-state campaign using ARTEX enables supply chain compromise microsoft.com (primary) 2026-10-21 Open
18 Context: Confirmed that many of the sources of the successive unauthorized access attacks are AI gmo-cybersecurity.com (primary) 2026-10-19 Open
19 Context: Not Only ARTEX: The Different Levels AI is Used in Attacks Targeting Japan trendaisecurity.com (primary) 2026-11-09 Open
20 Context: “Black October” for AI Developer Platforms wiz.io (primary) 2026-10-31 Open

11. Pivot in TI Mindmap HUB


Methodology & Changelog

This report is derived from publicly available sources. It is provided for defensive purposes, as is, without warranty.

Go beyond this report in TI Mindmap HUB

This analysis was built by correlating the source reports collected and enriched by TI Mindmap HUB. Sign in to work with the underlying intelligence.