Az - Storage Accounts & Blobs
Last updated
Last updated
AWS Hacking öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Azure Depolama Hesapları, Microsoft Azure'daki temel hizmetlerdir ve çeşitli veri türleri için ölçeklenebilir, güvenli ve yüksek erişilebilir bulut depolama sağlar, bunlar arasında bloblar (ikili büyük nesneler), dosyalar, kuyruklar ve tablolar bulunur. Bu hizmetler, bu farklı depolama hizmetlerini tek bir ad alanı altında gruplandıran konteynerler olarak hizmet eder.
Ana yapılandırma seçenekleri:
Her depolama hesabının tüm Azure'da benzersiz bir adı olmalıdır.
Her depolama hesabı bir bölgeye veya bir Azure genişletilmiş bölgesine dağıtılır.
Daha iyi performans için depolama hesabının premium versiyonunu seçmek mümkündür.
Rack, sürücü ve veri merkezi arızalarına karşı korumak için 4 tür yedeklilik arasından seçim yapmak mümkündür.
Güvenlik yapılandırma seçenekleri:
REST API işlemleri için güvenli aktarım gerektir: Depolama ile yapılan her iletişimde TLS gerektir.
Bireysel konteynerlerde anonim erişimi etkinleştirmeye izin verir: Aksi takdirde, gelecekte anonim erişimi etkinleştirmek mümkün olmayacaktır.
Depolama hesabı anahtar erişimini etkinleştir: Aksi takdirde, Paylaşılan Anahtarlarla erişim yasaklanacaktır.
Minimum TLS sürümü
Kopyalama işlemleri için izin verilen kapsam: Herhangi bir depolama hesabından, aynı Entra kiracısından herhangi bir depolama hesabından veya aynı sanal ağda özel uç noktaları olan depolama hesabından izin verin.
Blob Depolama seçenekleri:
Çapraz kiracı çoğaltmaya izin ver
Erişim katmanı: Sıcak (sık erişilen veriler), Soğuk ve Soğuk (nadiren erişilen veriler)
Ağ seçenekleri:
Ağ erişimi:
Tüm ağlardan izin ver
Seçilen sanal ağlardan ve IP adreslerinden izin ver
Genel erişimi devre dışı bırak ve özel erişim kullan
Özel uç noktalar: Sanal ağdan depolama hesabına özel bir bağlantı sağlar.
Veri koruma seçenekleri:
Konteynerler için anlık görüntü geri yükleme: Konteynerleri daha önceki bir duruma geri yüklemeye izin verir.
Versiyonlama, değişim akışı ve blob yumuşak silme etkinleştirilmelidir.
Bloblar için yumuşak silmeyi etkinleştir: Silinen bloblar (hatta üzerine yazılanlar) için gün sayısı cinsinden bir saklama süresi sağlar.
Konteynerler için yumuşak silmeyi etkinleştir: Silinen konteynerler için gün sayısı cinsinden bir saklama süresi sağlar.
Dosya paylaşımları için yumuşak silmeyi etkinleştir: Silinen dosya paylaşımları için gün sayısı cinsinden bir saklama süresi sağlar.
Bloblar için versiyonlamayı etkinleştir: Bloblarınızın önceki sürümlerini koruyun.
Blob değişim akışını etkinleştir: Bloblara yapılan oluşturma, değiştirme ve silme değişikliklerinin kayıtlarını tutun.
Versiyon düzeyinde değişmezlik desteğini etkinleştir: Tüm blob sürümlerine uygulanacak zaman tabanlı saklama politikası belirlemenizi sağlar.
Versiyon düzeyinde değişmezlik desteği ve konteynerler için anlık görüntü geri yükleme aynı anda etkinleştirilemez.
Şifreleme yapılandırma seçenekleri:
Şifreleme türü: Microsoft yönetimli anahtarlar (MMK) veya Müşteri yönetimli anahtarlar (CMK) kullanmak mümkündür.
Altyapı şifrelemesini etkinleştir: Verileri "daha fazla güvenlik" için çift şifrelemeye izin verir.
Blob depolama
https://<storage-account>.blob.core.windows.net
https://<stg-acc>.blob.core.windows.net/<container-name>?restype=container&comp=list
Veri Gölü Depolama
https://<storage-account>.dfs.core.windows.net
Azure Dosyaları
https://<storage-account>.file.core.windows.net
Kuyruk depolama
https://<storage-account>.queue.core.windows.net
Tablo depolama
https://<storage-account>.table.core.windows.net
"Blob kamuya açık erişimi izin ver" etkinleştirildiğinde (varsayılan olarak devre dışı), bir konteyner oluştururken:
Blobları okumak için kamuya açık erişim verilebilir (adını bilmeniz gerekir).
Konteyner bloblarını listeleyin ve okuyun.
Tamamen özel hale getirin.
Herhangi bir depolama bulursanız, bunu yapmak için Microsoft Azure Storage Explorer aracını kullanabilirsiniz.
Depolama hesaplarına erişmek için RBAC rolleri ile Entra ID ilkelerini kullanmak mümkündür ve bu önerilen yoldur.
Depolama hesaplarının erişim anahtarları vardır ve bunlar kullanılarak erişim sağlanabilir. Bu, depolama hesabına tam erişim sağlar.
Belirli kaynaklara erişimi yetkilendirmek için erişim anahtarları ile imzalanmış Paylaşılan Anahtarlar oluşturmak mümkündür.
CanonicalizedResource
kısmının depolama hizmetleri kaynağını (URI) temsil ettiğini unutmayın. Ve URL'deki herhangi bir kısım kodlanmışsa, CanonicalizedResource
içinde de kodlanmış olmalıdır.
Bu, istekleri kimlik doğrulamak için varsayılan olarak az
cli tarafından kullanılır. Entra ID ilkesi kimlik bilgilerini kullanmasını sağlamak için --auth-mode login
parametresini belirtin.
Aşağıdaki bilgileri imzalayarak blob, kuyruk ve dosya hizmetleri için paylaşılan bir anahtar oluşturmak mümkündür:
Aşağıdaki bilgileri imzalayarak tablo hizmetleri için paylaşılan bir anahtar oluşturmak mümkündür:
Aşağıdaki bilgileri imzalayarak blob, kuyruk ve dosya hizmetleri için hafif paylaşılan anahtar oluşturmak mümkündür:
Aşağıdaki bilgileri imzalayarak tablo hizmetleri için hafif paylaşımlı anahtar oluşturmak mümkündür:
O zaman, anahtarı kullanmak için, aşağıdaki sözdizimini takip eden Authorization başlığında yapılabilir:
Paylaşılan Erişim İmzaları (SAS), bir Azure Depolama hesabındaki kaynaklara erişim için belirli izinler veren güvenli, zaman sınırlı URL'lerdir. Erişim anahtarları tüm kaynaklara tam yönetim erişimi sağlarken, SAS izinleri (okuma veya yazma gibi) belirleyerek ve bir sona erme süresi tanımlayarak daha ayrıntılı kontrol sağlar.
Kullanıcı delegasyonu SAS: Bu, SAS'ı imzalayacak ve izinleri kullanıcıdan SAS'a devredecek bir Entra ID ilkesi üzerinden oluşturulur. Sadece blob ve veri gölü depolama ile kullanılabilir (docs). Tüm oluşturulan kullanıcı delegeli SAS'ları iptal etmek mümkündür.
Kullanıcının sahip olduğu izinlerden "daha fazla" izinle bir delegasyon SAS oluşturmak mümkündür. Ancak, ilke bu izinlere sahip değilse, çalışmaz (privesc yok).
Hizmet SAS: Bu, depolama hesabının erişim anahtarlarından biri kullanılarak imzalanır. Tek bir depolama hizmetindeki belirli kaynaklara erişim sağlamak için kullanılabilir. Anahtar yenilendiğinde, SAS çalışmayı durdurur.
Hesap SAS: Bu da depolama hesabının erişim anahtarlarından biri ile imzalanır. Depolama hesabı hizmetleri (Blob, Kuyruk, Tablo, Dosya) genelinde kaynaklara erişim sağlar ve hizmet düzeyindeki işlemleri içerebilir.
Bir erişim anahtarı ile imzalanmış bir SAS URL'si şöyle görünür:
https://<container_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D
Bir kullanıcı delegasyonu olarak imzalanmış bir SAS URL'si şöyle görünür:
https://<container_name>.blob.core.windows.net/testing-container?sp=r&st=2024-11-22T15:07:40Z&se=2024-11-22T23:07:40Z&skoid=d77c71a1-96e7-483d-bd51-bd753aa66e62&sktid=fdd066e1-ee37-49bc-b08f-d0e152119b04&skt=2024-11-22T15:07:40Z&ske=2024-11-22T23:07:40Z&sks=b&skv=2022-11-02&spr=https&sv=2022-11-02&sr=c&sig=7s5dJyeE6klUNRulUj9TNL0tMj2K7mtxyRc97xbYDqs%3D
Bazı http parametreleri:
se
parametresi SAS'ın sona erme tarihini belirtir
sp
parametresi SAS'ın izinlerini belirtir
sig
SAS'ı doğrulayan imzadır
Bir SAS oluştururken, vermesi gereken izinleri belirtmek gerekir. SAS'ın oluşturulduğu nesneye bağlı olarak farklı izinler dahil edilebilir. Örneğin:
(a)dd, (c)reate, (d)elete, (e)xecute, (f)ilter_by_tags, (i)set_immutability_policy, (l)ist, (m)ove, (r)ead, (t)ag, (w)rite, (x)delete_previous_version, (y)permanent_delete
Azure Blob Depolama artık SSH Dosya Transfer Protokolü (SFTP) desteği sunuyor, bu da özel çözümler veya üçüncü taraf ürünler gerektirmeden doğrudan Blob Depolama'ya güvenli dosya transferi ve yönetimi sağlar.
Protokol Desteği: SFTP, hiyerarşik ad alanı (HNS) ile yapılandırılmış Blob Depolama hesaplarıyla çalışır. Bu, blob'ları daha kolay gezinme için dizinler ve alt dizinler halinde düzenler.
Güvenlik: SFTP, kimlik doğrulama için yerel kullanıcı kimliklerini kullanır ve RBAC veya ABAC ile entegre olmaz. Her yerel kullanıcı aşağıdaki yöntemlerle kimlik doğrulaması yapabilir:
Azure tarafından oluşturulan şifreler
Genel-özel SSH anahtar çiftleri
Ayrıntılı İzinler: Okuma, Yazma, Silme ve Listeleme gibi izinler, yerel kullanıcılara 100'e kadar konteyner için atanabilir.
Ağ Dikkate Alınması: SFTP bağlantıları 22 numaralı port üzerinden yapılır. Azure, SFTP trafiğini güvence altına almak için güvenlik duvarları, özel uç noktalar veya sanal ağlar gibi ağ yapılandırmalarını destekler.
Hiyerarşik Ad Alanı: Depolama hesabı oluşturulurken HNS etkinleştirilmelidir.
Desteklenen Şifreleme: Microsoft Güvenlik Geliştirme Yaşam Döngüsü (SDL) onaylı kriptografik algoritmalar gereklidir (örn., rsa-sha2-256, ecdsa-sha2-nistp256).
SFTP Yapılandırması:
Depolama hesabında SFTP'yi etkinleştir.
Uygun izinlere sahip yerel kullanıcı kimlikleri oluştur.
Kullanıcıların konteyner içindeki başlangıç konumlarını tanımlamak için ana dizinleri yapılandır.
Okuma
r
Dosya içeriğini oku.
Yazma
w
Dosyaları yükle ve dizinler oluştur.
Listele
l
Dizinlerin içeriğini listele.
Sil
d
Dosyaları veya dizinleri sil.
Oluştur
c
Dosyaları veya dizinleri oluştur.
Sahipliği Değiştir
o
Sahip kullanıcıyı veya grubu değiştir.
İzinleri Değiştir
p
Dosyalar veya dizinler üzerindeki ACL'leri değiştir.
AWS Hacking öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)