Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
BARK — BloodHound Attack Research Kit | Kitploit
Инструменты/GitHubGitHub/bloodhoundad/bark
Повышение привилегийРазведкаЭксплуатацияСбор информацииТестирование на ПроникновениеБезопасность облачных средУправление идентификацией и доступом (IAM)АутентификацияRed Teaming
GitHubbloodhoundad/bark

BARK

BloodHound Attack Research Kit

6047171 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

BARK

BARK Logo

BARK расшифровывается как BloodHound Attack Research Kit. Это скрипт PowerShell, созданный для помощи команде BloodHound Enterprise в исследовании и непрерывной валидации примитивов атак. В настоящее время BARK ориентирован на пакет продуктов и услуг Microsoft Azure.

BARK не требует сторонних зависимостей. Функции BARK спроектированы максимально простыми и поддерживаемыми. Большинство функций — это очень простые обёртки для запросов к различным конечным точкам REST API. Базовые функции BARK даже не зависят друг от друга — вы можете извлечь почти любую функцию BARK, и она будет отлично работать как самостоятельная функция в ваших собственных скриптах.

Автор и соавторы

Основной автор: Энди Роббинс @_wald0

Соавторы:

  • Йонас Бюлов Кнудсен @Jonas_B_K
  • Фабиан Бадер @fabian_bader
  • CravateRouge @CravateRouge
  • g60ocR @g60ocR

Начало работы

Существует множество способов импорта скрипта PowerShell. Вот один из них:

Сначала загрузите BARK.ps1, клонировав этот репозиторий или просто скопировав его содержимое с GitHub.

root@kitploit:~
git clone https://github.com/BloodHoundAD/BARK

Теперь перейдите в каталог, где находится PS1:

root@kitploit:~
cd BARK

Наконец, вы можете импортировать PS1 точечным методом:

root@kitploit:~
. .\BARK.ps1

Нажмите Enter, и ваш экземпляр PowerShell получит доступ ко всем функциям BARK.

Выполнение первых команд BARK

За очень редкими исключениями, конечные точки Azure API требуют аутентификации для взаимодействия. BARK включает несколько функций, которые помогут вам получить необходимые токены для работы с MS Graph и Azure REST API. Любая функция BARK, взаимодействующая с Azure API, требующим аутентификации, потребует от вас предоставить токен.

Предположим, вы хотите вывести список всех пользователей в арендаторе Entra ID. Сначала необходимо получить токен, предназначенный для MS Graph. Есть много способов сделать это:

Если у вас есть комбинация имени пользователя и пароля для пользователя Entra в этом арендаторе, вы можете сначала получить токен обновления для пользователя с помощью функции BARK Get-EntraRefreshTokenWithUsernamePassword:

root@kitploit:~
$MyRefreshTokenRequest = Get-EntraRefreshTokenWithUsernamePassword -username "[email protected]" -password "MyVeryCoolPassword" -TenantID "contoso.onmicrosoft.com"

В созданном объекте $MyRefreshTokenRequest будет содержаться токен обновления для вашего пользователя. Теперь вы можете запросить токен для MS Graph, используя этот токен обновления:

root@kitploit:~
$MyMSGraphToken = Get-MSGraphTokenWithRefreshToken -RefreshToken $MyRefreshTokenRequest.refresh_token -TenantID "contoso.onmicrosoft.com"

Теперь новый объект $MyMSGraphToken будет содержать в одном из своих свойств JWT-токен для MS Graph для вашего пользователя. Теперь вы готовы использовать этот токен для вывода списка всех пользователей в арендаторе Entra:

root@kitploit:~
$MyUsers = Get-AllEntraUsers -Token $MyMSGraphToken.access_token -ShowProgress

После завершения переменная $MyEntraUsers будет заполнена объектами, представляющими всех пользователей вашего арендатора Entra.

Функции управления токенами и манипуляции с ними

  • Get-AzureKeyVaultTokenWithClientCredentials запрашивает токен у STS с указанием Azure Vault в качестве ресурса/целевой аудитории, используя идентификатор клиента и секрет.
  • Get-AzureKeyVaultTokenWithUsernamePassword запрашивает токен у STS с указанием Azure Vault в качестве ресурса/целевой аудитории, используя имя пользователя и пароль.
  • Get-AzurePortalTokenWithRefreshToken запрашивает токен обновления портала Azure с использованием предоставленного пользователем токена обновления.
  • Get-AzureRMTokenWithClientCredentials запрашивает JWT-токен AzureRM с идентификатором клиента и секретом. Полезно для аутентификации в качестве субъекта-службы Entra.
  • Get-AzureRMTokenWithPortalAuthRefreshToken запрашивает JWT-токен AzureRM с использованием предоставленного пользователем токена обновления аутентификации портала Azure.
  • Get-AzureRMTokenWithRefreshToken запрашивает JWT-токен AzureRM с предоставленным пользователем токеном обновления.
  • Get-AzureRMTokenWithUsernamePassword запрашивает JWT-токен AzureRM с именем пользователя и паролем.
  • Get-EntraRefreshTokenWithUsernamePassword запрашивает набор токенов, включая токен обновления, с login.microsoftonline.com, используя имя пользователя и пароль. Эта операция завершится ошибкой, если у пользователя включена многофакторная аутентификация или действует политика условного доступа.

