Az - Blob Storage
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
From the docs: Azure Blob storageは、Microsoftのクラウド用オブジェクトストレージソリューションです。Blobストレージは、大量の非構造化データを保存するために最適化されています。非構造化データとは、テキストやバイナリデータなど、特定のデータモデルや定義に従わないデータのことです。
Blobストレージは、3種類のリソースを提供します:
ストレージアカウント(ユニークな名前)
ストレージアカウント内のコンテナ(フォルダ)
コンテナ内のBlob
Blobストレージ |
|
Azure Data Lake Storage Gen2 |
|
Azure Files |
|
Queueストレージ |
|
Tableストレージ |
|
RBACロールを介してAzure ADプリンシパルを使用します。
アクセスキー:ストレージアカウントのアクセスキーを使用します。これにより、ストレージアカウントへの完全なアクセスが提供されます。
共有アクセス署名(SAS):時間制限と特定の権限。
アクセスキーを使用してSAS URLを生成できます(検出が難しい)。
SASはアクセスキーから生成されるため、アクセスキーが更新されるとSASは機能しなくなります。
「Blobの公開アクセスを許可する」が有効になっている場合(デフォルトでは無効)、次のことが可能です:
Blobを読むための公開アクセスを提供する(名前を知っている必要があります)。
コンテナのBlobをリストし、それらを読む。
接続できるストレージを見つけた場合は、Microsoft Azure Storage Explorerツールを使用して接続できます。
From the docs: 共有アクセス署名(SAS)は、ストレージアカウント内のリソースへの安全な委任アクセスを提供します。SASを使用すると、クライアントがデータにアクセスする方法を詳細に制御できます。たとえば:
クライアントがアクセスできるリソース。
それらのリソースに対する権限。
SASが有効な期間。
SAS URLは次のようになります: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
Storage Explorerを使用してデータにアクセスするか、Pythonを使用します:
共有アクセス署名(SAS)トークンを使用して、コンテナ、ディレクトリ、またはBlobへのアクセスをAzure Active Directory(Azure AD) 資格情報またはアカウントキーを使用して保護できます。ユーザー委任SASを作成するには、まずユーザー委任キーを要求し、それを使用してSASに署名します。
Azure Blob StorageとAzure Data Lake Storage Gen2の両方で**ユーザー委任共有アクセス署名(SAS)**がサポートされています。ただし、保存されたアクセスポリシーはユーザー委任SASと互換性がないことに注意してください。
ユーザー委任SASはストレージアカウントキーの代わりにAzure AD資格情報で保護されていることに注意してください。これにより、クライアント/アプリケーションがSASを作成するためにストレージキーを保存/取得することが防止されます。
サービスSASはストレージアカウントキーで保護されています。サービスSASは、Azure Storageサービスの1つのリソースへのアクセスを委任します:Blobストレージ、キューストレージ、テーブルストレージ、またはAzure Files。サービスレベルのSASのURIは、SASがアクセスを委任するリソースのURIに続いてSASトークンが続きます。
コンテナまたはBlobのSASを保護するためにAzure Active Directory(Azure AD)資格情報を使用するには、ユーザー委任SASを使用します。
アカウントSASは、ストレージアカウントキーの1つで保護されています(2つあります)。アカウントSASは、1つ以上のストレージサービス内のリソースへのアクセスを委任します。サービスまたはユーザー委任SASを介して利用可能なすべての操作は、アカウントSASを介しても利用可能です。
from the docs: アカウントSASを作成することで、次のことができます:
Get/Set Service Properties
やGet Service Stats
操作など、サービス固有のSASでは現在利用できないサービスレベルの操作へのアクセスを委任します。
ストレージアカウント内の複数のサービスへのアクセスを同時に委任します。たとえば、アカウントSASを使用して、Azure Blob StorageとAzure Filesの両方のリソースへのアクセスを委任できます。
オブジェクト固有のSASでは利用できないコンテナ、キュー、テーブル、およびファイル共有の書き込みおよび削除操作へのアクセスを委任します。
リクエストを受け入れるIPアドレスまたはIPアドレスの範囲を指定します。
リクエストを受け入れるHTTPプロトコルを指定します(HTTPSまたはHTTP/HTTPSのいずれか)。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)