Skip to content
KitploitKITPLOIT
ツールブログ
Log in
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/bloodhoundad/bark
特権昇格偵察エクスプロイト情報収集ペネトレーションテストクラウドセキュリティアイデンティティ&アクセス管理 (IAM)認証レッドチーミング
GitHubbloodhoundad/bark

BARK

BloodHound 攻撃調査キット

60471191年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

BARK

BARK Logo

BARK は BloodHound Attack Research Kit の略です。これは、BloodHound Enterprise チームが攻撃プリミティブの調査と継続的な検証を支援するために構築された PowerShell スクリプトです。BARK は現在、Microsoft の Azure 製品群とサービスに焦点を当てています。

BARK はサードパーティの依存関係を必要としません。BARK の関数は可能な限りシンプルで保守しやすいように設計されています。ほとんどの関数は、さまざまな REST API エンドポイントへのリクエストを行うための非常にシンプルなラッパーです。BARK の基本関数は互いに依存さえしません。ほとんどすべての BARK 関数を BARK から取り出しても、独自のスクリプト内でスタンドアロン関数として完全に動作します。

著者と貢献者

主著者: Andy Robbins @_wald0

貢献者:

  • Jonas Bülow Knudsen @Jonas_B_K
  • Fabian Bader @fabian_bader
  • CravateRouge @CravateRouge
  • g60ocR @g60ocR

はじめに

PowerShell スクリプトをインポートするには 多くの方法 があります。以下にその一例を示します。

まず、このリポジトリをクローンするか、GitHub から生の内容をコピー&ペーストして BARK.ps1 をダウンロードします。

git clone https://github.com/BloodHoundAD/BARK

次に、PS1 があるディレクトリに cd します。

cd BARK

最後に、次のようにドットインポートできます。

. .\BARK.ps1

Enter キーを押すと、PowerShell インスタンスが BARK のすべての関数にアクセスできるようになります。

最初の BARK コマンドを実行する

ごく一部の例外を除き、Azure API エンドポイントと対話するには認証が必要です。BARK には、MS Graph および Azure REST API と対話するために必要なトークンを取得するための関数がいくつか用意されています。認証が必要な Azure API と対話する BARK 関数は、トークンを指定する必要があります。

たとえば、Entra ID テナント内のすべてのユーザーを一覧表示したいとします。まず、MS Graph を対象としたトークンを取得する必要があります。このトークンを取得する方法はいくつかあります。

そのテナントの Entra ユーザーのユーザー名とパスワードの組み合わせがある場合は、BARK の Get-EntraRefreshTokenWithUsernamePassword 関数を使用して、そのユーザーの更新トークンを最初に取得できます。

$MyRefreshTokenRequest = Get-EntraRefreshTokenWithUsernamePassword -username "[email protected]" -password "MyVeryCoolPassword" -TenantID "contoso.onmicrosoft.com"

作成した結果のオブジェクト $MyRefreshTokenRequest には、ユーザーの更新トークンの一部が含まれます。この更新トークンを使用して、MS Graph を対象としたトークンを要求できます。

$MyMSGraphToken = Get-MSGraphTokenWithRefreshToken -RefreshToken $MyRefreshTokenRequest.refresh_token -TenantID "contoso.onmicrosoft.com"

この新しいオブジェクト $MyMSGraphToken のプロパティ値の 1 つとして、ユーザー向けの MS Graph を対象とした JWT が含まれます。これで、このトークンを使用して Entra テナント内のすべてのユーザーを一覧表示する準備が整いました。

$MyUsers = Get-AllEntraUsers -Token $MyMSGraphToken.access_token -ShowProgress

完了すると、$MyEntraUsers 変数に Entra テナント内のすべてのユーザーを表すオブジェクトが格納されます。

