mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-14 05:46:25 -08:00
Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Explotación Post de la Base de Datos de Logic Apps
|
||||
## Explotación Posterior de la Base de Datos de Logic Apps
|
||||
Para más información sobre las aplicaciones lógicas, consulta:
|
||||
|
||||
{{#ref}}
|
||||
@@ -153,7 +153,7 @@ az logic integration-account session create \
|
||||
```
|
||||
### `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, pueden provocar interrupciones en el servicio.
|
||||
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.
|
||||
```bash
|
||||
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>" \
|
||||
@@ -162,7 +162,7 @@ az rest --method POST \
|
||||
|
||||
```
|
||||
### "*/delete"
|
||||
Con estos permisos, puedes eliminar recursos relacionados con Azure Logic Apps
|
||||
Con estos permisos puedes eliminar recursos relacionados con Azure Logic Apps
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
Azure Cosmos DB proporciona múltiples APIs de base de datos para modelar datos del mundo real utilizando documentos, modelos de datos relacionales, clave-valor, gráfico y de familia de columnas, siendo estas APIs NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin y Table.
|
||||
|
||||
Un aspecto clave de CosmosDB es la Cuenta de Azure Cosmos. **Cuenta de Azure Cosmos**, actúa como el punto de entrada a las bases de datos. La cuenta determina configuraciones clave como la distribución global, los niveles de consistencia y la API específica que se utilizará, como NoSQL. A través de la cuenta, puedes configurar la replicación global para garantizar que los datos estén disponibles en múltiples regiones para un acceso de baja latencia. Además, puedes elegir un nivel de consistencia que equilibre entre rendimiento y precisión de datos, con opciones que van desde Consistencia Fuerte hasta Consistencia Eventual.
|
||||
Un aspecto clave de CosmosDB es la Cuenta de Azure Cosmos. **Cuenta de Azure Cosmos**, actúa como el punto de entrada a las bases de datos. La cuenta determina configuraciones clave como la distribución global, los niveles de consistencia y la API específica que se utilizará, como NoSQL. A través de la cuenta, puedes configurar la replicación global para asegurar que los datos estén disponibles en múltiples regiones para un acceso de baja latencia. Además, puedes elegir un nivel de consistencia que equilibre entre rendimiento y precisión de datos, con opciones que van desde Consistencia Fuerte hasta Consistencia Eventual.
|
||||
|
||||
Azure Cosmos DB admite **identidades asignadas por el usuario** e **identidades gestionadas asignadas por el sistema** que se crean automáticamente y están vinculadas al ciclo de vida del recurso. Sin embargo, Cosmos DB no tiene un mecanismo incorporado para consultar directamente fuentes de datos externas como Azure Blob Storage. A diferencia de las características de tablas externas de SQL Server, Cosmos DB requiere que los datos sean ingeridos en sus contenedores utilizando herramientas externas como Azure Data Factory, la Herramienta de Migración de Datos o scripts personalizados antes de que puedan ser consultados con sus capacidades de consulta nativas.
|
||||
|
||||
@@ -21,7 +21,7 @@ https://<Account-Name>.documents.azure.com:443/
|
||||
Dentro de una cuenta, puedes crear una o más bases de datos, que sirven como agrupaciones lógicas de contenedores. Una base de datos actúa como un límite para la gestión de recursos y permisos de usuario. Las bases de datos pueden permitir que múltiples contenedores utilicen un pool compartido de capacidad de rendimiento o dar a cada contenedor su propia potencia dedicada.
|
||||
|
||||
#### Contenedores
|
||||
La unidad central de almacenamiento de datos es el contenedor, que contiene documentos JSON y se indexa automáticamente para consultas eficientes. Los contenedores son escalables de manera elástica y se distribuyen a través de particiones, que son determinadas por una clave de partición definida por el usuario. La clave de partición es crítica para garantizar un rendimiento óptimo y una distribución uniforme de los datos. Por ejemplo, un contenedor podría almacenar datos de clientes, con "customerId" como la clave de partición.
|
||||
La unidad central de almacenamiento de datos es el contenedor, que contiene documentos JSON y se indexa automáticamente para consultas eficientes. Los contenedores son escalables de manera elástica y se distribuyen a través de particiones, que son determinadas por una clave de partición definida por el usuario. La clave de partición es crítica para garantizar un rendimiento óptimo y una distribución equitativa de los datos. Por ejemplo, un contenedor podría almacenar datos de clientes, con "customerId" como la clave de partición.
|
||||
|
||||
#### Características clave
|
||||
- **Distribución global**: Habilitar o deshabilitar la Geo-Redundancia para la replicación entre regiones y Escrituras en múltiples regiones para mejorar la disponibilidad.
|
||||
@@ -131,7 +131,7 @@ Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "<ResourceGroupName>" -A
|
||||
|
||||
#### Conexión
|
||||
|
||||
Tiene 2 tipos de clave, Lectura-escritura (completa) y Solo lectura. Proporcionan el acceso indicado a todas las bases de datos, colecciones y datos dentro de la cuenta de Cosmos DB. Para conectarse, se necesita la biblioteca azure-cosmosDB (pip install azure-cosmos). Además, el endpoint y la clave son componentes cruciales para realizar la conexión.
|
||||
Tiene 2 tipos de clave, Lectura-escritura (completa) y Solo lectura. Proporcionan el acceso indicado a todas las bases de datos, colecciones y datos dentro de la cuenta de Cosmos DB. Para conectarse, se necesita la biblioteca azure-cosmosDB (pip install azure-cosmos). Además, el endpoint y la clave son componentes cruciales para establecer la conexión.
|
||||
```python
|
||||
from azure.cosmos import CosmosClient, PartitionKey
|
||||
|
||||
@@ -204,11 +204,11 @@ mongodb://<hostname>:<port>/<database>
|
||||
En MongoDB, puedes crear una o más bases de datos dentro de una instancia. Cada base de datos sirve como un agrupamiento lógico de colecciones y proporciona un límite para la organización y gestión de recursos. Las bases de datos ayudan a separar y gestionar datos lógicamente, como para diferentes aplicaciones o proyectos.
|
||||
|
||||
#### Colecciones
|
||||
La unidad central de almacenamiento de datos en MongoDB es la colección, que contiene documentos y está diseñada para consultas eficientes y un diseño de esquema flexible. Las colecciones son escalables de manera elástica y pueden soportar operaciones de alto rendimiento a través de múltiples nodos en una configuración distribuida.
|
||||
La unidad central de almacenamiento de datos en MongoDB es la colección, que contiene documentos y está diseñada para consultas eficientes y un diseño de esquema flexible. Las colecciones son escalables de manera elástica y pueden soportar operaciones de alto rendimiento en múltiples nodos en una configuración distribuida.
|
||||
|
||||
#### Características clave del tipo de unidad de solicitud (RU)
|
||||
**Distribución Global**: Habilitar o deshabilitar la Geo-Redundancia para la replicación entre regiones y Escrituras en Múltiples Regiones para mejorar la disponibilidad.
|
||||
**Redes y Seguridad**: entre puntos finales públicos (todos/redes seleccionadas) o privados para conectividad. Conexiones seguras con cifrado TLS 1.2. Soporta CORS (Intercambio de Recursos de Origen Cruzado) para acceso controlado a recursos. Para realizar la conexión, puedes hacer uso de claves.
|
||||
**Redes y Seguridad**: entre puntos finales públicos (todos/seleccionar redes) o privados para conectividad. Conexiones seguras con cifrado TLS 1.2. Soporta CORS (Intercambio de Recursos de Origen Cruzado) para acceso controlado a recursos. Para realizar la conexión, puedes hacer uso de claves.
|
||||
**Copia de seguridad y recuperación**: de políticas de copia de seguridad Periódicas, Continuas (7 días, gratis) o Continuas (30 días, de pago) con intervalos y retención configurables.
|
||||
**Cifrado de datos**: Claves gestionadas por el servicio por defecto o claves gestionadas por el cliente (CMK) para cifrado (la selección de CMK es irreversible).
|
||||
|
||||
@@ -299,8 +299,7 @@ Get-AzCosmosDBMongoDBRoleDefinition -AccountName <account-name> -ResourceGroupNa
|
||||
|
||||
#### Conexión
|
||||
|
||||
El tipo RU MongoDB en CosmoDB tiene 2 tipos de clave, Lectura-escritura (completa) y Solo lectura. Proporcionan el acceso indicado a todas las bases de datos, colecciones y datos dentro de la cuenta de Cosmos DB.
|
||||
Para la contraseña, puedes usar las claves o el método descrito en la sección de privesc.
|
||||
El tipo RU MongoDB en CosmoDB tiene 2 tipos de clave, Lectura-escritura (completa) y Solo lectura. Proporcionan el acceso indicado a todas las bases de datos, colecciones y datos dentro de la cuenta de Cosmos DB. Para la contraseña, puedes usar las claves o el método descrito en la sección de privesc.
|
||||
```python
|
||||
from pymongo import MongoClient
|
||||
|
||||
@@ -363,6 +362,4 @@ mongosh "mongodb://<myUser>:<mySecurePassword>@<account_name>.mongo.cosmos.azure
|
||||
* Echar un vistazo a la post explotación "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" y definiciones de roles porque aquí podría haber una escalación de privilegios
|
||||
* Echar un vistazo a las restauraciones
|
||||
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -13,7 +13,7 @@ Al crear una Logic App, debes crear o vincular una cuenta de almacenamiento exte
|
||||
### Ejemplos
|
||||
|
||||
- **Automatización de Pipelines de Datos**: Logic Apps puede automatizar **procesos de transferencia y transformación de datos** en combinación con Azure Data Factory. Esto es útil para crear pipelines de datos escalables y confiables que mueven y transforman datos entre varios almacenes de datos, como Azure SQL Database y Azure Blob Storage, ayudando en operaciones de análisis e inteligencia empresarial.
|
||||
- **Integración con Azure Functions**: Logic Apps puede trabajar junto con Azure Functions para desarrollar **aplicaciones sofisticadas impulsadas por eventos que escalan según sea necesario** e integrarse sin problemas con otros servicios de Azure. Un caso de uso de ejemplo es utilizar una Logic App para activar una Azure Function en respuesta a ciertos eventos, como cambios en una cuenta de Azure Storage, permitiendo un procesamiento de datos dinámico.
|
||||
- **Integración con Azure Functions**: Logic Apps puede trabajar junto a Azure Functions para desarrollar **aplicaciones sofisticadas impulsadas por eventos que escalan según sea necesario** e integrarse sin problemas con otros servicios de Azure. Un caso de uso de ejemplo es utilizar una Logic App para activar una Azure Function en respuesta a ciertos eventos, como cambios en una cuenta de Azure Storage, permitiendo un procesamiento de datos dinámico.
|
||||
|
||||
### Visualizar una LogicAPP
|
||||
|
||||
@@ -44,10 +44,10 @@ Hay varias opciones de alojamiento:
|
||||
- **Híbrido** diseñado para procesamiento local y soporte multi-nube. Permite recursos de computación gestionados por el cliente con acceso a la red local y utiliza Kubernetes Event-Driven Autoscaling (KEDA). Se basa en un entorno de aplicación de contenedor conectado.
|
||||
|
||||
### Características clave
|
||||
- **Almacenamiento**: Logic Apps requieren una cuenta de Azure Storage externa para almacenar el estado del flujo de trabajo, el historial de ejecución… y debe estar en el mismo grupo de recursos que la Logic App.
|
||||
- **Redes y Seguridad**: Logic Apps se pueden configurar con acceso público o privado. Por defecto, la aplicación está abierta a Internet, pero se puede integrar con una Red Virtual de Azure para conectividad aislada.
|
||||
- **Application Insights**: La gestión del rendimiento de la aplicación (APM) a través de Azure Monitor Application Insights se puede habilitar para rastrear el rendimiento, detectar anomalías y proporcionar análisis.
|
||||
- **Control de acceso**: Las Logic Apps admiten identidades gestionadas por el sistema e identidades gestionadas por el usuario.
|
||||
- **Almacenamiento**: Las Logic Apps requieren una cuenta de Azure Storage externa para almacenar el estado del flujo de trabajo, el historial de ejecución... y debe estar en el mismo grupo de recursos que la Logic App.
|
||||
- **Redes y Seguridad**: Las Logic Apps se pueden configurar con acceso público o privado. Por defecto, la aplicación está abierta a Internet, pero se puede integrar con una Red Virtual de Azure para conectividad aislada.
|
||||
- **Application Insights**: La gestión del rendimiento de aplicaciones (APM) a través de Azure Monitor Application Insights se puede habilitar para rastrear el rendimiento, detectar anomalías y proporcionar análisis.
|
||||
- **Control de Acceso**: Las Logic Apps admiten identidades gestionadas por el sistema e identidades gestionadas por el usuario.
|
||||
|
||||
### Flujos de trabajo "Únicos"
|
||||
|
||||
@@ -55,14 +55,14 @@ Un **flujo de trabajo** es una secuencia estructurada de pasos o tareas automati
|
||||
|
||||
Azure Logic Apps ofrece la funcionalidad de **crear un flujo de trabajo único sin la necesidad de una Logic App** en sí.
|
||||
|
||||
Cada flujo de trabajo tiene diferentes **disparadores**. Estos disparadores son los pasos que sigue el flujo de trabajo. Cada disparador tiene sus parámetros que pueden variar dependiendo del tipo de disparador:
|
||||
Cada flujo de trabajo tiene diferentes **disparadores**. Estos disparadores son los pasos que sigue el flujo de trabajo. Cada disparador tiene sus parámetros que pueden variar según el tipo de disparador:
|
||||
- Nombre de conexión
|
||||
- **Tipo de autenticación** que puede ser, Clave de acceso, Microsoft Entra ID, autenticación de principal de servicio integrado e Identidad gestionada de Logic Apps.
|
||||
- **Tipo de Autenticación** que puede ser, Clave de Acceso, Microsoft Entra ID, autenticación de principal de servicio integrado e Identidad Gestionada de Logic Apps.
|
||||
|
||||
Los disparadores también tienen varias configuraciones:
|
||||
- Validación de esquema: Asegura que los datos entrantes sigan una estructura predefinida.
|
||||
- Control de concurrencia: Limita el número de ejecuciones paralelas.
|
||||
- Condiciones de disparador: condiciones que deben cumplirse antes de que se active el disparador.
|
||||
- Validación de Esquema: Asegura que los datos entrantes sigan una estructura predefinida.
|
||||
- Control de Concurrencia: Limita el número de ejecuciones paralelas.
|
||||
- Condiciones de Disparador: condiciones que deben cumplirse antes de que se active el disparador.
|
||||
- Redes: Configura el tamaño de los fragmentos para la transferencia de datos y permite suprimir los encabezados del flujo de trabajo en las respuestas.
|
||||
- **Seguridad**: Habilita **Entradas/Salidas Seguras para ocultar** datos sensibles en los registros y las salidas.
|
||||
|
||||
@@ -77,24 +77,24 @@ Un flujo de trabajo tiene diferentes configuraciones como:
|
||||
Puedes ver las diferentes conexiones API que tiene el flujo de trabajo. Dentro de cada una de estas conexiones tienen diferentes propiedades y la posibilidad de editar la conexión API donde se puede cambiar el tipo de autenticación.
|
||||
|
||||
**Historial y Versiones:**
|
||||
Tiene la opción de acceder al **historial** de las diferentes ejecuciones, muestra, Configuraciones, Salida, Parámetros y el Código.
|
||||
Tiene la opción de acceder al **historial** de las diferentes ejecuciones, muestra Configuraciones, Salida, Parámetros y el Código.
|
||||
|
||||
También tiene la opción de acceder a diferentes **versiones** del flujo de trabajo, donde puedes revisar el código y cambiar el flujo de trabajo presente por una versión anterior de este.
|
||||
|
||||
**Autorización:**
|
||||
Azure Logic Apps admite **políticas de autorización** con Entra ID para asegurar los disparadores basados en solicitudes al requerir un token de acceso válido. Este token debe incluir reclamos específicos:
|
||||
Las Azure Logic Apps admiten **políticas de autorización** con Entra ID para asegurar los disparadores basados en solicitudes al requerir un token de acceso válido. Este token debe incluir reclamos específicos:
|
||||
- Emisor (iss) para verificar el proveedor de identidad
|
||||
- Audiencia (aud) para asegurar que el token está destinado a la Logic App
|
||||
- Sujeto (sub) para identificar al llamador
|
||||
- ID de JWT (identificador de token web JSON)
|
||||
- Reclamo personalizado
|
||||
- Reclamo Personalizado
|
||||
|
||||
Cuando se recibe una solicitud, Logic Apps valida el token contra estos reclamos y permite la ejecución solo si coinciden con la política configurada. Esto se puede usar para permitir que otro inquilino active el flujo de trabajo o denegar el disparador de otras fuentes, por ejemplo, solo permitiendo el disparador si proviene de https://login.microsoftonline.com/.
|
||||
Cuando se recibe una solicitud, las Logic Apps validan el token contra estos reclamos y permiten la ejecución solo si coinciden con la política configurada. Esto se puede usar para permitir que otro inquilino active el flujo de trabajo o denegar el disparador de otras fuentes, por ejemplo, permitiendo el disparador solo si proviene de https://login.microsoftonline.com/.
|
||||
|
||||
**Claves de acceso:**
|
||||
Cuando guardas un disparador basado en solicitudes por primera vez, Logic Apps crea automáticamente un endpoint único con una firma SAS (creada a partir de la Clave de acceso) que otorga permiso para llamar al flujo de trabajo. Esta firma SAS está incrustada en la URL del disparador. Esta clave se puede regenerar y dará una nueva firma SAS, pero las claves no se pueden listar.
|
||||
**Claves de Acceso:**
|
||||
Cuando guardas un disparador basado en solicitudes por primera vez, las Logic Apps crean automáticamente un endpoint único con una firma SAS (creada a partir de la Clave de Acceso) que otorga permiso para llamar al flujo de trabajo. Esta firma SAS está incrustada en la URL del disparador. Esta clave se puede regenerar y dará una nueva firma SAS, pero las claves no se pueden listar.
|
||||
|
||||
La URL para invocarlo con la Clave de acceso:
|
||||
La URL para invocarlo con la Clave de Acceso:
|
||||
|
||||
https://<region>.logic.azure.com:443/workflows/<workflow-id>/triggers/<trigger-name>/paths/invoke?api-version=<api-version>&sp=%2Ftriggers%2F<trigger-name>%2Frun&sv=<version>&sig=<signature>
|
||||
|
||||
@@ -203,8 +203,6 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
|
||||
### Cuentas de Integración
|
||||
**Cuentas de Integración**, son una característica de Azure Logic Apps. Las Cuentas de Integración se utilizan para facilitar integraciones a nivel empresarial al habilitar capacidades avanzadas de B2B, como EDI, AS2 y gestión de esquemas XML. Las Cuentas de Integración son un contenedor en Azure que almacena los siguientes artefactos utilizados para Logic Apps:
|
||||
|
||||
@@ -283,7 +281,7 @@ az logic integration-account assembly show \
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="Az Powershell" }}
|
||||
```powershell
|
||||
```bash
|
||||
Get-Command -Module Az.LogicApp
|
||||
|
||||
# Retrieve details of an integration account
|
||||
|
||||
Reference in New Issue
Block a user