Files
hacktricks-cloud/src/pentesting-cloud/azure-security/az-services/az-table-storage.md

3.6 KiB

Az - Table Storage

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

Basiese Inligting

Azure Table Storage is 'n NoSQL sleutel-waarde stoor wat ontwerp is om groot volumes van gestruktureerde, nie-relationele data te stoor. Dit bied hoë beskikbaarheid, lae latensie, en skaalbaarheid om groot datastelle doeltreffend te hanteer. Data is georganiseer in tabelle, met elke entiteit geïdentifiseer deur 'n partisie sleutel en ry sleutel, wat vinnige soektogte moontlik maak. Dit ondersteun funksies soos versleuteling in rus, rol-gebaseerde toegangbeheer, en gedeelde toegang handtekeninge vir veilige, bestuurde stoor wat geskik is vir 'n wye reeks toepassings.

Daar is nie 'n ingeboude rugsteunmeganisme vir tabel stoor nie.

Sleutels

PartitionKey

  • Die PartitionKey groepeer entiteite in logiese partisie. Entiteite met dieselfde PartitionKey word saam gestoor, wat die navraagprestasie en skaalbaarheid verbeter.
  • Voorbeeld: In 'n tabel wat werknemerdata stoor, kan PartitionKey 'n departement verteenwoordig, bv. "HR" of "IT".

RowKey

  • Die RowKey is die unieke identifiseerder vir 'n entiteit binne 'n partisie. Wanneer dit saam met die PartitionKey gekombineer word, verseker dit dat elke entiteit in die tabel 'n wêreldwyd unieke identifiseerder het.
  • Voorbeeld: Vir die "HR" partisie, kan RowKey 'n werknemer ID wees, bv. "12345".

Ander Eienskappe (Pasgemaakte Eienskappe)

  • Benewens die PartitionKey en RowKey, kan 'n entiteit addisionele pasgemaakte eienskappe hê om data te stoor. Hierdie is gebruikersgedefinieerde en funksioneer soos kolomme in 'n tradisionele databasis.
  • Eienskappe word gestoor as sleutel-waarde pare.
  • Voorbeeld: Name, Age, Title kan pasgemaakte eienskappe vir 'n werknemer wees.

Enumerasie

{{#tabs}} {{#tab name="az cli"}}

# 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

{{#endtab}} {{#tab name="PowerShell"}}

# Get storage accounts
Get-AzStorageAccount

# List tables
Get-AzStorageTable -Context (Get-AzStorageAccount -Name <mystorageaccount> -ResourceGroupName <ResourceGroupName>).Context

{{#endtab}} {{#endtabs}}

Note

Standaard sal die az cli 'n rekening sleutel gebruik om 'n sleutel te teken en die aksie uit te voer. Om die Entra ID hoofde se voorregte te gebruik, gebruik die parameters --auth-mode login.

Tip

Gebruik die parameter --account-key om die rekening sleutel aan te dui wat gebruik moet word
Gebruik die parameter --sas-token met die SAS-token om toegang te verkry via 'n SAS-token

Privilege Escalation

Selfde as stoor privesc:

{{#ref}} ../az-privilege-escalation/az-storage-privesc.md {{#endref}}

Post Exploitation

{{#ref}} ../az-post-exploitation/az-table-storage-post-exploitation.md {{#endref}}

Persistence

Selfde as stoor volharding:

{{#ref}} ../az-persistence/az-storage-persistence.md {{#endref}}

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