PCPJack Cloud Worm Evicts TeamPCP Tools and Steals Credentials

· Original article ↗

Summary

SentinelLABS analyzed PCPJack, a modular worm that removes TeamPCP artifacts, harvests cloud and developer credentials, and propagates through exposed services. A separate toolset deploys Sliver beacons and steals credentials from more than 30 services.

Key points

  • SentinelLABS discovered PCPJack on April 28, 2026, while investigating a script that removed artifacts associated with TeamPCP.
  • PCPJack harvests secrets from local files, cloud and container services, developer tools, and financial platforms, then attempts to spread through exposed Docker, Kubernetes, Redis, MongoDB, RayML, and vulnerable web applications.
  • Its modules establish persistence through systemd or cron, use Kubernetes, Docker, Redis, RayML, MongoDB, and SSH for propagation or lateral movement, and communicate through Telegram.
  • Stolen data is encrypted before Telegram exfiltration, but the article notes the tool may fall back to sending plaintext if its cryptography dependency is unavailable.
  • A separate toolset on the same delivery server deploys Sliver beacons and harvests credentials from more than 30 services before exfiltrating data to a typosquatted domain.
  • SentinelLABS found no cryptocurrency-mining functionality in either toolset. Researchers said they had no evidence that the PCPJack operator was associated with TeamPCP.
  • The researchers recommend secret management, MFA for service accounts, enforcing AWS IMDSv2, and requiring authentication for Docker and Kubernetes management services.

Article Details

Attack Vectors
  • bootstrap.sh sets up the Linux environment, downloads PCPJack modules from attacker-hosted S3 storage, and establishes persistence through a systemd service or cron jobs.
  • PCPJack propagates by exploiting exposed services and web applications; the article identifies CVE-2025-29927, CVE-2025-55182, CVE-2026-1357, CVE-2025-9501, and CVE-2025-48703.
  • The framework harvests credentials and secrets from files, environment variables, SSH stores, cloud instance metadata, Kubernetes service accounts, Docker secrets, and Git history.
  • For internal propagation, PCPJack abuses Kubernetes APIs, Docker sockets, Redis configuration, RayML jobs, MongoDB access, and SSH credentials; it also attempts container escape by mounting the host filesystem.
  • PCPJack sends encrypted stolen data through Telegram channels. A separate toolset installs Sliver beacons, harvests credentials from more than 30 services, and exfiltrates data to a typosquatted endpoint.
  • The second toolset SSH-sprays up to 10 lateral targets before deleting itself.
Defensive Notes
  • Use an enterprise-wide vault or secrets-management service, and do not store access to secret stores in cleartext files.
  • Require MFA for service accounts rather than relying on API keys alone.
  • Enforce IMDSv2 across AWS services to reduce credential theft through instance metadata.
  • Allow-list downloads to approved S3 resources.
  • Require authentication for Docker and Kubernetes management interfaces, including when systems are not internet-exposed.
  • Restrict Kubernetes service-account scopes according to least privilege.

Indicators of compromise

