Az - Table Storage

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Temel Bilgiler

Azure Table Storage, büyük hacimli yapılandırılmış, ilişkisel olmayan verileri depolamak için tasarlanmış bir NoSQL anahtar-değer deposudur. Yüksek kullanılabilirlik, düşük gecikme süresi ve büyük veri setlerini verimli bir şekilde işlemek için ölçeklenebilirlik sunar. Veriler, her varlığın bir bölüm anahtarı ve satır anahtarı ile tanımlandığı tablolara organize edilir, bu da hızlı sorgulama sağlar. Verilerin dinlenme sırasında şifrelenmesi, rol tabanlı erişim kontrolü ve güvenli, yönetilen depolama için paylaşılan erişim imzaları gibi özellikleri destekler; bu da geniş bir uygulama yelpazesi için uygundur.

Tablo depolama için yerleşik bir yedekleme mekanizması yoktur.

Anahtarlar

PartitionKey

  • PartitionKey, varlıkları mantıksal bölümlere gruplar. Aynı PartitionKey’e sahip varlıklar bir arada depolanır, bu da sorgu performansını ve ölçeklenebilirliği artırır.
  • Örnek: Bir çalışan verilerini depolayan bir tabloda, PartitionKey bir departmanı temsil edebilir, örneğin, "HR" veya "IT".

RowKey

  • RowKey, bir bölüm içindeki bir varlığın benzersiz tanımlayıcısıdır. PartitionKey ile birleştirildiğinde, tablodaki her varlığın küresel olarak benzersiz bir tanımlayıcıya sahip olmasını sağlar.
  • Örnek: "HR" bölümünde, RowKey bir çalışan kimliği olabilir, örneğin, "12345".

Diğer Özellikler (Özel Özellikler)

  • PartitionKey ve RowKey’in yanı sıra, bir varlık ek özel özelliklere sahip olabilir. Bunlar kullanıcı tanımlıdır ve geleneksel bir veritabanındaki sütunlar gibi işlev görür.
  • Özellikler anahtar-değer çiftleri olarak depolanır.
  • Örnek: Name, Age, Title bir çalışan için özel özellikler olabilir.

Sayım

# 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

Varsayılan olarak az cli, bir hesap anahtarını imzalamak ve işlemi gerçekleştirmek için bir hesap anahtarı kullanacaktır. Entra ID prensip ayrıcalıklarını kullanmak için --auth-mode login parametrelerini kullanın.

Tip

Kullanılacak hesap anahtarını belirtmek için --account-key parametresini kullanın
SAS token ile erişmek için --sas-token parametresini SAS token ile kullanın

Privilege Escalation

Depolama privesc ile aynı:

Az - Storage Privesc

Post Exploitation

Az - Table Storage Post Exploitation

Persistence

Depolama kalıcılığı ile aynı:

Az - Storage Persistence

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin