Az - Unauthenticated Enum & Initial Entry
Azureテナント
テナント列挙
テナントのドメインを知っているだけで、攻撃者はより多くの情報を収集するためにクエリできる一部の公開Azure APIがあります。 APIに直接クエリを実行するか、PowerShellライブラリAADInternalsを使用できます:
API | 情報 | AADInternals関数 |
---|---|---|
login.microsoftonline.com/<domain>/.well-known/openid-configuration | テナントIDを含むログイン情報 |
|
autodiscover-s.outlook.com/autodiscover/autodiscover.svc | テナントのすべてのドメイン |
|
login.microsoftonline.com/GetUserRealm.srf?login=<UserName> | テナントのログイン情報、テナント名およびドメインを含む認証タイプ。
|
|
login.microsoftonline.com/common/GetCredentialType | デスクトップSSO情報を含むログイン情報 |
|
AADInternalsライブラリの1つのコマンドでAzureテナントのすべての情報をクエリできます:
Azureテナント情報の出力例:
テナントの名前、ID、および「ブランド」名の詳細を観察することが可能です。さらに、デスクトップシングルサインオン(SSO)の状態、別名Seamless SSOも表示されます。この機能が有効になっている場合、特定のユーザーが対象組織内に存在するかどうかを判別するのを容易にします。
さらに、出力には、対象テナントに関連付けられたすべての検証済みドメインの名前とそれぞれの識別タイプが表示されます。連携ドメインの場合、通常はADFSサーバーである識別プロバイダーの完全修飾ドメイン名(FQDN)も開示されます。"MX"列は、メールがExchange Onlineにルーティングされているかどうかを指定し、"SPF"列はExchange Onlineがメール送信者としてリストされていることを示します。現在の偵察機能は、SPFレコード内の「include」ステートメントを解析しないため、誤検知が発生する可能性があることに注意することが重要です。
ユーザー列挙
テナント内にユーザー名が存在するかどうかをチェックすることが可能です。これには、フォーマットが次のようなゲストユーザーも含まれます:
以下は、ユーザーのメールアドレスで、「@」がアンダースコア「_」に置き換えられています。
AADInternalsを使用すると、ユーザーが存在するかどうかを簡単に確認できます:
認証されていない列挙と初期エントリ
このスキャンは、Azureのアプリケーションに対する認証されていない列挙と初期エントリを行います。これにより、機密情報や脆弱性が漏洩する可能性があります。
手順
列挙: アプリケーションのURL、エンドポイント、ファイル、ディレクトリなどを列挙します。
初期エントリ: 列挙された情報を使用して、アプリケーションに初期エントリを試みます。
ツール
DirBuster: ファイルやディレクトリを列挙するためのツール。
Nmap: ポートスキャンやサービスバージョンの検出に使用されるツール。
注意事項
このスキャンは、許可を得た場合にのみ実行してください。
取得した情報を機密情報として扱い、適切に保護してください。
あなたは1行に1つの電子メールアドレスが記載されたテキストファイルも使用できます:
以下は3つの異なる列挙方法から選択できます:
方法 | 説明 |
---|---|
通常 | これは上記で言及されたGetCredentialType APIを指します。デフォルトの方法です。 |
ログイン | この方法はユーザーとしてログインしようとします。 注意: クエリはサインインログに記録されます。 |
自動ログオン | この方法は自動ログオンエンドポイントを介してユーザーとしてログインしようとします。 クエリはサインインログには記録されません!そのため、パスワードスプレーおよびブルートフォース攻撃にも適しています。 |
有効なユーザー名を発見した後、ユーザーに関する情報を取得できます。
スクリプトo365creeperは、メールが有効かどうかを特定することもできます。
Microsoft Teamsを介したユーザー列挙
もう1つの情報源はMicrosoft Teamsです。
Microsoft TeamsのAPIを使用すると、ユーザーを検索できます。特に、「user search」エンドポイントのexternalsearchv3とsearchUsersを使用して、Teamsに登録されたユーザーアカウントに関する一般情報をリクエストできます。
APIの応答に応じて、存在しないユーザーと有効なTeamsサブスクリプションを持つ既存のユーザーを区別することが可能です。
スクリプトTeamsEnumを使用して、指定されたユーザー名のセットをTeams APIに対して検証できます。
認証されていない列挙と初期エントリ
このスキャンは、Azureのサービスに対して認証されていない列挙を実行し、初期エントリを見つけるための情報を提供します。
ツール
nmap - ポートスキャンとサービスバージョンの検出に使用されます。
enum4linux - SMB共有からの情報収集に使用されます。
ldapsearch - LDAPサーバーからの情報収集に使用されます。
searchsploit - 既知の脆弱性を検索するために使用されます。
ステップ
ポートスキャン -
nmap
を使用して、ターゲットAzureサービスのオープンポートを特定します。SMB共有の列挙 -
enum4linux
を使用して、SMB共有から情報を収集します。LDAPサーバーの列挙 -
ldapsearch
を使用して、LDAPサーバーから情報を収集します。既知の脆弱性の検索 -
searchsploit
を使用して、見つかったサービスやバージョンに対する既知の脆弱性を検索します。
これらのステップに従うことで、Azureサービスに対して認証されていない列挙を実行し、初期エントリを見つけることができます。
さらに、次のような既存ユーザーの利用状況情報を列挙することが可能です:
利用可能
離席中
邪魔しないで
予定あり
オフライン
オフィス外メッセージが設定されている場合、TeamsEnumを使用してメッセージを取得することも可能です。出力ファイルが指定されている場合、オフィス外メッセージは自動的にJSONファイル内に保存されます:
認証されていない列挙と初期エントリ
このスキャンは、Azureのアプリケーションに対する認証されていない列挙と初期エントリを行います。これにより、潜在的な脆弱性や攻撃経路を特定することができます。
使用法
az-cli
を使用してAzureアカウントにログインします。enum.sh
スクリプトを実行して、認証されていない列挙を開始します。スクリプトが見つけた情報を使用して、初期エントリを試みます。
注意事項
このスキャンは、適切な許可を得ずに実行すると法的な問題を引き起こす可能性があります。必ず適切な許可を取得してから実行してください。
スクリプトを実行する前に、Azureアカウントの所有者と相談してください。
Azureサービス
Azureテナントが使用しているドメインを知っているので、公開されているAzureサービスを見つけてみましょう。
この目標を達成するために、MicroBustからのメソッドを使用できます。この機能は、いくつかのAzureサービスドメインでベースドメイン名(およびいくつかの順列)を検索します。
オープンストレージ
InvokeEnumerateAzureBlobs.ps1などのツールを使用してオープンストレージを発見できます。このツールは、**Microburst/Misc/permitations.txt
**というファイルを使用してパーミュテーション(非常に単純なもの)を生成し、オープンストレージアカウントを見つけようとします。
SAS URLs
共有アクセス署名 (SAS) URL は、ストレージアカウントの特定の部分 (フルコンテナ、ファイルなど) に特定の権限 (読み取り、書き込みなど) を提供する URL です。もし漏洩しているものを見つけた場合、機密情報にアクセスできるかもしれません。以下はその例です (これはコンテナにアクセスするためのもので、ファイルにアクセスする場合は URL のパスにそのファイルも含まれます):
https://<storage_account_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 を使用してデータにアクセスします
資格情報の侵害
フィッシング
一般的なフィッシング (資格情報または OAuth アプリ -不正な同意付与攻撃-)
パスワードスプレー / ブルートフォース
pageAz - Password Spraying参考文献
最終更新