TypeIndicatorContext
DOMAINlastpass-login-help[.]comPhishing domain reported on an infrastructure IP and identified as harvesting LastPass master credentials.
IPV4161[.]97[.]129[.]25Hardcoded in bootstrap.sh's attacker-infrastructure exclusion list; attribution to the PCPJack operator is uncertain.
IPV4161[.]97[.]135[.]154Hardcoded in bootstrap.sh's attacker-infrastructure exclusion list; attribution to the PCPJack operator is uncertain.
IPV4161[.]97[.]163[.]87Hardcoded in bootstrap.sh's attacker-infrastructure exclusion list; attribution to the PCPJack operator is uncertain.
IPV4161[.]97[.]186[.]175Hardcoded in bootstrap.sh's attacker-infrastructure exclusion list; attribution to the PCPJack operator is uncertain.
IPV4161[.]97[.]187[.]42Hardcoded in bootstrap.sh's attacker-infrastructure exclusion list; attribution to the PCPJack operator is uncertain.
IPV4193[.]187[.]129[.]143Hardcoded in bootstrap.sh's attacker-infrastructure exclusion list; attribution to the PCPJack operator is uncertain.
IPV4213[.]136[.]80[.]73Hardcoded in bootstrap.sh's attacker-infrastructure exclusion list; attribution to the PCPJack operator is uncertain.
IPV438[.]242[.]204[.]245Hardcoded in bootstrap.sh's attacker-infrastructure exclusion list; attribution to the PCPJack operator is uncertain.
IPV438[.]242[.]237[.]196Hardcoded in bootstrap.sh's attacker-infrastructure exclusion list; attribution to the PCPJack operator is uncertain.
IPV438[.]242[.]245[.]147Hardcoded in bootstrap.sh's attacker-infrastructure exclusion list and reported to have hosted the LastPass credential-phishing domain; attribution to the PCPJack operator is uncertain.
IPV483[.]171[.]249[.]231Hardcoded in bootstrap.sh's attacker-infrastructure exclusion list; attribution to the PCPJack operator is uncertain.
SHA1005587975a483876c1fa26b64b418931019be38fSHA-1 hash of the Sliver beacon binary update.bin.
SHA101cebc48016395e284ac76afc1816f143ee3e7b6SHA-1 hash of the PCPJack cloud_scan.py component.
SHA10b86434ca5145636d745222f7e49c903ce6ef538SHA-1 hash of the PCPJack worm.py orchestrator.
SHA12cd2c5268e41cdece1b0506bcda3b9eba2998119SHA-1 hash of the PCPJack crypto_util.py component.
SHA12fab324eb0d927846c8744dc0e217beea65138e0SHA-1 hash of the Sliver beacon binary update-386.bin.
SHA1339cbf61c80f757085c5afb7304d69f323bdf87aSHA-1 hash of the second toolset's check.sh script.
SHA16060da100b5cd587131a1c11a20d6e0108604744SHA-1 hash of the Sliver beacon binary update-arm.bin.
SHA1848ef1f638807826586802428a7ebafdc710915cSHA-1 hash of the PCPJack cloud_ranges.py component.
SHA19c7ab48c9fdbbeecdad8433529bdab38584f0e25SHA-1 hash of the PCPJack utils.py credential-parsing component.
SHA1a20a9924d92c2b06d82b79c0fe87451c650cabecSHA-1 hash of the PCPJack bootstrap.sh dropper.
SHA1c2dd8051d89c4efa71bd67d2df7d9b4bc3e67810SHA-1 hash of the PCPJack bootstrap.sh dropper.
SHA1fed52a4bbac7b5b6ae4f76cab3eadd67e79227e3SHA-1 hash of the PCPJack lateral.py component.
URLhxxps[:]//cdn[.]cloudfront-js[.]com:8443/uSpecific typosquatted endpoint used by the second toolset to exfiltrate stolen data.
URLhxxps[:]//spm-cdn-assets-dist-2026[.]s3[.]us-east-2[.]amazonaws[.]comPCPJack payload-hosting URL configured in bootstrap.sh; the article says the S3 resource was likely registered by the attacker for unauthorized purposes.

MITRE ATT&CK

T1021.004 · SSHPCPJack uses harvested SSH keys and host information to access SSH targets and run bootstrap.sh remotely.T1027 · Obfuscated Files or InformationPCPJack stores sensitive strings as hex-encoded data and XOR-decrypts them at runtime.T1041 · Exfiltration Over C2 ChannelPCPJack sends stolen data to Telegram channels after encrypting it; the second toolset exfiltrates stolen credentials to its remote endpoint.T1046 · Network Service Discoverycloud_scan.py scans for exposed Docker, Kubernetes, MongoDB, RayML, and Redis services.T1053.003 · CronWhen not run as root, bootstrap.sh creates cron jobs; PCPJack also rewrites Redis cron configuration to relaunch bootstrap.sh.T1059.004 · Unix Shellbootstrap.sh runs as a Linux shell script to set up the environment, download payloads, and launch the worm.T1102.002 · Bidirectional CommunicationThe malware posts data to one Telegram channel and checks another for commands.T1105 · Ingress Tool Transferbootstrap.sh downloads PCPJack modules from attacker-controlled S3 storage, and the second toolset downloads architecture-specific Sliver binaries.T1119 · Automated CollectionPCPJack automates collection by scanning local directories and Git history for secrets and credentials.T1219 · Remote Access ToolsThe second toolset downloads and runs Sliver C2 beacon binaries on infected systems.T1543.002 · Systemd ServiceWhen run as root, bootstrap.sh creates a systemd service to run monitor.py persistently.T1552.001 · Credentials In FilesThe framework searches .env and configuration files, SSH stores, and Git history for credentials and secrets.T1552.005 · Cloud Instance Metadata APIPCPJack queries AWS Instance Metadata Service credentials on infected hosts and during lateral movement.T1611 · Escape to HostThe Kubernetes and Docker propagation routines attempt container escape by mounting the host filesystem.T1613 · Container and Resource DiscoveryUsing Kubernetes service-account access, PCPJack enumerates namespaces and pods and inspects running containers.

Threat Actors

Malware

Vendors

Products

Tools

Countries

Industries

Related Articles