Kubernetes — различия между версиями

Материал из InformationSecurity WIKI
Перейти к: навигация, поиск
м
м (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'ы.