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 yamlcurl
curl -s $APISERVER/api/v1/namespaces/default/secrets/drakylar-admin-token-sgjbp --header "Authorization: Bearer $TOKEN" --cacert /tmp/ca.crtpods
Доступ create
Позволяет создавать новые Pod'ы.