Kubernetes — различия между версиями
Drakylar (обсуждение | вклад) м |
Drakylar (обсуждение | вклад) м (→Role-Based Access Control) |
||
Строка 25: | Строка 25: | ||
Позволяет получить список всех секретов в namespace. | Позволяет получить список всех секретов в namespace. | ||
− | |||
− | |||
− | |||
Строка 40: | Строка 37: | ||
− | + | <syntaxhighlight lang="bash" line="1" enclose="div" style="overflow-x:auto" > | |
+ | curl -s $APISERVER/api/v1/secrets/ --header "Authorization: Bearer $TOKEN" --cacert /tmp/ca.crt | ||
+ | </syntaxhighlight> | ||
=== Доступ get === | === Доступ get === | ||
Строка 47: | Строка 46: | ||
Проблема в том, что при этом не всегда у нас будет доступ list на получение списка секретов, но тк идентификатор секрета - это 5 символов из A..Z, поэтому его возможно перебрать. | Проблема в том, что при этом не всегда у нас будет доступ list на получение списка секретов, но тк идентификатор секрета - это 5 символов из A..Z, поэтому его возможно перебрать. | ||
+ | |||
+ | Пример названия секрета пользователя drakylar-admin: | ||
+ | <syntaxhighlight lang="bash" line="1" enclose="div" style="overflow-x:auto" > | ||
+ | drakylalr-admin-token-sgjbp | ||
+ | </syntaxhighlight> | ||
+ | где sgjbp - случайная строка. | ||
Строка 54: | Строка 59: | ||
<syntaxhighlight lang="bash" line="1" enclose="div" style="overflow-x:auto" > | <syntaxhighlight lang="bash" line="1" enclose="div" style="overflow-x:auto" > | ||
kubectl get secrets secret_name -o yaml | kubectl get secrets secret_name -o yaml | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ==== curl ==== | ||
+ | |||
+ | <syntaxhighlight lang="bash" line="1" enclose="div" style="overflow-x:auto" > | ||
+ | curl -s $APISERVER/api/v1/namespaces/default/secrets/drakylar-admin-token-sgjbp --header "Authorization: Bearer $TOKEN" --cacert /tmp/ca.crt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Версия 18:59, 12 марта 2022
Статья посвящена тестированию на проникновение Kubernetes.
Предварительно статья разделена на сервисы и как их можно найти, эксплуатировать и может быть закрепиться.
Содержание
Role-Based Access Control
Система по управлению ролями. Если проще - просто система контроля доступа, которая говорит куда у нас есть доступ и что это за доступ (get, list, update, delete).
Как правило, неправильная настройка доступа может привести к проблемам безопасности.
Далее проблемы будут разделены на ресурсы, к которым был предоставлен доступ
secrets
Относится к etcd - хранилище секретов.
Доступ list
Позволяет получить список всех секретов в namespace.
kubectl
kubectl get secrets
HTTP API
curl -s $APISERVER/api/v1/secrets/ --header "Authorization: Bearer $TOKEN" --cacert /tmp/ca.crt
Доступ get
Позволяет прочитать секрет.
Проблема в том, что при этом не всегда у нас будет доступ list на получение списка секретов, но тк идентификатор секрета - это 5 символов из A..Z, поэтому его возможно перебрать.
Пример названия секрета пользователя drakylar-admin:
drakylalr-admin-token-sgjbp
где sgjbp - случайная строка.
kubectl
Получить секрет по имени
kubectl get secrets secret_name -o yaml
curl
curl -s $APISERVER/api/v1/namespaces/default/secrets/drakylar-admin-token-sgjbp --header "Authorization: Bearer $TOKEN" --cacert /tmp/ca.crt
pods
Доступ create
Позволяет создавать новые Pod'ы.