Функции на основе токенов обновления в BARK основаны на функциях из 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.

Функции перечисления Azure Resource Manager

  • Get-AllAzureManagedIdentityAssignments собирает все назначения управляемых удостоверений.
  • Get-AllAzureRMAKSClusters собирает все кластеры Kubernetes Service в рамках подписки.
  • Get-AllAzureRMAutomationAccounts собирает все учетные записи автоматизации в рамках подписки.
  • Get-AllAzureRMAzureContainerRegistries собирает все реестры контейнеров в рамках подписки.
  • Get-AllAzureRMFunctionApps собирает все приложения-функции в рамках подписки.
  • Get-AllAzureRMKeyVaults собирает все хранилища ключей в рамках подписки.
  • Get-AllAzureRMLogicApps собирает все приложения логики в рамках подписки.
  • Get-AllAzureRMResourceGroups собирает все группы ресурсов в рамках подписки.
  • Get-AllAzureRMSubscriptions собирает все подписки AzureRM.
  • Get-AllAzureRMVMScaleSetsVMs собирает все виртуальные машины в наборе масштабирования виртуальных машин.

Функции перечисления 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.

Функции атак на Azure Resource Manager

  • Invoke-AzureRMAKSRunCommand даёт команду кластеру AKS на выполнение команды.
  • Invoke-AzureRMVMRunCommand пытается выполнить команду на виртуальной машине.
  • Invoke-AzureRMWebAppShellCommand пытается выполнить команду в контейнере веб-приложения.
  • Invoke-AzureVMScaleSetVMRunCommand пытается выполнить команду на виртуальной машине набора масштабирования виртуальных машин.
  • New-AzureAutomationAccountRunBook пытается добавить runbook в учетную запись автоматизации.
  • New-AzureKeyVaultAccessPolicy пытается предоставить участнику разрешения «Get» и «List» на секреты, ключи и сертификаты хранилища ключей.
  • New-AzureRMRoleAssignment пытается назначить роль AzureRM, указанную пользователем, определенному участнику в определенной области.
  • New-PowerShellFunctionAppFunction пытается создать новую функцию PowerShell в приложении-функции.

Метафункции

  • ConvertTo-Markdown используется для преобразования вывода функций Invoke-Tests для использования на другой платформе.
  • Invoke-AllAzureMGAbuseTests выполняет все тесты проверки атак, которые могут быть выполнены при наличии роли приложения MS Graph. Возвращает объект, описывающий, какие привилегии успешно выполнили каждый тест атаки.
  • Invoke-AllAzureRMAbuseTests выполняет все тесты проверки атак AzureRM и выводит результирующий объект, описывающий, какие роли AzureRM предоставили возможность выполнить каждую атаку.
  • Invoke-AllEntraAbuseTests выполняет все тесты проверки атак, которые могут быть выполнены участниками, имеющими роли администратора Entra. Возвращает объект, описывающий, какие привилегии успешно выполнили каждый тест атаки.
  • New-EntraIDAbuseTestSPs создает нового субъекта-службы для каждой активной роли администратора Entra и предоставляет каждому субъекту-службе соответствующую роль. Возвращает учетные данные в виде открытого текста, созданные для каждого субъекта-службы.
  • New-EntraIDAbuseTestUsers создает нового пользователя для каждой активной роли администратора Entra и предоставляет каждому пользователю соответствующую роль. Возвращает учетные данные в виде открытого текста, созданные для каждого пользователя.
  • New-IntuneAbuseTestUsers создает нового пользователя для каждой роли Intune и предоставляет каждому пользователю соответствующую роль. Возвращает учетные данные в виде открытого текста, созданные для каждого пользователя.
  • New-MSGraphAppRoleTestSPs создает нового субъекта-службы для каждой роли приложения MS Graph и предоставляет каждому субъекту-службе соответствующую роль. Возвращает учетные данные в виде открытого текста, созданные для каждого субъекта-службы.
