GCP - Контейнери та GKE Enum
Reading time: 5 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Контейнери
У контейнерах GCP ви можете знайти більшість контейнеризованих сервісів, які пропонує GCP, тут ви можете побачити, як перерахувати найбільш поширені з них:
gcloud container images list
gcloud container images list --repository us.gcr.io/<project-name> #Search in other subdomains repositories
gcloud container images describe <name>
gcloud container subnets list-usable
gcloud container clusters list
gcloud container clusters describe <name>
gcloud container clusters get-credentials [NAME]
# Run a container locally
docker run --rm -ti gcr.io/<project-name>/secret:v1 sh
# Login & Download
sudo docker login -u oauth2accesstoken -p $(gcloud auth print-access-token) https://HOSTNAME
## where HOSTNAME is gcr.io, us.gcr.io, eu.gcr.io, or asia.gcr.io.
sudo docker pull HOSTNAME/<project-name>/<image-name>
Privesc
На наступній сторінці ви можете перевірити, як зловживати дозволами контейнера для ескалації привілеїв:
Node Pools
Це пул машин (вузлів), які формують кластери kubernetes.
# Pool of machines used by the cluster
gcloud container node-pools list --zone <zone> --cluster <cluster>
gcloud container node-pools describe --cluster <cluster> --zone <zone> <node-pool>
Kubernetes
Для отримання інформації про те, що таке Kubernetes, перегляньте цю сторінку:
Спочатку ви можете перевірити, чи існують у вашому проекті будь-які кластери Kubernetes.
gcloud container clusters list
Якщо у вас є кластер, ви можете налаштувати gcloud
для автоматичної конфігурації вашого ~/.kube/config
файлу. Цей файл використовується для аутентифікації, коли ви використовуєте kubectl, рідний CLI для взаємодії з K8s кластерами. Спробуйте цю команду.
gcloud container clusters get-credentials [CLUSTER NAME] --region [REGION]
Потім перегляньте файл ~/.kube/config
, щоб побачити згенеровані облікові дані. Цей файл буде використовуватися для автоматичного оновлення токенів доступу на основі тієї ж ідентичності, яку використовує ваша активна сесія gcloud
. Це, звичайно, вимагає наявності правильних дозволів.
Коли це буде налаштовано, ви можете спробувати наступну команду, щоб отримати конфігурацію кластера.
kubectl cluster-info
Ви можете дізнатися більше про gcloud
для контейнерів тут.
Це простий скрипт для перерахунку kubernetes у GCP: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum
Підвищення привілеїв TLS Bootstrap
Спочатку ця техніка підвищення привілеїв дозволяла привести до привілеїв всередині GKE кластера, ефективно дозволяючи зловмиснику повністю його скомпрометувати.
Це пов'язано з тим, що GKE надає TLS Bootstrap облікові дані у метаданих, які доступні будь-кому, просто скомпрометувавши под.
Використана техніка пояснюється в наступних постах:
- https://www.4armed.com/blog/hacking-kubelet-on-gke/
- https://www.4armed.com/blog/kubeletmein-kubelet-hacking-tool/
- https://rhinosecuritylabs.com/cloud-security/kubelet-tls-bootstrap-privilege-escalation/
І цей інструмент був створений для автоматизації процесу: https://github.com/4ARMED/kubeletmein
Однак техніка зловживала тим, що з обліковими даними метаданих було можливим згенерувати CSR (Запит на підписання сертифіката) для нового вузла, який був автоматично схвалений.
У моєму тесті я перевірив, що ці запити більше не схвалюються автоматично, тому я не впевнений, чи ця техніка все ще дійсна.
Секрети в Kubelet API
У цьому пості було виявлено адресу Kubelet API, доступну зсередини пода в GKE, що надає деталі запущених подів:
curl -v -k http://10.124.200.1:10255/pods
Навіть якщо API не дозволяє змінювати ресурси, можливо, що можна знайти чутливу інформацію у відповіді. Точка доступу /pods була знайдена за допомогою Kiterunner.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.