Обнаружен фреймворк PCPJack: кража учетных данных в облаке и уничтожение следов группировки TeamPCP

information security

В конце апреля 2026 года специалисты SentinelLABS выявили новый инструмент для атак на облачную инфраструктуру. Этот фреймворк, получивший название PCPJack, представляет собой сложную систему кражи учетных данных, которая одновременно уничтожает следы деятельности известной хакерской группы TeamPCP. Такая тактика делает находку уникальной: вместо того чтобы просто проникать в системы, вредоносная программа целенаправленно вытесняет конкурентов.

Описание

PCPJack нацелен на облачные сервисы, контейнерные среды, а также инструменты разработчиков и финансовые платформы. Жертвами становятся компании, использующие Docker, Kubernetes, Redis, MongoDB, RayML и уязвимые веб-приложения. В отличие от большинства облачных угроз, этот фреймворк не развертывает майнеры криптовалют. Вместо этого злоумышленники монетизируют доступ через кражу учетных данных, мошенничество, спам или перепродажу скомпрометированной информации.

28 апреля исследователи наткнулись на скрипт, который сразу же начал удалять инструменты, связанные с группировкой TeamPCP. Это и стало отправной точкой для анализа. TeamPCP запомнилась по громким атакам в начале 2026 года, включая взлом сканера уязвимостей Trivy компании Aqua Security. Инцидент привел к компрометации нескольких цепочек поставок, в том числе библиотеки LiteLLM. Кроме того, TeamPCP объявила о партнерстве с группировкой вымогателей VECT.

Многие сервисы, которые атакует PCPJack, напоминают цели ранних кампаний TeamPCP, проводившихся в декабре 2025 года. Тогда группировка действовала под именем PCPCat. После того как в начале 2026 года активность TeamPCP привлекла широкое внимание, состав группы якобы изменился. Специалисты полагают, что за PCPJack может стоять бывший оператор, хорошо знакомый с инструментарием TeamPCP. Косвенно это подтверждается тем, что фреймворк собирает метрики успешности удаления конкурентов и передает их на сервер управления.

Инфицирование начинается со скрипта bootstrap.sh, предназначенного для систем Linux. Он создает рабочий каталог, проверяет, не принадлежит ли атакуемый узел к инфраструктуре самого злоумышленника, и удаляет все процессы и файлы, связанные с TeamPCP. Затем скрипт устанавливает Python и зависимости, загружает шесть модулей с облачного хранилища Amazon S3 и настраивает постоянное закрепление. Если скрипт запущен от root, создается системная служба sys-monitor.service; в противном случае - два задания в планировщике cron, которые каждые пять минут перезапускают основного оркестратора monitor.py.

После запуска оркестратор импортирует модули для сканирования, распространения, шифрования данных и извлечения учетных данных. Код содержит запутанные строки, которые расшифровываются с помощью XOR и хеша MD5. Однако операционная безопасность не безупречна: токен Telegram-бота и ключ шифрования остались в открытом виде.

Компрометируя хост, PCPJack собирает файлы с переменными окружения, ключи API, SSH-ключи, токены Kubernetes, данные из IMDS (AWS Instance Metadata Service) и файлы криптовалютных кошельков. Отдельный модуль ищет секреты в истории Git. После сбора система проверяет, не установлен ли уже сам фреймворк, и если нет - загружает и запускает bootstrap.sh для распространения.

Распространение на внешние цели происходит с помощью модуля cloud_scan.py. Он сканирует интернет на наличие открытых портов Docker, Kubernetes, MongoDB, Redis и RayML. При обнаружении уязвимого сервиса модуль атакует всю подсеть /24. Для закрепления используются привилегированные контейнеры, инъекции в cron и отправка вредоносных заданий в RayML.

Внутри скомпрометированной сети работает модуль lateral.py. Он сканирует локальные ресурсы, используя служебные токены Kubernetes, Docker API и SSH-ключи. Для каждой цели применяется специфичная техника: например, чтение секретов через API Kubernetes, дамп базы Redis или запуск команд в контейнерах Docker.

Данные шифруются модулем crypto_util.py с использованием алгоритма X25519 и ChaCha20-Poly1305, а затем отправляются в Telegram-канал злоумышленника. Если библиотека шифрования недоступна, данные уходят в открытом виде. Исследователи обнаружили, что Telegram-бот, указанный в коде, оказался неактивным, хотя вредоносная программа продолжала распространяться.

Помимо основного фреймворка, на сервере злоумышленника нашли второй набор инструментов - скрипт check.sh и бинарные файлы Sliver. Этот набор предназначен для сбора учетных данных из еще более широкого спектра сервисов, включая Anthropic, Digital Ocean, Discord, Google API, Grafana Cloud, HashiCorp Vault, OnePassword и OpenAI. Скомпрометированные данные отправляются на поддельный домен, имитирующий CloudFront. Дополнительно скрипт выполняет перебор SSH-ключей для горизонтального перемещения.

Бинарные файлы Sliver скомпилированы с использованием обфускатора garble, что затрудняет обнаружение сигнатурами. Найдены варианты для 64-битных, 32-битных систем и ARM.

Главный вывод: PCPJack демонстрирует высокий уровень разработки, но при этом содержит явные промахи в операционной безопасности. Отсутствие майнеров и направленность на удаление следов TeamPCP указывают на возможную внутреннюю борьбу в мире киберугроз. Организациям рекомендуется строго контролировать учетные данные, использовать многофакторную аутентификацию для сервисных аккаунтов и ограничивать доступ к API управления контейнерами. Только комплексная защита облачной инфраструктуры способна снизить риски от подобных целевых атак.

Индикаторы компрометации

IPv4

  • 161.97.129.25
  • 161.97.135.154
  • 161.97.163.87
  • 161.97.186.175
  • 161.97.187.42
  • 193.187.129.143
  • 213.136.80.73
  • 38.242.204.245
  • 38.242.237.196
  • 38.242.245.147
  • 83.171.249.231

Domains

  • cdn.cloudfront-js.com
  • lastpass-login-help.com
  • spm-cdn-assets-dist-2026.s3.us-east-2.amazonaws.com

SHA1

  • 005587975a483876c1fa26b64b418931019be38f
  • 01cebc48016395e284ac76afc1816f143ee3e7b6
  • 0b86434ca5145636d745222f7e49c903ce6ef538
  • 2cd2c5268e41cdece1b0506bcda3b9eba2998119
  • 2fab324eb0d927846c8744dc0e217beea65138e0
  • 339cbf61c80f757085c5afb7304d69f323bdf87a
  • 6060da100b5cd587131a1c11a20d6e0108604744
  • 848ef1f638807826586802428a7ebafdc710915c
  • 9c7ab48c9fdbbeecdad8433529bdab38584f0e25
  • a20a9924d92c2b06d82b79c0fe87451c650cabec
  • c2dd8051d89c4efa71bd67d2df7d9b4bc3e67810
  • fed52a4bbac7b5b6ae4f76cab3eadd67e79227e3

Комментарии: 0