Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az

This commit is contained in:
Translator
2025-02-20 23:14:40 +00:00
parent 20fef17a68
commit c0ec1a446d
7 changed files with 71 additions and 195 deletions

View File

@@ -1,29 +0,0 @@
# Az - Persistencia de Almacenamiento en Cola
{{#include ../../../banners/hacktricks-training.md}}
## Cola
Para más información, consulta:
{{#ref}}
../az-services/az-queue.md
{{#endref}}
### Acciones: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
Este permiso permite a un atacante crear o modificar colas y sus propiedades dentro de la cuenta de almacenamiento. Se puede utilizar para crear colas no autorizadas, modificar metadatos o cambiar listas de control de acceso (ACLs) para otorgar o restringir el acceso. Esta capacidad podría interrumpir flujos de trabajo, inyectar datos maliciosos, exfiltrar información sensible o manipular configuraciones de cola para habilitar ataques adicionales.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>
az storage queue metadata update --name <queue-name> --metadata key1=value1 key2=value2 --account-name <storage-account>
az storage queue policy set --name <queue-name> --permissions rwd --expiry 2024-12-31T23:59:59Z --account-name <storage-account>
```
## Referencias
- [https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues](https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues)
- [https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api](https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api)
- [https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes](https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes)
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -1,20 +0,0 @@
# Az - SQL Persistence
{{#include ../../../banners/hacktricks-training.md}}
## SQL
Para más información, consulta:
{{#ref}}
../az-services/az-sql.md
{{#endref}}
### Técnicas Comunes de Persistencia
- Comprometer credenciales de SQL o crear un usuario de SQL (habilitando la autenticación de SQL si es necesario)
- Asignar un usuario comprometido como administrador de Entra ID (habilitando la autenticación de Entra ID si es necesario)
- Puerta trasera en la VM (si se utiliza una VM de SQL)
- Crear una regla de FW para mantener el acceso a la base de datos SQL
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -11,13 +11,26 @@ Para más información sobre SQL Database consulta:
### `Microsoft.DocumentDB/databaseAccounts/read` && `Microsoft.DocumentDB/databaseAccounts/write`
Con este permiso, puedes crear o actualizar cuentas de Azure Cosmos DB. Esto incluye modificar configuraciones a nivel de cuenta, agregar o eliminar regiones, cambiar niveles de consistencia y habilitar o deshabilitar características como escrituras en múltiples regiones.
Con este permiso, puedes crear o actualizar cuentas de Azure Cosmos DB. Esto incluye modificar configuraciones a nivel de cuenta, habilitar o deshabilitar la conmutación por error automática, gestionar controles de acceso a la red, establecer políticas de respaldo y ajustar niveles de consistencia. Los atacantes con este permiso podrían alterar configuraciones para debilitar los controles de seguridad, interrumpir la disponibilidad o exfiltrar datos modificando las reglas de red.
```bash
az cosmosdb update \
--name <account_name> \
--resource-group <resource_group_name> \
--public-network-access ENABLED
```
```bash
az cosmosdb update \
--account-name <account_name> \
--resource-group <resource_group_name> \
--capabilities EnableMongoRoleBasedAccessControl
```
Además, puedes habilitar identidades administradas en la cuenta:
```bash
az cosmosdb identity assign \
--name <cosmosdb_account_name> \
--resource-group <resource_group_name>
```
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write`
Con este permiso, puedes crear o modificar contenedores (colecciones) dentro de una base de datos SQL de una cuenta de Azure Cosmos DB. Los contenedores se utilizan para almacenar datos, y los cambios en ellos pueden afectar la estructura de la base de datos y los patrones de acceso.
```bash
@@ -119,52 +132,4 @@ az cosmosdb mongodb database create \
--resource-group <resource_group_name> \
--name <database_name>
```
### `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read`
Con este permiso, puedes crear nuevas definiciones de roles de MongoDB dentro de una cuenta de Azure Cosmos DB. Esto permite definir roles personalizados con permisos específicos para los usuarios de MongoDB.
```bash
az cosmosdb mongodb role definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.readWriteRole",
"RoleName": "readWriteRole",
"Type": "CustomRole",
"DatabaseName": "<mydatabase>",
"Privileges": [
{
"Resource": {
"Db": "<mydatabase>",
"Collection": "mycollection"
},
"Actions": [
"insert",
"find",
"update"
]
}
],
"Roles": []
}'
```
### `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read`
Con este permiso, puedes crear nuevas definiciones de usuario de MongoDB dentro de una cuenta de Azure Cosmos DB. Esto permite la provisión de usuarios con roles y niveles de acceso específicos a bases de datos de MongoDB.
```bash
az cosmosdb mongodb user definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.myUser",
"UserName": "myUser",
"Password": "mySecurePassword",
"DatabaseName": "<mydatabase>",
"CustomData": "TestCustomData",
"Mechanisms": "SCRAM-SHA-256",
"Roles": [
{
"Role": "readWriteRole",
"Db": "<mydatabase>"
}
]
}'
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -43,12 +43,63 @@ az cosmosdb sql role assignment create \
--principal-id <principal_id-togive-perms> \
--scope "/"
```
### (`Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read`)&& (`Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write` && `Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read`)
Con este permiso, puedes crear nuevas definiciones de roles de MongoDB dentro de una cuenta de Azure Cosmos DB. Esto permite definir roles personalizados con permisos específicos para los usuarios de MongoDB. Las funcionalidades de RBAC deben estar habilitadas para usar esto.
```bash
az cosmosdb mongodb role definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.readWriteRole",
"RoleName": "readWriteRole",
"Type": "CustomRole",
"DatabaseName": "<mydatabase>",
"Privileges": [
{
"Resource": {
"Db": "<mydatabase>",
"Collection": "mycollection"
},
"Actions": [
"insert",
"find",
"update"
]
}
],
"Roles": []
}'
```
Puedes crear nuevas definiciones de usuario de MongoDB dentro de una cuenta de Azure Cosmos DB. Esto permite la provisión de usuarios con roles específicos y acceso a bases de datos de MongoDB.
```bash
az cosmosdb mongodb user definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.myUser",
"UserName": "<myUser>",
"Password": "<mySecurePassword>",
"DatabaseName": "<mydatabase>",
"CustomData": "TestCustomData",
"Mechanisms": "SCRAM-SHA-256",
"Roles": [
{
"Role": "readWriteRole",
"Db": "<mydatabase>"
}
]
}'
```
Después de que se crea un nuevo usuario dentro de MongoDB, podemos acceder a él:
```bash
mongosh "mongodb://<myUser>:<mySecurePassword>@<account_name>.mongo.cosmos.azure.com:10255/<mymongodatabase>?ssl=true&replicaSet=globaldb&retrywrites=false"
```
### `Microsoft.DocumentDB/databaseAccounts/listKeys/action`
Con este permiso, puedes recuperar las claves primaria y secundaria para una cuenta de Azure Cosmos DB. Estas claves proporcionan acceso completo a la cuenta de la base de datos y sus recursos, lo que permite acciones como lecturas de datos, escrituras y cambios de configuración.
```bash
az cosmosdb keys list \
--name <account_name> \
--resource-group <resource_group_name>
```
{{#include ../../../banners/hacktricks-training.md}}