Az - Table Storage

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Informaci贸n B谩sica

Azure Table Storage es un almac茅n de clave-valor NoSQL dise帽ado para almacenar grandes vol煤menes de datos estructurados y no relacionales. Ofrece alta disponibilidad, baja latencia y escalabilidad para manejar grandes conjuntos de datos de manera eficiente. Los datos se organizan en tablas, con cada entidad identificada por una clave de partici贸n y una clave de fila, lo que permite b煤squedas r谩pidas. Soporta caracter铆sticas como cifrado en reposo, control de acceso basado en roles y firmas de acceso compartido para un almacenamiento seguro y gestionado adecuado para una amplia gama de aplicaciones.

No hay un mecanismo de respaldo incorporado para el almacenamiento de tablas.

Claves

PartitionKey

  • El PartitionKey agrupa entidades en particiones l贸gicas. Las entidades con el mismo PartitionKey se almacenan juntas, lo que mejora el rendimiento de las consultas y la escalabilidad.
  • Ejemplo: En una tabla que almacena datos de empleados, PartitionKey podr铆a representar un departamento, por ejemplo, "HR" o "IT".

RowKey

  • El RowKey es el identificador 煤nico para una entidad dentro de una partici贸n. Cuando se combina con el PartitionKey, asegura que cada entidad en la tabla tenga un identificador 煤nico a nivel global.
  • Ejemplo: Para la partici贸n "HR", RowKey podr铆a ser un ID de empleado, por ejemplo, "12345".

Otras Propiedades (Propiedades Personalizadas)

  • Adem谩s del PartitionKey y RowKey, una entidad puede tener propiedades personalizadas adicionales para almacenar datos. Estas son definidas por el usuario y act煤an como columnas en una base de datos tradicional.
  • Las propiedades se almacenan como pares clave-valor.
  • Ejemplo: Name, Age, Title podr铆an ser propiedades personalizadas para un empleado.

Enumeraci贸n

# Get storage accounts
az storage account list

# List tables
az storage table list --account-name <name>

# Read table
az storage entity query \
--account-name <name> \
--table-name <t-name> \
--top 10

# Write table
az storage entity insert \
--account-name <STORAGE_ACCOUNT_NAME> \
--table-name <TABLE_NAME> \
--entity PartitionKey=<PARTITION_KEY> RowKey=<ROW_KEY> <PROPERTY_KEY>=<PROPERTY_VALUE>

# Write example
az storage entity insert \
--account-name mystorageaccount \
--table-name mytable \
--entity PartitionKey=HR RowKey=12345 Name="John Doe" Age=30 Title="Manager"

# Update row
az storage entity merge \
--account-name mystorageaccount \
--table-name mytable \
--entity PartitionKey=pk1 RowKey=rk1 Age=31

Note

Por defecto, az cli utilizar谩 una clave de cuenta para firmar una clave y realizar la acci贸n. Para usar los privilegios del principal de Entra ID, utiliza los par谩metros --auth-mode login.

Tip

Usa el par谩metro --account-key para indicar la clave de cuenta a utilizar
Usa el par谩metro --sas-token con el token SAS para acceder a trav茅s de un token SAS

Escalaci贸n de Privilegios

Igual que la escalaci贸n de privilegios de almacenamiento:

Az - Storage Privesc

Post Explotaci贸n

Az - Table Storage Post Exploitation

Persistencia

Igual que la persistencia de almacenamiento:

Az - Storage Persistence

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks