🔍 Contexte
Publié le 7 mai 2026 par SentinelLABS (Alex Delamotte), cet article présente l’analyse technique complète de PCPJack, un framework de vol d’identifiants cloud découvert le 28 avril 2026 via une règle de chasse VirusTotal orientée Kubernetes.
🎯 Description de la menace
PCPJack est un framework modulaire en Python conçu pour se propager en ver sur l’infrastructure cloud exposée. Sa première action distinctive est d’évincer et supprimer les artefacts associés au groupe TeamPCP (PCPCat), avant d’installer ses propres outils. L’acteur derrière PCPJack est potentiellement un ancien opérateur de TeamPCP ou quelqu’un de très familier avec leurs outils.
🧩 Architecture du premier toolset (bootstrap.sh + modules Python)
L’infection débute par bootstrap.sh, un dropper shell qui :
- Crée le répertoire de travail
/var/lib/.spm/ - Vérifie l’IP publique contre une liste de blocage opérateur
- Supprime les processus/artefacts TeamPCP/PCPCat
- Installe Python et télécharge 6 modules depuis un bucket S3 attaquant
- Établit la persistance via systemd (
sys-monitor.service) ou crontab
Les modules téléchargés sont :
- monitor.py (worm.py) : orchestrateur principal
- utils.py (parser.py) : extraction d’identifiants par regex
- _lat.py (lateral.py) : mouvement latéral interne
- _cu.py (crypto_util.py) : chiffrement X25519/ChaCha20-Poly1305 des données exfiltrées
- _cr.py (cloud_ranges.py) : base de données CIDR cloud (AWS, Azure, GCP, Cloudflare, Fastly)
- _csc.py (cloud_scan.py) : scanner de propagation externe
🔑 Vol d’identifiants
Le framework cible un large spectre de services :
- Finance/Crypto : Binance, Coinbase, Kraken, KuCoin, OKX, Stripe, Gemini, Infura, Solana, Ethereum
- Messagerie/SMTP : Amazon SES, SendGrid, Mailchimp, Mailgun, Twilio, Gmail, Microsoft 365/Outlook
- Cloud/Web : AWS (Access Key ID + Secret), GitHub, Slack, WordPress, PHP API keys
- Infrastructure : SSH private keys, Kubernetes tokens, Docker secrets, AWS IMDS credentials, wallets crypto
🌐 Propagation
La propagation externe utilise des fichiers parquet téléchargés depuis Common Crawl pour obtenir des cibles sans coordination centrale. Les vulnérabilités exploitées incluent :
- CVE-2025-55182 (React/Next.js, CVSS 9.0) : désérialisation Server Actions
- CVE-2025-29927 (Next.js, CVSS 8.8) : contournement d’authentification middleware
- CVE-2026-1357 (WPVivid Backup WordPress, CVSS 9.8) : upload de fichier non authentifié
- CVE-2025-9501 (W3 Total Cache WordPress, CVSS 9.0) : injection PHP
- CVE-2025-48703 (CentOS Web Panel, CVSS 9.x) : injection shell
La propagation interne cible Docker (socket /var/run/docker.sock, ports 2375/2376), Kubernetes (API management, escape de conteneur), Redis (cron rewrite), RayML (port 8265), MongoDB (port 27017), et SSH (spray avec clés récoltées).
📡 C2 et exfiltration
Le C2 utilise Telegram : les données chiffrées sont postées sur un canal, les commandes reçues depuis un message épinglé. Les données sont chiffrées via X25519 + ChaCha20-Poly1305 avec une clé publique attaquant hardcodée. En cas d’absence de la librairie cryptography, les données sont envoyées en clair.
🛠️ Second toolset (check.sh + Sliver beacons)
Un second toolset indépendant a été identifié sur le même serveur de staging :
- check.sh : script 858 lignes qui récolte des identifiants (30+ services dont Anthropic, OpenAI, HashiCorp Vault, 1Password, Grafana Cloud, Digital Ocean, Discord) et déploie des beacons Sliver compilés avec l’obfuscateur garble
- Trois binaires ELF :
update.bin(x64),update-386.bin(x86),update-arm.bin(ARM) - Exfiltration vers
cdn.cloudfront-js.com:8443(domaine typosquatté) - Persistance locale sous
/var/tmp/apt-daily-upgrade
🏗️ Infrastructure attaquant
11 IPs VPS géolocalisées en Allemagne sont hardcodées dans bootstrap.sh comme infrastructure propre à l’attaquant. L’IP 38.242.245.147 a hébergé lastpass-login-help.com, un domaine de phishing ciblant les credentials LastPass.
📋 Type d’article
Analyse technique approfondie publiée par SentinelLABS, visant à documenter le framework PCPJack, ses composants, sa relation avec TeamPCP, et à fournir des IoCs exploitables pour la communauté CTI.
🧠 TTPs et IOCs détectés
Acteurs de menace
TTP
- T1059.004 — Command and Scripting Interpreter: Unix Shell (Execution)
- T1059.006 — Command and Scripting Interpreter: Python (Execution)
- T1078.004 — Valid Accounts: Cloud Accounts (Defense Evasion)
- T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
- T1552.005 — Unsecured Credentials: Cloud Instance Metadata API (Credential Access)
- T1552.007 — Unsecured Credentials: Container API (Credential Access)
- T1098 — Account Manipulation (Persistence)
- T1053.003 — Scheduled Task/Job: Cron (Persistence)
- T1543.002 — Create or Modify System Process: Systemd Service (Persistence)
- T1190 — Exploit Public-Facing Application (Initial Access)
- T1210 — Exploitation of Remote Services (Lateral Movement)
- T1021.004 — Remote Services: SSH (Lateral Movement)
- T1611 — Escape to Host (Privilege Escalation)
- T1041 — Exfiltration Over C2 Channel (Exfiltration)
- T1567 — Exfiltration Over Web Service (Exfiltration)
- T1102 — Web Service (Command and Control)
- T1027 — Obfuscated Files or Information (Defense Evasion)
- T1070.004 — Indicator Removal: File Deletion (Defense Evasion)
- T1046 — Network Service Discovery (Discovery)
- T1613 — Container and Resource Discovery (Discovery)
- T1530 — Data from Cloud Storage (Collection)
- T1110.004 — Brute Force: Credential Stuffing (Credential Access)
- T1496 — Resource Hijacking (Impact)
IOC
- IPv4 :
38.242.204.245— AbuseIPDB · VT · ThreatFox - IPv4 :
38.242.237.196— AbuseIPDB · VT · ThreatFox - IPv4 :
38.242.245.147— AbuseIPDB · VT · ThreatFox - IPv4 :
83.171.249.231— AbuseIPDB · VT · ThreatFox - IPv4 :
161.97.129.25— AbuseIPDB · VT · ThreatFox - IPv4 :
161.97.135.154— AbuseIPDB · VT · ThreatFox - IPv4 :
161.97.163.87— AbuseIPDB · VT · ThreatFox - IPv4 :
161.97.186.175— AbuseIPDB · VT · ThreatFox - IPv4 :
161.97.187.42— AbuseIPDB · VT · ThreatFox - IPv4 :
193.187.129.143— AbuseIPDB · VT · ThreatFox - IPv4 :
213.136.80.73— AbuseIPDB · VT · ThreatFox - Domaines :
cdn.cloudfront-js.com— VT · URLhaus · ThreatFox - Domaines :
lastpass-login-help.com— VT · URLhaus · ThreatFox - Domaines :
spm-cdn-assets-dist-2026.s3.us-east-2.amazonaws.com— VT · URLhaus · ThreatFox - URLs :
https://spm-cdn-assets-dist-2026.s3.us-east-2.amazonaws.com— URLhaus - URLs :
https://cdn.cloudfront-js.com:8443/u— URLhaus - SHA1 :
005587975a483876c1fa26b64b418931019be38f— VT · MalwareBazaar - SHA1 :
01cebc48016395e284ac76afc1816f143ee3e7b6— VT · MalwareBazaar - SHA1 :
0b86434ca5145636d745222f7e49c903ce6ef538— VT · MalwareBazaar - SHA1 :
2cd2c5268e41cdece1b0506bcda3b9eba2998119— VT · MalwareBazaar - SHA1 :
2fab324eb0d927846c8744dc0e217beea65138e0— VT · MalwareBazaar - SHA1 :
339cbf61c80f757085c5afb7304d69f323bdf87a— VT · MalwareBazaar - SHA1 :
6060da100b5cd587131a1c11a20d6e0108604744— VT · MalwareBazaar - SHA1 :
848ef1f638807826586802428a7ebafdc710915c— VT · MalwareBazaar - SHA1 :
9c7ab48c9fdbbeecdad8433529bdab38584f0e25— VT · MalwareBazaar - SHA1 :
a20a9924d92c2b06d82b79c0fe87451c650cabec— VT · MalwareBazaar - SHA1 :
c2dd8051d89c4efa71bd67d2df7d9b4bc3e67810— VT · MalwareBazaar - SHA1 :
fed52a4bbac7b5b6ae4f76cab3eadd67e79227e3— VT · MalwareBazaar - CVEs :
CVE-2025-29927— NVD · CIRCL - CVEs :
CVE-2025-55182— NVD · CIRCL - CVEs :
CVE-2026-1357— NVD · CIRCL - CVEs :
CVE-2025-9501— NVD · CIRCL - CVEs :
CVE-2025-48703— NVD · CIRCL - Fichiers :
bootstrap.sh - Fichiers :
worm.py - Fichiers :
monitor.py - Fichiers :
parser.py - Fichiers :
utils.py - Fichiers :
lateral.py - Fichiers :
_lat.py - Fichiers :
crypto_util.py - Fichiers :
_cu.py - Fichiers :
cloud_ranges.py - Fichiers :
_cr.py - Fichiers :
cloud_scan.py - Fichiers :
_csc.py - Fichiers :
check.sh - Fichiers :
extractor.py - Fichiers :
update.bin - Fichiers :
update-386.bin - Fichiers :
update-arm.bin - Fichiers :
run_script.py - Fichiers :
harvest.jsonl - Chemins :
/var/lib/.spm/ - Chemins :
/var/lib/.spm/worm.py - Chemins :
/var/lib/.spm/monitor.py - Chemins :
/var/lib/.spm/_cr/ranges.json - Chemins :
/etc/systemd/system/sys-monitor.service - Chemins :
/etc/systemd/system/spm-worker.service - Chemins :
/tmp/.origin - Chemins :
/var/tmp/apt-daily-upgrade - Chemins :
/run/secrets/ - Chemins :
/var/run/docker.sock
Malware / Outils
- PCPJack (framework)
- bootstrap.sh (loader)
- monitor.py (other)
- lateral.py (tool)
- crypto_util.py (tool)
- cloud_scan.py (tool)
- check.sh (loader)
- extractor.py (stealer)
- Sliver (framework)
🟢 Indice de vérification factuelle : 95/100 (haute)
- ✅ sentinelone.com — source reconnue (liste interne) (20pts)
- ✅ 35920 chars — texte complet (fulltext extrait) (15pts)
- ✅ 63 IOCs dont des hashes (15pts)
- ✅ 6/8 IOCs confirmés (AbuseIPDB, ThreatFox, URLhaus, VirusTotal) (15pts)
- ✅ 23 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ✅ acteur(s) identifié(s) : PCPJack, TeamPCP, VECT (5pts)
- ⬜ 0/5 CVE(s) confirmée(s) (0pts)
IOCs confirmés externellement :
38.242.204.245(ip) → VT (4/92 détections)38.242.237.196(ip) → VT (5/92 détections)38.242.245.147(ip) → VT (13/92 détections)cdn.cloudfront-js.com(domain) → VT (4/92 détections)lastpass-login-help.com(domain) → VT (8/92 détections)
🔗 Source originale : https://www.sentinelone.com/labs/cloud-worm-evicts-teampcp-and-steals-credentials-at-scale/