🔍 Contexte
Publié le 8 novembre 2026 sur andpalmier.com, cet article constitue une analyse technique indépendante du framework offensif open-source ARTEX (et de ses dérivés), suite à une vague de publications CTI entre octobre et début novembre 2026 par Google GTIG/Mandiant, Microsoft, Wiz, CrowdStrike, Zscaler, Unit 42, AhnLab, Nextron, Censys et d’autres. L’auteur a cloné le dépôt, analysé le code et l’historique git, examiné 73 forks, et conduit des tests en laboratoire isolé.
🧩 Nature d’ARTEX
ARTEX est un framework de pentest autonome piloté par LLM, composé d’un binaire Go avec console web. Il intègre un agent planner (décompose les objectifs en intentions) et des agents worker (exécutent les outils : Bash, WebFetch). Son SDK sous-jacent est Norma, réutilisable indépendamment. Le dépôt original Autumn-27/ARTEX n’est plus disponible ; le fork Hinln/ARTEX conserve l’historique jusqu’à la version 0.3.15 (commit e6ec569).
📡 Origine réelle des IOCs publiés
La majorité des IOCs « ARTEX » côté victime ne proviennent pas du code d’ARTEX :
- User agents : ARTEX ne définit que 4 UA, dont 2 peuvent atteindre les cibles (
norma/0.4via WebFetch,Mozilla/5.0 (spa-api-recon)via scripts bundlés). Les autres UA observés (python-requests,curl,ReconProbe/1.0, etc.) sont générés par le modèle ou les outils. artex-enrich/1.0: présent dans le code mais jamais appelé — la méthodeProbeSite()existe depuis le premier commit (juillet 2026) mais n’est invoquée nulle part. Les règles Suricata publiées pour ce UA ne déclencheront jamais.ArtexProbe/artex-probe-*: absent du code, des prompts et des skills. Probablement généré par le modèle ou issu d’une build privée commerciale (« ARTEX PRO »).
⏱️ Disparition des fingerprints
Timeline clé autour du header WWW-Authenticate: Basic realm="ARTEX" :
- 9 octobre 2026 :
RuoJi6/ARTEXajoute une Basic Auth optionnelle avec ce realm - 30 octobre 2026 : Unit 42 publie ce header comme IOC
- 3 novembre 2026 :
RuoJi6/ARTEXsupprime les fingerprints applicatifs (fix: remove application fingerprints from public responses), remplace le realm parRestricted, vide l’endpoint/api/health - 5 novembre 2026 : Censys publie sa détection ARTEX
De même, "service": "artex" dans le health endpoint a été supprimé dans le même commit.
🔐 TLS et proxy MITM
ARTEX inclut un proxy go-mitmproxy optionnel (désactivé par défaut). Quand activé, il termine la connexion TLS des outils et en ouvre une nouvelle avec la bibliothèque TLS de Go. Résultat : curl/7.88.1 arrive avec un handshake Go (incluant un key share post-quantique). Les fingerprints JA4 documentés permettent de distinguer les modes avec/sans enregistrement.
⏳ Rythme d’activité
Les pauses de 25-31 secondes observées par Unit 42 correspondent au temps de réponse du LLM, pas à une logique interne d’ARTEX. Le framework ajoute seulement 10-20 ms par étape. Plus de workers = bursts plus larges.
🍴 Forks notables
| Fork | Ajout | IOC côté victime |
|---|---|---|
panda0x123/artex-ymh |
Webshells, tunnels, staging | Mozilla/5.0 (ARTEX), fichiers /tmp/.artex_*, echo …%ARTEX_PROBE_UNSET%… |
200210xsb/artex-full |
Fingerprinting Nuclei, listener OOB | Mozilla/5.0 (compatible; ARTEX-Nuclei-Fingerprint/1.0), callbacks ports 8889/18666/18667 |
luojiaping/ARTEX |
Pipeline de vol de clés API LLM | ARTEX-CredHunter/2.0 envoyé aux providers LLM |
📊 Bilan des 62 IOCs publiés
- Côté opérateur (titre console, port 8787, schéma BDD, variables d’env, guard string) : fiables mais invisibles aux victimes
- Dépendants du modèle :
ArtexProbe, valeurs de test inventées, UA auto-descriptifs - Contredits par le code :
artex-enrich/1.0(ne sera jamais émis)
📝 Type d’article
Analyse technique approfondie de reverse engineering et de threat intelligence, visant à qualifier la fiabilité et l’origine des IOCs publiés sur ARTEX par la communauté CTI.
🧠 TTPs et IOCs détectés
Acteurs de menace
TTP
- T1595.001 — Active Scanning: Scanning IP Blocks (Reconnaissance)
- T1595.002 — Active Scanning: Vulnerability Scanning (Reconnaissance)
- T1059.004 — Command and Scripting Interpreter: Unix Shell (Execution)
- T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
- T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
- T1090.001 — Proxy: Internal Proxy (Command and Control)
- T1505.003 — Server Software Component: Web Shell (Persistence)
IOC
- Chemins :
/tmp/.artex_* - Chemins :
/tmp/artex-probe
⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 9 novembre 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.
Malware / Outils
- ARTEX (framework)
- PentAGI (framework)
- Hexstrike (framework)
- CAIRN (framework)
- Norma (framework)
- go-mitmproxy (tool)
- ffuf (tool)
- nuclei (tool)
🟡 Indice de vérification factuelle : 41/100 (moyenne)
- ⬜ andpalmier.com — source non référencée (0pts)
- ✅ 22469 chars — texte complet (15pts)
- ✅ 2 IOC(s) (6pts)
- ⬜ pas d’IOC vérifié (0pts)
- ✅ 7 TTPs MITRE identifiées (15pts)
- ⬜ date RSS ou approximée (0pts)
- ✅ acteur(s) identifié(s) : Storm-0940 (5pts)
- ⬜ pas de CVE à vérifier (0pts)
🔗 Source originale : https://andpalmier.com/posts/artex-source-behind-iocs/
🖴 Archive : https://web.archive.org/web/20261109080735/https://andpalmier.com/posts/artex-source-behind-iocs/