トークン管理および操作関数

  • Get-AzureKeyVaultTokenWithClientCredentials は、クライアント ID とシークレットを使用して、Azure Vault をリソース/対象ユーザーとして指定して STS からトークンを要求します。
  • Get-AzureKeyVaultTokenWithUsernamePassword は、ユーザー指定のユーザー名とパスワードを使用して、Azure Vault をリソース/対象ユーザーとして指定して STS からトークンを要求します。
  • Get-AzurePortalTokenWithRefreshToken は、ユーザー指定の更新トークンを使用して Azure Portal Auth 更新トークンを要求します。
  • Get-AzureRMTokenWithClientCredentials は、クライアント ID とシークレットを使用して AzureRM を対象とした JWT を要求します。Entra サービスプリンシパルとして認証する場合に便利です。
  • Get-AzureRMTokenWithPortalAuthRefreshToken は、ユーザー指定の Azure Portal Auth 更新トークンを使用して AzureRM を対象とした JWT を要求します。
  • Get-AzureRMTokenWithRefreshToken は、ユーザー指定の更新トークンを使用して AzureRM を対象とした JWT を要求します。
  • Get-AzureRMTokenWithUsernamePassword は、ユーザー指定のユーザー名とパスワードを使用して AzureRM を対象とした JWT を要求します。
  • Get-EntraRefreshTokenWithUsernamePassword は、ユーザー指定のユーザー名とパスワードを使用して login.microsoftonline.com から更新トークンを含むトークンコレクションを要求します。ユーザーに多要素認証が必要な場合や条件付きアクセスポリシーの影響を受ける場合は失敗します。
  • Get-MSGraphTokenWithClientCredentials は、クライアント ID とシークレットを使用して MS Graph を対象とした JWT を要求します。Entra サービスプリンシパルとして認証する場合に便利です。
  • Get-MSGraphTokenWithPortalAuthRefreshToken は、ユーザー指定の Azure Portal Auth 更新トークンを使用して MS Graph を対象とした JWT を要求します。
  • Get-MSGraphTokenWithRefreshToken は、ユーザー指定の更新トークンを使用して MS Graph を対象とした JWT を要求します。
  • Get-MSGraphTokenWithUsernamePassword は、ユーザー指定のユーザー名とパスワードを使用して MS Graph を対象とした JWT を要求します。
  • Parse-JWTToken は、Base64 エンコードされた JWT を入力として受け取り、解析します。正しいトークンの対象ユーザーとクレームを確認する場合に便利です。

BARK の更新トークンベースの関数は、Steve Borosh による TokenTactics の関数に基づいています。

Entra 列挙関数

  • Get-AllEntraApps は、すべての Entra アプリケーション登録オブジェクトを収集します。
  • Get-AllEntraGroups は、すべての Entra グループを収集します。
  • Get-AllEntraRoles は、すべての Entra 管理者ロールを収集します。
  • Get-AllEntraServicePrincipals は、すべての Entra サービスプリンシパルオブジェクトを収集します。
  • Get-AllEntraUsers は、すべての Entra ユーザーを収集します。
  • Get-EntraAppOwner は、Entra アプリケーション登録の所有者を収集します。
  • Get-EntraDeviceRegisteredUsers は、Entra デバイスのユーザーを収集します。
  • Get-EntraGroupMembers は、Entra グループのメンバーを収集します。
  • Get-EntraGroupOwner は、Entra グループの所有者を収集します。
  • Get-EntraRoleTemplates は、Entra 管理者ロールテンプレートを収集します。
  • Get-EntraServicePrincipal は、Entra サービスプリンシパルを収集します。
  • Get-EntraServicePrincipalOwner は、Entra サービスプリンシパルの所有者を収集します。
  • Get-EntraTierZeroServicePrincipals は、Tier Zero Entra 管理者ロールまたは Tier Zero MS Graph アプリロールの割り当てを持つ Entra サービスプリンシパルを収集します。
  • Get-MGAppRoles は、MS Graph サービスプリンシパルによって利用可能にされたアプリロールを収集します。

