GCP - Containers & GKE Enum
Контейнери
У контейнерах GCP ви можете знайти більшість контейнерних сервісів, які пропонує GCP, тут ви можете побачити, як перелічити найбільш поширені з них:
Підвищення привілеїв
На наступній сторінці ви можете перевірити, як зловживати дозволами контейнера для підвищення привілеїв:
GCP - Container PrivescГрупи вузлів
Це пул машин (вузлів), які утворюють кластери Kubernetes.
Kubernetes
Для отримання інформації про те, що таке Kubernetes, перегляньте цю сторінку:
Kubernetes PentestingСпочатку ви можете перевірити, чи існують будь-які кластери Kubernetes у вашому проекті.
Якщо у вас є кластер, ви можете дозволити gcloud
автоматично налаштувати ваш файл ~/.kube/config
. Цей файл використовується для аутентифікації вас під час використання kubectl, основного інтерфейсу командного рядка для взаємодії з кластерами K8s. Спробуйте цю команду.
Потім перегляньте файл ~/.kube/config
, щоб побачити згенеровані облікові дані. Цей файл буде використовуватися для автоматичного оновлення токенів доступу на основі тієї ж самої ідентичності, яку використовує ваша активна сесія gcloud
. Звісно, для цього потрібні відповідні дозволи.
Після налаштування цього ви можете спробувати наступну команду, щоб отримати конфігурацію кластера.
Ви можете дізнатися більше про gcloud
для контейнерів тут.
Це простий скрипт для переліку кластерів Kubernetes в GCP: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum
Привілеї ескалації привілеїв TLS Boostrap
Спочатку ця техніка ескалації привілеїв дозволяла піднятися в середину кластера GKE, ефективно дозволяючи зловмиснику повністю скомпрометувати його.
Це тому, що GKE надає TLS Bootstrap credentials в метаданих, які доступні будь-кому, просто скомпрометувавши підпроцес.
Техніка, яка використовується, пояснюється в наступних повідомленнях:
Цей інструмент був створений для автоматизації процесу: https://github.com/4ARMED/kubeletmein
Однак техніка використовувала той факт, що за допомогою облікових даних метаданих було можливо створити CSR (Certificate Signing Request) для нового вузла, який автоматично схвалювався. У моєму тесті я перевірив, що ці запити вже не автоматично схвалюються, тому я не впевнений, чи ця техніка ще дійсна.
Секрети в Kubelet API
У цьому повідомленні було виявлено адресу Kubelet API, до якої можна отримати доступ зсередини підпроцесу в GKE, що надає деталі про запущені підпроцеси:
Навіть якщо API не дозволяє змінювати ресурси, можливо знайти чутливу інформацію у відповіді. Кінцева точка /pods була знайдена за допомогою Kiterunner.
Last updated