7.2 KiB
Az - Logic Apps Post Exploitation
{{#include ../../../banners/hacktricks-training.md}}
Explotación Posterior de la Base de Datos de Logic Apps
Para más información sobre las aplicaciones lógicas, consulta:
{{#ref}} ../az-services/az-logic-apps.md {{#endref}}
Microsoft.Logic/workflows/read, Microsoft.Logic/workflows/write && Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
Con estos permisos, puedes modificar los flujos de trabajo de Logic App y gestionar sus identidades. Específicamente, puedes asignar o eliminar identidades gestionadas asignadas por el sistema y por el usuario a los flujos de trabajo, lo que permite que la Logic App se autentique y acceda a otros recursos de Azure sin credenciales explícitas.
az logic workflow identity remove/assign \
--name <workflow_name> \
--resource-group <resource_group_name> \
--system-assigned true \
--user-assigned "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>"
Adicionalmente, con solo Microsoft.Logic/workflows/write puedes cambiar algunas configuraciones como las direcciones IP de entrada permitidas o los días de retención del historial de ejecución:
az rest --method PUT \
--uri "https://management.azure.com/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.Logic/workflows/<workflow_name>?api-version=2019-05-01" \
--headers "Content-Type=application/json" \
--body '{
"location": "<location>",
"properties": {
"state": "Enabled",
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"triggers": {
"<trigger_name>": {
"type": "Request",
"kind": "Http"
}
},
"actions": {},
"outputs": {}
},
"runtimeConfiguration": {
"lifetime": {
"unit": "day",
"count": <count>
}
},
"accessControl": {
"triggers": {
"allowedCallerIpAddresses": []
},
"actions": {
"allowedCallerIpAddresses": []
}
}
}
}'
Microsoft.Web/sites/read, Microsoft.Web/sites/write
Con estos permisos, puedes crear o actualizar Logic Apps alojados en un App Service Plan. Esto incluye modificar configuraciones como habilitar o deshabilitar la aplicación forzada de HTTPS.
az logicapp update \
--resource-group <resource_group_name> \
--name <logic_app_name> \
--set httpsOnly=false
Microsoft.Web/sites/stop/action, Microsoft.Web/sites/start/action || Microsoft.Web/sites/restart/action
Con este permiso, puedes iniciar/detener/reiniciar una aplicación web, incluidas las Logic Apps alojadas en un App Service Plan. Esta acción asegura que una aplicación que fue detenida anteriormente se ponga en línea y reanude su funcionalidad. Esto puede interrumpir flujos de trabajo, activar operaciones no deseadas o causar tiempo de inactividad al iniciar, detener o reiniciar Logic Apps inesperadamente.
az webapp start/stop/restart \
--name <logic_app_name> \
--resource-group <resource_group_name>
Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/read && Microsoft.Web/sites/config/write
Con este permiso, puedes configurar o modificar ajustes para aplicaciones web, incluyendo Logic Apps alojadas en un App Service Plan. Esto permite cambios en la configuración de la aplicación, cadenas de conexión, configuraciones de autenticación y más.
az logicapp config appsettings set \
--name <logic_app_name> \
--resource-group <resource_group_name> \
--settings "<key>=<value>"
Microsoft.Logic/integrationAccounts/write
Con este permiso, puedes crear, actualizar o eliminar cuentas de integración de Azure Logic Apps. Esto incluye la gestión de configuraciones a nivel de cuenta de integración como mapas, esquemas, socios, acuerdos y más.
az logic integration-account create \
--resource-group <resource_group_name> \
--name <integration_account_name> \
--location <location> \
--sku <Standard|Free> \
--state Enabled
Microsoft.Resources/subscriptions/resourcegroups/read && Microsoft.Logic/integrationAccounts/batchConfigurations/write
Con este permiso, puedes crear o modificar configuraciones de lotes dentro de una cuenta de integración de Azure Logic Apps. Las configuraciones de lotes definen cómo Logic Apps procesan y agrupan los mensajes entrantes para el procesamiento por lotes.
az logic integration-account batch-configuration create \
--resource-group <resource_group_name> \
--integration-account-name <integration_account_name> \
--name <batch_configuration_name> \
--release-criteria '{
"messageCount": 100,
"batchSize": 1048576,
}'
Microsoft.Resources/subscriptions/resourcegroups/read && Microsoft.Logic/integrationAccounts/maps/write
Con este permiso, puedes crear o modificar mapas dentro de una cuenta de integración de Azure Logic Apps. Los mapas se utilizan para transformar datos de un formato a otro, lo que permite una integración fluida entre diferentes sistemas y aplicaciones.
az logic integration-account map create \
--resource-group <resource_group_name> \
--integration-account-name <integration_account_name> \
--name <map_name> \
--map-type <Xslt|Xslt20|Xslt30> \
--content-type application/xml \
--map-content map-content.xslt
Microsoft.Resources/subscriptions/resourcegroups/read && Microsoft.Logic/integrationAccounts/partners/write
Con este permiso, puedes crear o modificar socios en una cuenta de integración de Azure Logic Apps. Los socios representan entidades o sistemas que participan en flujos de trabajo de negocio a negocio (B2B).
az logic integration-account partner create \
--resource-group <resource_group_name> \
--integration-account-name <integration_account_name> \
--name <partner_name> \
--partner-type <partner-type> \
--content '{
"b2b": {
"businessIdentities": [
{
"qualifier": "ZZ",
"value": "TradingPartner1"
}
]
}
}'
Microsoft.Resources/subscriptions/resourcegroups/read && Microsoft.Logic/integrationAccounts/sessions/write
Con este permiso, puedes crear o modificar sesiones dentro de una cuenta de integración de Azure Logic Apps. Las sesiones se utilizan en flujos de trabajo B2B para agrupar mensajes y rastrear transacciones relacionadas durante un período definido.
az logic integration-account session create \
--resource-group <resource_group_name> \
--integration-account-name <integration_account_name> \
--name <session_name> \
--content '{
"properties": {
"sessionId": "session123",
"data": {
"key1": "value1",
"key2": "value2"
}
}
}'
Microsoft.Logic/workflows/regenerateAccessKey/action
Los usuarios con este permiso pueden regenerar las claves de acceso de Logic App, y si se utilizan de manera indebida, puede llevar a interrupciones en el servicio.
az rest --method POST \
--uri "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Logic/workflows/<workflow-name>/regenerateAccessKey?api-version=<api-version>" \
--body '{"keyType": "<key-type>"}' \
--headers "Content-Type=application/json"
"*/delete"
Con estos permisos puedes eliminar recursos relacionados con Azure Logic Apps
{{#include ../../../banners/hacktricks-training.md}}