Azure Resource Manager 列挙関数

  • Get-AllAzureManagedIdentityAssignments は、すべてのマネージド ID 割り当てを収集します。
  • Get-AllAzureRMAKSClusters は、サブスクリプション配下のすべての Kubernetes サービス クラスターを収集します。
  • Get-AllAzureRMAutomationAccounts は、サブスクリプション配下のすべての Automation アカウントを収集します。
  • Get-AllAzureRMAzureContainerRegistries は、サブスクリプション配下のすべてのコンテナーレジストリを収集します。
  • Get-AllAzureRMFunctionApps は、サブスクリプション配下のすべての関数アプリを収集します。
  • Get-AllAzureRMKeyVaults は、サブスクリプション配下のすべてのキー コンテナーを収集します。
  • Get-AllAzureRMLogicApps は、サブスクリプション配下のすべてのロジック アプリを収集します。
  • Get-AllAzureRMResourceGroups は、サブスクリプション配下のすべてのリソース グループを収集します。
  • Get-AllAzureRMSubscriptions は、すべての AzureRM サブスクリプションを収集します。
  • Get-AllAzureRMVMScaleSetsVMs は、VM スケール セット配下のすべての仮想マシンを収集します。
  • Get-AllAzureRMVMScaleSets は、サブスクリプション配下のすべての仮想マシン スケール セットを収集します。
  • Get-AllAzureRMVirtualMachines は、サブスクリプション配下のすべての仮想マシンを収集します。
  • Get-AllAzureRMWebApps は、サブスクリプション配下のすべての Web アプリを収集します。
  • Get-AzureAutomationAccountRunBookOutput は、Automation アカウントの Runbook を実行し、その出力を取得します。
  • Get-AzureFunctionAppFunctionFile は、関数アプリ関数の生ファイル(通常はソースコード)を収集します。
  • Get-AzureFunctionAppFunctions は、関数アプリ配下のすべての関数を収集します。
  • Get-AzureFunctionAppMasterKeys は、関数アプリ配下のすべてのマスターキーを収集します。
  • Get-AzureFunctionOutput は、関数アプリ関数を実行し、その出力を取得します。
  • Get-AzureRMKeyVaultSecretValue は、キー コンテナーのシークレット値を収集します。
  • Get-AzureRMKeyVaultSecretVersions は、キー コンテナー シークレットのすべてのバージョンを収集します。
  • Get-AzureRMKeyVaultSecrets は、キー コンテナー配下のすべてのシークレットを収集します。
  • Get-AzureRMRoleAssignments は、オブジェクトに対するすべてのロール割り当てを収集します。
  • Get-AzureRMRoleDefinitions は、カスタムロールを含むサブスクリプションスコープで記述されたすべてのロール定義を収集します。
  • Get-AzureRMWebApp は、Web アプリを収集します。

Intune 列挙関数

  • Get-IntuneManagedDevices は、Intune で管理されているデバイスを収集します。
  • Get-IntuneRoleDefinitions は、利用可能な Intune ロール定義を収集します。

Entra 悪用関数

  • Add-MemberToEntraGroup は、プリンシパルを Entra グループに追加しようと試みます。
  • Enable-EntraRole は、Entra ロールを有効化(または「アクティブ化」)しようと試みます。
  • New-EntraAppOwner は、Entra アプリに新しい所有者を追加しようと試みます。
  • New-EntraAppRoleAssignment は、サービスプリンシパルにアプリロールを付与しようと試みます。たとえば、これを使用してサービスプリンシパルに RoleManagement.ReadWrite.Directory アプリロールを付与できます。
  • New-EntraAppSecret は、既存の Entra アプリケーション登録に対して新しいシークレットを作成しようと試みます。
  • New-EntraGroupOwner は、Entra グループに新しい所有者を追加しようと試みます。
  • New-EntraRoleAssignment は、指定されたプリンシパルに Entra 管理者ロールを割り当てようと試みます。
  • New-EntraServicePrincipalOwner は、Entra サービスプリンシパルに新しい所有者を追加しようと試みます。
  • New-EntraServicePrincipalSecret は、既存の Entra サービスプリンシパルに対して新しいシークレットを作成しようと試みます。
  • Reset-EntraUserPassword は、別のユーザーのパスワードをリセットしようと試みます。成功すると、出力にはユーザーの新しい Azure 生成パスワードが含まれます。
  • Set-EntraUserPassword は、別のユーザーのパスワードをユーザー指定の新しい値に設定しようと試みます。
ツールをダウンロード