Az - Table Storage
Reading time: 4 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Informazioni di Base
Azure Table Storage è un archivio NoSQL a chiave-valore progettato per memorizzare grandi volumi di dati strutturati e non relazionali. Offre alta disponibilità, bassa latenza e scalabilità per gestire grandi set di dati in modo efficiente. I dati sono organizzati in tabelle, con ogni entità identificata da una chiave di partizione e una chiave di riga, consentendo ricerche rapide. Supporta funzionalità come la crittografia a riposo, il controllo degli accessi basato sui ruoli e le firme di accesso condiviso per uno storage sicuro e gestito adatto a una vasta gamma di applicazioni.
Non c'è un meccanismo di backup integrato per l'archiviazione delle tabelle.
Chiavi
PartitionKey
- Il PartitionKey raggruppa le entità in partizioni logiche. Le entità con lo stesso PartitionKey sono memorizzate insieme, il che migliora le prestazioni delle query e la scalabilità.
- Esempio: In una tabella che memorizza i dati dei dipendenti,
PartitionKey
potrebbe rappresentare un dipartimento, ad esempio,"HR"
o"IT"
.
RowKey
- Il RowKey è l'identificatore unico per un'entità all'interno di una partizione. Quando combinato con il PartitionKey, garantisce che ogni entità nella tabella abbia un identificatore globalmente unico.
- Esempio: Per la partizione
"HR"
,RowKey
potrebbe essere un ID dipendente, ad esempio,"12345"
.
Altre Proprietà (Proprietà Personalizzate)
- Oltre al PartitionKey e al RowKey, un'entità può avere ulteriori proprietà personalizzate per memorizzare dati. Queste sono definite dall'utente e funzionano come colonne in un database tradizionale.
- Le proprietà sono memorizzate come coppie chiave-valore.
- Esempio:
Name
,Age
,Title
potrebbero essere proprietà personalizzate per un dipendente.
Enumerazione
# 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
Per impostazione predefinita, az
cli utilizzerà una chiave dell'account per firmare una chiave e eseguire l'azione. Per utilizzare i privilegi del principale Entra ID, utilizzare i parametri --auth-mode login
.
tip
Utilizzare il parametro --account-key
per indicare la chiave dell'account da utilizzare
Utilizzare il parametro --sas-token
con il token SAS per accedere tramite un token SAS
Privilege Escalation
Stesso di storage privesc:
Post Exploitation
Az - Table Storage Post Exploitation
Persistence
Stesso di storage persistence:
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.