Скачать инструмент
  • Get-MSGraphTokenWithClientCredentials запрашивает JWT-токен MS Graph с идентификатором клиента и секретом. Полезно для аутентификации в качестве субъекта-службы Entra.
  • Get-MSGraphTokenWithPortalAuthRefreshToken запрашивает JWT-токен MS Graph с использованием предоставленного пользователем токена обновления аутентификации портала Azure.
  • Get-MSGraphTokenWithRefreshToken запрашивает JWT-токен MS Graph с предоставленным пользователем токеном обновления.
  • Get-MSGraphTokenWithUsernamePassword запрашивает JWT-токен MS Graph с именем пользователя и паролем.
  • Parse-JWTToken принимает JWT в кодировке Base64 и расшифровывает его. Полезно для проверки правильности аудитории и утверждений токена.
  • Get-EntraServicePrincipalOwner собирает владельцев субъекта-службы Entra.
  • Get-EntraTierZeroServicePrincipals собирает субъекты-службы Entra, которым назначена роль администратора Entra нулевого уровня или роль приложения MS Graph нулевого уровня.
  • Get-MGAppRoles собирает роли приложений, предоставляемые субъектом-службой MS Graph.
  • Get-AllAzureRMVMScaleSets собирает все наборы масштабирования виртуальных машин в рамках подписки.
  • Get-AllAzureRMVirtualMachines собирает все виртуальные машины в рамках подписки.
  • Get-AllAzureRMWebApps собирает все веб-приложения в рамках подписки.
  • Get-AzureAutomationAccountRunBookOutput запускает runbook учетной записи автоматизации и получает его вывод.
  • Get-AzureFunctionAppFunctionFile получает исходный файл (обычно исходный код) функции приложения-функции.
  • Get-AzureFunctionAppFunctions собирает все функции в приложении-функции.
  • Get-AzureFunctionAppMasterKeys собирает все мастер-ключи в приложении-функции.
  • Get-AzureFunctionOutput запускает функцию приложения-функции и получает её вывод.
  • Get-AzureRMKeyVaultSecretValue получает значение секрета хранилища ключей.
  • Get-AzureRMKeyVaultSecretVersions собирает все версии секрета хранилища ключей.
  • Get-AzureRMKeyVaultSecrets собирает все секреты в хранилище ключей.
  • Get-AzureRMRoleAssignments собирает все назначения ролей для объекта.
  • Get-AzureRMRoleDefinitions собирает все определения ролей на уровне подписки, включая пользовательские роли.
  • Get-AzureRMWebApp собирает веб-приложение.
  • Set-EntraUserPassword пытается установить пароль другого пользователя на новое значение, указанное пользователем.
  • New-TestAppReg создает объект регистрации приложения с явной целью тестирования проверки атак.
  • New-TestSP создает новый субъект-службы и связывает его с приложением, созданным предыдущей функцией.
  • Remove-AbuseTestAzureRMRoles — функция очистки для удаления ролей администратора AzureRM, созданных во время тестирования.
  • Remove-AbuseTestServicePrincipals очищает тесты атак, удаляя субъекты-службы, созданные во время тестирования.
  • Test-AzureRMAddSelfToAzureRMRole используется в тестировании проверки атак, чтобы определить, может ли субъект-служба с определенными правами предоставить себе роль администратора доступа пользователей в подписке.
  • Test-AzureRMCreateFunction используется в тестировании проверки атак, чтобы проверить, может ли субъект-служба добавить новую функцию в существующее приложение-функцию.
  • Test-AzureRMPublishAutomationAccountRunBook используется для проверки, может ли субъект-служба опубликовать новый runbook в существующей учетной записи автоматизации.
  • Test-AzureRMVMRunCommand используется для проверки, может ли участник выполнить команду на существующей виртуальной машине.
  • Test-MGAddMemberToNonRoleEligibleGroup используется для проверки, может ли субъект-служба добавить себя в группу, не подходящую для роли.
  • Test-MGAddMemberToRoleEligibleGroup используется для проверки, может ли субъект-служба добавить себя в группу, подходящую для роли.
  • Test-MGAddOwnerToNonRoleEligibleGroup используется для проверки, может ли субъект-служба получить явное владение группой, не подходящей для роли.
  • Test-MGAddOwnerToRoleEligibleGroup используется для проверки, может ли субъект-служба получить явное владение группой, подходящей для роли.
  • Test-MGAddRootCACert используется для проверки, может ли субъект-служба добавить новый корневой сертификат ЦС в арендатор.
  • Test-MGAddSecretToApp используется для проверки, может ли субъект-служба добавить новый секрет в существующее приложение.
  • Test-MGAddSecretToSP используется для проверки, может ли субъект-служба добавить новый секрет в существующий субъект-службы.
  • Test-MGAddSelfAsOwnerOfApp используется в тестировании проверки атак, чтобы определить, может ли субъект-служба с определенной привилегией получить владение существующим приложением Entra.
  • Test-MGAddSelfAsOwnerOfSP используется в тестировании проверки атак, чтобы определить, может ли субъект-служба с определенной привилегией получить владение существующим субъектом-службы Entra.
  • Test-MGAddSelfToEntraRole используется в тестировании проверки атак, чтобы определить, может ли субъект-служба с определенной привилегией добавить себя в роль администратора Entra, например, глобального администратора.
  • Test-MGAddSelfToMGAppRole используется в тестировании проверки атак, чтобы определить, может ли субъект-служба с определенной привилегией предоставить себе определенную роль приложения MS Graph без согласия администратора.