Az - Table Storage

Reading time: 4 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Basic Information

Azure Table Storage एक NoSQL की-वैल्यू स्टोर है जिसे बड़े पैमाने पर संरचित, गैर-संबंधित डेटा को स्टोर करने के लिए डिज़ाइन किया गया है। यह उच्च उपलब्धता, कम विलंबता, और बड़े डेटा सेट को कुशलतापूर्वक संभालने के लिए स्केलेबिलिटी प्रदान करता है। डेटा को तालिकाओं में व्यवस्थित किया जाता है, प्रत्येक इकाई को एक विभाजन कुंजी और पंक्ति कुंजी द्वारा पहचाना जाता है, जिससे तेज़ लुकअप संभव होता है। यह डेटा को सुरक्षित, प्रबंधित स्टोरेज के लिए एन्क्रिप्शन, भूमिका-आधारित एक्सेस नियंत्रण, और साझा एक्सेस सिग्नेचर जैसी सुविधाओं का समर्थन करता है, जो विभिन्न प्रकार के अनुप्रयोगों के लिए उपयुक्त है।

तालिका स्टोरेज के लिए कोई अंतर्निहित बैकअप तंत्र नहीं है

Keys

PartitionKey

  • PartitionKey इकाइयों को तार्किक विभाजनों में समूहित करता है। समान PartitionKey वाली इकाइयाँ एक साथ स्टोर की जाती हैं, जिससे क्वेरी प्रदर्शन और स्केलेबिलिटी में सुधार होता है।
  • उदाहरण: एक तालिका में कर्मचारी डेटा स्टोर करते समय, PartitionKey एक विभाग का प्रतिनिधित्व कर सकता है, जैसे, "HR" या "IT"

RowKey

  • RowKey एक विभाजन के भीतर एक इकाई के लिए अद्वितीय पहचानकर्ता है। जब इसे PartitionKey के साथ मिलाया जाता है, तो यह सुनिश्चित करता है कि तालिका में प्रत्येक इकाई का एक वैश्विक अद्वितीय पहचानकर्ता हो।
  • उदाहरण: "HR" विभाजन के लिए, RowKey एक कर्मचारी आईडी हो सकता है, जैसे, "12345"

Other Properties (Custom Properties)

  • PartitionKey और RowKey के अलावा, एक इकाई में डेटा स्टोर करने के लिए अतिरिक्त कस्टम प्रॉपर्टीज़ हो सकती हैं। ये उपयोगकर्ता-परिभाषित होती हैं और पारंपरिक डेटाबेस में कॉलम की तरह कार्य करती हैं।
  • प्रॉपर्टीज़ को की-वैल्यू पेयर्स के रूप में स्टोर किया जाता है।
  • उदाहरण: Name, Age, Title एक कर्मचारी के लिए कस्टम प्रॉपर्टीज़ हो सकती हैं।

Enumeration

bash
# 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

डिफ़ॉल्ट रूप से az cli एक खाता कुंजी का उपयोग करके एक कुंजी पर हस्ताक्षर करेगा और क्रिया करेगा। Entra ID प्रमुख विशेषाधिकारों का उपयोग करने के लिए --auth-mode login पैरामीटर का उपयोग करें।

tip

उपयोग करने के लिए खाता कुंजी को इंगित करने के लिए पैरामीटर --account-key का उपयोग करें
SAS टोकन के माध्यम से पहुंचने के लिए SAS टोकन के साथ पैरामीटर --sas-token का उपयोग करें

Privilege Escalation

Same as storage privesc:

Az - Storage Privesc

Post Exploitation

Az - Table Storage Post Exploitation

Persistence

Same as storage persistence:

Az - Storage Persistence

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें