mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat
This commit is contained in:
+39
-7
@@ -12,14 +12,14 @@
|
|||||||
|
|
||||||
### Ανάγνωση Secrets
|
### Ανάγνωση Secrets
|
||||||
|
|
||||||
Τα **secrets αυτά είναι ευαίσθητες πληροφορίες**, [δείτε τη σελίδα privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) για να μάθετε πώς να τα διαβάσετε.
|
Τα **secrets είναι ευαίσθητες πληροφορίες**, [δείτε τη σελίδα privesc](../aws-privilege-escalation/aws-secrets-manager-privesc.md) για να μάθετε πώς να τα διαβάσετε.
|
||||||
|
|
||||||
### DoS — Αλλαγή τιμής Secret
|
### DoS — Αλλαγή τιμής του Secret
|
||||||
|
|
||||||
Αλλάζοντας την τιμή του secret, μπορείτε να προκαλέσετε **DoS σε όλα τα συστήματα που εξαρτώνται από αυτή την τιμή.**
|
Αλλάζοντας την τιμή του secret μπορείς να **DoS όλα τα συστήματα που εξαρτώνται από αυτήν την τιμή.**
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> Σημειώστε ότι οι προηγούμενες τιμές αποθηκεύονται επίσης, οπότε είναι εύκολο να επαναφέρετε την προηγούμενη τιμή.
|
> Σημειώστε ότι οι προηγούμενες τιμές αποθηκεύονται επίσης, οπότε είναι εύκολο να επιστρέψετε στην προηγούμενη τιμή.
|
||||||
```bash
|
```bash
|
||||||
# Requires permission secretsmanager:PutSecretValue
|
# Requires permission secretsmanager:PutSecretValue
|
||||||
aws secretsmanager put-secret-value \
|
aws secretsmanager put-secret-value \
|
||||||
@@ -28,11 +28,11 @@ aws secretsmanager put-secret-value \
|
|||||||
```
|
```
|
||||||
### DoS Change KMS key
|
### DoS Change KMS key
|
||||||
|
|
||||||
Αν ο attacker έχει την άδεια secretsmanager:UpdateSecret, μπορεί να ρυθμίσει το secret ώστε να χρησιμοποιεί ένα KMS key που ανήκει στον attacker. Το κλειδί αυτό αρχικά διαμορφώνεται με τέτοιο τρόπο ώστε ο οποιοσδήποτε να μπορεί να το προσπελάσει και να το χρησιμοποιήσει, οπότε η ενημέρωση του secret με το νέο κλειδί είναι δυνατή. Αν το κλειδί δεν ήταν προσβάσιμο, το secret δεν θα μπορούσε να ενημερωθεί.
|
Αν ο attacker έχει την άδεια secretsmanager:UpdateSecret, μπορεί να ρυθμίσει το secret ώστε να χρησιμοποιεί ένα KMS key που ανήκει στον attacker. Αυτό το key αρχικά ρυθμίζεται με τέτοιο τρόπο ώστε οποιοσδήποτε να μπορεί να το προσπελάσει και να το χρησιμοποιήσει, επομένως η ενημέρωση του secret με το νέο key είναι δυνατή. Εάν το key δεν ήταν προσβάσιμο, το secret δεν θα μπορούσε να ενημερωθεί.
|
||||||
|
|
||||||
Μετά την αλλαγή του κλειδιού για το secret, ο attacker τροποποιεί τη διαμόρφωση του κλειδιού του ώστε μόνο αυτός να μπορεί να έχει πρόσβαση. Έτσι, στις επόμενες εκδόσεις του secret θα κρυπτογραφείται με το νέο κλειδί και, καθώς δεν θα υπάρχει πρόσβαση σε αυτό, η δυνατότητα ανάκτησης του secret θα χαθεί.
|
Αφού αλλάξει το key για το secret, ο attacker τροποποιεί τη διαμόρφωση του key του ώστε μόνο ο ίδιος να έχει πρόσβαση. Με αυτόν τον τρόπο, στις επόμενες εκδόσεις του secret θα κρυπτογραφείται με το νέο key, και επειδή δεν υπάρχει πρόσβαση σε αυτό, η δυνατότητα ανάκτησης του secret θα χαθεί.
|
||||||
|
|
||||||
Είναι σημαντικό να σημειωθεί ότι αυτή η μη προσβασιμότητα θα συμβεί μόνο στις μεταγενέστερες εκδόσεις, μετά την αλλαγή του περιεχομένου του secret, αφού η τρέχουσα έκδοση εξακολουθεί να είναι κρυπτογραφημένη με το αρχικό KMS key.
|
Είναι σημαντικό να σημειωθεί ότι αυτή η μη προσβασιμότητα θα συμβεί μόνο σε μεταγενέστερες εκδόσεις, μετά την αλλαγή του περιεχομένου του secret, αφού η τρέχουσα έκδοση εξακολουθεί να είναι κρυπτογραφημένη με το αρχικό KMS key.
|
||||||
```bash
|
```bash
|
||||||
aws secretsmanager update-secret \
|
aws secretsmanager update-secret \
|
||||||
--secret-id MyTestSecret \
|
--secret-id MyTestSecret \
|
||||||
@@ -46,4 +46,36 @@ aws secretsmanager delete-secret \
|
|||||||
--secret-id MyTestSecret \
|
--secret-id MyTestSecret \
|
||||||
--recovery-window-in-days 7
|
--recovery-window-in-days 7
|
||||||
```
|
```
|
||||||
|
## secretsmanager:RestoreSecret
|
||||||
|
|
||||||
|
Είναι δυνατή η επαναφορά ενός secret, η οποία επιτρέπει την αποκατάσταση των secrets που έχουν προγραμματιστεί για διαγραφή, αφού η ελάχιστη περίοδος διαγραφής για τα secrets είναι 7 ημέρες και η μέγιστη 30 ημέρες. Σε συνδυασμό με την άδεια secretsmanager:GetSecretValue, αυτό καθιστά δυνατή την ανάκτηση του περιεχομένου τους.
|
||||||
|
|
||||||
|
Για να ανακτήσετε ένα secret που βρίσκεται στη διαδικασία διαγραφής, μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή:
|
||||||
|
```bash
|
||||||
|
aws secretsmanager restore-secret \
|
||||||
|
--secret-id <Secret_Name>
|
||||||
|
```
|
||||||
|
## secretsmanager:DeleteResourcePolicy
|
||||||
|
|
||||||
|
Αυτή η ενέργεια επιτρέπει τη διαγραφή της πολιτικής πόρου που ελέγχει ποιος μπορεί να έχει πρόσβαση σε ένα μυστικό. Αυτό μπορεί να οδηγήσει σε DoS εάν η πολιτική πόρου είχε ρυθμιστεί ώστε να επιτρέπει πρόσβαση σε ένα συγκεκριμένο σύνολο χρηστών.
|
||||||
|
|
||||||
|
Για να διαγράψετε την πολιτική πόρου:
|
||||||
|
```bash
|
||||||
|
aws secretsmanager delete-resource-policy \
|
||||||
|
--secret-id <Secret_Name>
|
||||||
|
```
|
||||||
|
## secretsmanager:UpdateSecretVersionStage
|
||||||
|
|
||||||
|
Οι καταστάσεις ενός secret χρησιμοποιούνται για τη διαχείριση των εκδόσεων ενός secret. AWSCURRENT σηματοδοτεί την ενεργή έκδοση που χρησιμοποιούν οι εφαρμογές, AWSPREVIOUS διατηρεί την προηγούμενη έκδοση ώστε να μπορείτε να επαναφέρετε αν χρειαστεί, και AWSPENDING χρησιμοποιείται στη διαδικασία rotation για να προετοιμάσει και να επικυρώσει μια νέα έκδοση πριν την κάνει την τρέχουσα.
|
||||||
|
|
||||||
|
Οι εφαρμογές διαβάζουν πάντα την έκδοση με AWSCURRENT. Αν κάποιος μετακινήσει αυτήν την ετικέτα σε λάθος έκδοση, οι εφαρμογές θα χρησιμοποιήσουν μη έγκυρα credentials και ενδέχεται να αποτύχουν.
|
||||||
|
|
||||||
|
Το AWSPREVIOUS δεν χρησιμοποιείται αυτόματα. Ωστόσο, αν το AWSCURRENT αφαιρεθεί ή ανατεθεί λανθασμένα, μπορεί να φαίνεται ότι όλα εξακολουθούν να λειτουργούν με την προηγούμενη έκδοση.
|
||||||
|
```bash
|
||||||
|
aws secretsmanager update-secret-version-stage \
|
||||||
|
--secret-id <your-secret-name-or-arn> \
|
||||||
|
--version-stage AWSCURRENT \
|
||||||
|
--move-to-version-id <target-version-id> \
|
||||||
|
--remove-from-version-id <previous-version-id>
|
||||||
|
```
|
||||||
{{#include ../../../banners/hacktricks-training.md}}
|
{{#include ../../../banners/hacktricks-training.md}}
|
||||||
|
|||||||
+7
-4
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
## Secrets Manager
|
## Secrets Manager
|
||||||
|
|
||||||
Για περισσότερες πληροφορίες σχετικά με τον διαχειριστή μυστικών, ελέγξτε:
|
Για περισσότερες πληροφορίες σχετικά με το secrets manager δείτε:
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
../aws-services/aws-secrets-manager-enum.md
|
../aws-services/aws-secrets-manager-enum.md
|
||||||
@@ -12,15 +12,18 @@
|
|||||||
|
|
||||||
### `secretsmanager:GetSecretValue`
|
### `secretsmanager:GetSecretValue`
|
||||||
|
|
||||||
Ένας επιτιθέμενος με αυτή την άδεια μπορεί να αποκτήσει την **αποθηκευμένη τιμή μέσα σε ένα μυστικό** στο AWS **Secretsmanager**.
|
Ένας attacker με αυτήν την άδεια μπορεί να αποκτήσει την **αποθηκευμένη τιμή μέσα σε ένα secret** στο AWS **Secretsmanager**.
|
||||||
```bash
|
```bash
|
||||||
aws secretsmanager get-secret-value --secret-id <secret_name> # Get value
|
aws secretsmanager get-secret-value --secret-id <secret_name> # Get value
|
||||||
```
|
```
|
||||||
**Πιθανές Επιπτώσεις:** Πρόσβαση σε ευαίσθητα δεδομένα μέσα στην υπηρεσία AWS secrets manager.
|
**Πιθανός Αντίκτυπος:** Πρόσβαση σε ευαίσθητα δεδομένα εντός AWS Secrets Manager.
|
||||||
|
|
||||||
|
> [!WARNING]
|
||||||
|
> Σημειώστε ότι ακόμη και με την άδεια `secretsmanager:BatchGetSecretValue`, ένας επιτιθέμενος θα χρειαστεί επίσης την `secretsmanager:GetSecretValue` για να ανακτήσει τα ευαίσθητα μυστικά.
|
||||||
|
|
||||||
### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`)
|
### `secretsmanager:GetResourcePolicy`, `secretsmanager:PutResourcePolicy`, (`secretsmanager:ListSecrets`)
|
||||||
|
|
||||||
Με τις προηγούμενες άδειες είναι δυνατό να **δώσετε πρόσβαση σε άλλους φορείς/λογαριασμούς (ακόμα και εξωτερικούς)** για να αποκτήσουν πρόσβαση στο **μυστικό**. Σημειώστε ότι για να **διαβάσετε μυστικά που είναι κρυπτογραφημένα** με ένα KMS key, ο χρήστης πρέπει επίσης να έχει **πρόσβαση στο KMS key** (περισσότερες πληροφορίες στη σελίδα [KMS Enum](../aws-services/aws-kms-enum.md)).
|
Με τις προηγούμενες άδειες είναι δυνατό να **παραχωρηθεί πρόσβαση σε άλλους principals/accounts (ακόμη και εξωτερικούς)** ώστε να έχουν πρόσβαση στο **μυστικό**. Σημειώστε ότι για να **διαβαστούν μυστικά κρυπτογραφημένα** με ένα KMS key, ο χρήστης χρειάζεται επίσης να έχει **πρόσβαση στο KMS key** (περισσότερες πληροφορίες στη [KMS Enum page](../aws-services/aws-kms-enum.md)).
|
||||||
```bash
|
```bash
|
||||||
aws secretsmanager list-secrets
|
aws secretsmanager list-secrets
|
||||||
aws secretsmanager get-resource-policy --secret-id <secret_name>
|
aws secretsmanager get-resource-policy --secret-id <secret_name>
|
||||||
|
|||||||
Reference in New Issue
Block a user