Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
BARK — Kit de Pesquisa de Ataques BloodHound | Kitploit
Ferramentas/GitHubGitHub/bloodhoundad/bark
Escalada de PrivilégiosReconhecimentoExploraçãoColeta de InformaçõesTestes de PenetraçãoSegurança na NuvemGerenciamento de Identidade e Acesso (IAM)AutenticaçãoRed Teaming
GitHubbloodhoundad/bark

BARK

Kit de Pesquisa de Ataques BloodHound

60471há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório

BARK

BARK Logo

BARK significa BloodHound Attack Research Kit. É um script PowerShell criado para auxiliar a equipe do BloodHound Enterprise na pesquisa e validação contínua de primitivas de abuso. Atualmente, o BARK foca no conjunto de produtos e serviços Microsoft Azure.

O BARK não requer dependências de terceiros. As funções do BARK são projetadas para serem o mais simples e fáceis de manter possível. A maioria das funções são wrappers muito simples para fazer requisições a vários endpoints de API REST. As funções básicas do BARK nem dependem umas das outras — você pode extrair quase qualquer função do BARK e ela funcionará perfeitamente como uma função independente em seus próprios scripts.

Autor e Colaboradores

Autor principal: Andy Robbins @_wald0

Colaboradores:

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

Começando

Existem muitas maneiras de importar um script PowerShell. Aqui está uma delas:

Primeiro, baixe o BARK.ps1 clonando este repositório ou simplesmente copiando/colando seu conteúdo bruto do GitHub.

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

Agora, navegue até o diretório onde está o PS1:

root@kitploit:~
cd BARK

Finalmente, você pode importar o PS1 com ponto assim:

root@kitploit:~
. .\BARK.ps1

Pressione Enter, e sua instância do PowerShell agora terá acesso a todas as funções do BARK.

Executando seus primeiros comandos BARK

Com poucas exceções, os endpoints da API Azure exigem autenticação para interagir. O BARK vem com algumas funções que ajudarão você a obter os tokens necessários para interagir com as APIs MS Graph e Azure REST. Qualquer função do BARK que interaja com uma API Azure que exija autenticação exigirá que você forneça um token.

Digamos que você queira listar todos os usuários em um locatário do Entra ID. Primeiro, você precisa obter um token com escopo para o MS Graph. Existem muitas maneiras de obter esse token:

Se você tiver uma combinação de nome de usuário/senha para um usuário do Entra naquele locatário, você pode primeiro adquirir um token de atualização para o usuário usando a função Get-EntraRefreshTokenWithUsernamePassword do BARK:

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

O objeto resultante que você acabou de criar, $MyRefreshTokenRequest, terá como parte dele um token de atualização para seu usuário. Agora você pode solicitar um token com escopo para MS Graph usando este token de atualização:

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

Agora este novo objeto, $MyMSGraphToken, terá como um de seus valores de propriedade um JWT com escopo para MS Graph para seu usuário. Agora você está pronto para usar este token para listar todos os usuários no locatário do Entra:

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

Uma vez concluído, a variável $MyEntraUsers será preenchida com objetos representando todos os usuários em seu locatário do Entra.

Funções de Gerenciamento e Manipulação de Tokens

  • Get-AzureKeyVaultTokenWithClientCredentials solicita um token do STS com o Azure Vault especificado como recurso/público-alvo usando um ID de cliente e segredo.
  • Get-AzureKeyVaultTokenWithUsernamePassword solicita um token do STS com o Azure Vault especificado como recurso/público-alvo usando um nome de usuário e senha fornecidos pelo usuário.
  • Get-AzurePortalTokenWithRefreshToken solicita um token de atualização de Autenticação do Portal Azure com um token de atualização fornecido pelo usuário.
  • Get-AzureRMTokenWithClientCredentials solicita um JWT com escopo AzureRM usando um ID de cliente e segredo. Útil para autenticação como uma entidade de serviço do Entra.
  • Get-AzureRMTokenWithPortalAuthRefreshToken solicita um JWT com escopo AzureRM usando um token de atualização de Autenticação do Portal Azure fornecido pelo usuário.
  • Get-AzureRMTokenWithRefreshToken solicita um JWT com escopo AzureRM usando um token de atualização fornecido pelo usuário.
  • Get-AzureRMTokenWithUsernamePassword solicita um JWT com escopo AzureRM usando um nome de usuário e senha fornecidos pelo usuário.
  • Get-EntraRefreshTokenWithUsernamePassword solicita uma coleção de tokens, incluindo um token de atualização, de login.microsoftonline.com com um nome de usuário e senha fornecidos pelo usuário. Isso falhará se o usuário tiver requisitos de Autenticação Multifator ou for afetado por uma Política de Acesso Condicional.

As funções baseadas em token de atualização no BARK são baseadas em funções do TokenTactics por Steve Borosh.

Funções de Enumeração do Entra

  • Get-AllEntraApps coleta todos os objetos de registro de aplicativo do Entra.
  • Get-AllEntraGroups coleta todos os grupos do Entra.
  • Get-AllEntraRoles coleta todas as funções de administrador do Entra.
  • Get-AllEntraServicePrincipals coleta todos os objetos de entidade de serviço do Entra.
  • Get-AllEntraUsers coleta todos os usuários do Entra.
  • Get-EntraAppOwner coleta proprietários de um registro de aplicativo do Entra.
  • Get-EntraDeviceRegisteredUsers coleta usuários de um dispositivo do Entra.
  • Get-EntraGroupMembers coleta membros de um grupo do Entra.
  • Get-EntraGroupOwner coleta proprietários de um grupo do Entra.
  • Get-EntraRoleTemplates coleta modelos de função de administrador do Entra.
  • Get-EntraServicePrincipal coleta uma entidade de serviço do Entra.

Funções de Enumeração do Azure Resource Manager

  • Get-AllAzureManagedIdentityAssignments coleta todas as atribuições de identidade gerenciada.
  • Get-AllAzureRMAKSClusters coleta todos os clusters de serviço kubernetes sob uma assinatura.
  • Get-AllAzureRMAutomationAccounts coleta todas as contas de automação sob uma assinatura.
  • Get-AllAzureRMAzureContainerRegistries coleta todos os registros de contêiner sob uma assinatura.
  • Get-AllAzureRMFunctionApps coleta todos os aplicativos de função sob uma assinatura.
  • Get-AllAzureRMKeyVaults coleta todos os cofres de chaves sob uma assinatura.
  • Get-AllAzureRMLogicApps coleta todos os aplicativos lógicos sob uma assinatura.
  • Get-AllAzureRMResourceGroups coleta todos os grupos de recursos sob uma assinatura.
  • Get-AllAzureRMSubscriptions coleta todas as assinaturas do AzureRM.
  • Get-AllAzureRMVMScaleSetsVMs coleta todas as máquinas virtuais sob um conjunto de dimensionamento de VMs.

Funções de Enumeração do Intune

  • Get-IntuneManagedDevices coleta dispositivos gerenciados pelo Intune.
  • Get-IntuneRoleDefinitions coleta definições de função do Intune disponíveis.

Funções de Abuso do Entra

  • Add-MemberToEntraGroup tentará adicionar uma entidade de segurança a um grupo do Entra.
  • Enable-EntraRole tentará habilitar (ou "ativar") a função do Entra.
  • New-EntraAppOwner tentará adicionar um novo proprietário a um aplicativo do Entra.
  • New-EntraAppRoleAssignment tentará conceder uma função de aplicativo a uma entidade de serviço. Por exemplo, você pode usar isso para conceder a uma entidade de serviço a função de aplicativo RoleManagement.ReadWrite.Directory.
  • New-EntraAppSecret tentará criar um novo segredo para um registro de aplicativo do Entra existente.
  • New-EntraGroupOwner tentará adicionar um novo proprietário a um grupo do Entra.
  • New-EntraRoleAssignment tentará atribuir uma função de administrador do Entra a uma entidade de segurança especificada.
  • New-EntraServicePrincipalOwner tentará adicionar um novo proprietário a uma entidade de serviço do Entra.
  • New-EntraServicePrincipalSecret tentará criar um novo segredo para uma entidade de serviço do Entra existente.
  • Reset-EntraUserPassword tentará redefinir a senha de outro usuário. Se bem-sucedido, a saída conterá a nova senha gerada pelo Azure do usuário.

Funções de Abuso do Azure Resource Manager

  • Invoke-AzureRMAKSRunCommand instruirá o cluster AKS a executar um comando.
  • Invoke-AzureRMVMRunCommand tentará executar um comando em uma VM.
  • Invoke-AzureRMWebAppShellCommand tentará executar um comando em um contêiner de aplicativo web.
  • Invoke-AzureVMScaleSetVMRunCommand tentará executar um comando em uma VM de Conjunto de Dimensionamento de VMs.
  • New-AzureAutomationAccountRunBook tentará adicionar um runbook a uma conta de automação.
  • New-AzureKeyVaultAccessPolicy tentará conceder permissões "Get" e "List" a uma entidade de segurança sobre segredos, chaves e certificados de um cofre de chaves.
  • New-AzureRMRoleAssignment tentará conceder uma atribuição de função AzureRM especificada pelo usuário a uma entidade de segurança em um determinado escopo.
  • New-PowerShellFunctionAppFunction tentará criar uma nova função PowerShell em um aplicativo de função.

Meta Funções

  • ConvertTo-Markdown é usado para ajustar a saída das funções Invoke-Tests para uso em outra plataforma.
  • Invoke-AllAzureMGAbuseTests executa todos os testes de validação de abuso que podem ser executados possuindo uma função de aplicativo MS Graph. Retorna um objeto descrevendo quais privilégios foram bem-sucedidos em realizar cada teste de abuso.
  • Invoke-AllAzureRMAbuseTests executa todos os testes de validação de abuso do AzureRM e gera um objeto resultante que descreve quais funções do AzureRM concederam a capacidade de realizar cada abuso.
  • Invoke-AllEntraAbuseTests executa todos os testes de validação de abuso que podem ser executados por entidades de segurança com funções de administrador do Entra. Retorna um objeto descrevendo quais privilégios foram bem-sucedidos em realizar cada teste de abuso.
  • New-EntraIDAbuseTestSPs cria uma nova entidade de serviço por função de administrador do Entra ativa e concede a cada entidade de serviço a função apropriada. Retorna credenciais em texto simples criadas para cada entidade de serviço.
  • New-EntraIDAbuseTestUsers cria um novo usuário por função de administrador do Entra ativa e concede a cada usuário a função apropriada. Retorna credenciais em texto simples criadas para cada usuário.
  • New-IntuneAbuseTestUsers cria um novo usuário por função do Intune e concede a cada usuário a função apropriada. Retorna credenciais em texto simples criadas para cada usuário.
  • New-MSGraphAppRoleTestSPs cria uma nova entidade de serviço por função de aplicativo MS Graph e concede a cada entidade de serviço a função apropriada. Retorna credenciais em texto simples criadas para cada entidade de serviço.
Baixar ferramenta
  • Get-MSGraphTokenWithClientCredentials solicita um JWT com escopo MS Graph usando um ID de cliente e segredo. Útil para autenticação como uma entidade de serviço do Entra.
  • Get-MSGraphTokenWithPortalAuthRefreshToken solicita um JWT com escopo MS Graph usando um token de atualização de Autenticação do Portal Azure fornecido pelo usuário.
  • Get-MSGraphTokenWithRefreshToken solicita um JWT com escopo MS Graph usando um token de atualização fornecido pelo usuário.
  • Get-MSGraphTokenWithUsernamePassword solicita um JWT com escopo MS Graph usando um nome de usuário e senha fornecidos pelo usuário.
  • Parse-JWTToken receberá um JWT codificado em Base64 como entrada e o analisará para você. Útil para verificar o público-alvo e as declarações corretas do token.
  • Get-EntraServicePrincipalOwner coleta proprietários de uma entidade de serviço do Entra.
  • Get-EntraTierZeroServicePrincipals coleta entidades de serviço do Entra que possuem uma função de administrador do Entra Tier Zero ou uma atribuição de função de aplicativo MS Graph Tier Zero.
  • Get-MGAppRoles coleta as funções de aplicativo disponibilizadas pela entidade de serviço do MS Graph.
  • Get-AllAzureRMVMScaleSets coleta todos os conjuntos de dimensionamento de máquinas virtuais sob uma assinatura.
  • Get-AllAzureRMVirtualMachines coleta todas as máquinas virtuais sob uma assinatura.
  • Get-AllAzureRMWebApps coleta todos os aplicativos web sob uma assinatura.
  • Get-AzureAutomationAccountRunBookOutput executa um runbook de conta de automação e recupera sua saída.
  • Get-AzureFunctionAppFunctionFile coleta o arquivo bruto (geralmente código-fonte) de uma função de aplicativo de função.
  • Get-AzureFunctionAppFunctions coleta todas as funções sob um aplicativo de função.
  • Get-AzureFunctionAppMasterKeys coleta todas as chaves mestras sob um aplicativo de função.
  • Get-AzureFunctionOutput executa uma função de aplicativo de função e recupera sua saída.
  • Get-AzureRMKeyVaultSecretValue coleta o valor de um segredo do cofre de chaves.
  • Get-AzureRMKeyVaultSecretVersions coleta todas as versões de um segredo do cofre de chaves.
  • Get-AzureRMKeyVaultSecrets coleta todos os segredos sob um cofre de chaves.
  • Get-AzureRMRoleAssignments coleta todas as atribuições de função contra um objeto.
  • Get-AzureRMRoleDefinitions coleta todas as definições de função descritas no escopo da assinatura, incluindo funções personalizadas.
  • Get-AzureRMWebApp coleta um aplicativo web.
  • Set-EntraUserPassword tentará definir a senha de outro usuário para um novo valor fornecido pelo usuário.
  • New-TestAppReg cria um objeto de registro de aplicativo para o propósito explícito de teste de validação de abuso.
  • New-TestSP cria uma nova entidade de serviço e a associa ao aplicativo criado pela função acima.
  • Remove-AbuseTestAzureRMRoles é uma função de limpeza para remover funções de administrador do AzureRM criadas durante o teste.
  • Remove-AbuseTestServicePrincipals limpa os testes de abuso removendo as entidades de serviço que foram criadas durante o teste.
  • Test-AzureRMAddSelfToAzureRMRole usado em testes de validação de abuso para determinar se uma entidade de serviço com certos direitos pode conceder a si mesma a função de Administrador de Acesso do Usuário sobre uma assinatura.
  • Test-AzureRMCreateFunction usado em testes de validação de abuso para testar se uma entidade de serviço pode adicionar uma nova função a um aplicativo de função existente.
  • Test-AzureRMPublishAutomationAccountRunBook usado para testar se uma entidade de serviço pode publicar um novo runbook em uma conta de automação existente.
  • Test-AzureRMVMRunCommand usado para testar se uma entidade de segurança pode executar um comando em uma VM existente.
  • Test-MGAddMemberToNonRoleEligibleGroup usado para testar se a entidade de serviço pode adicionar a si mesma a um grupo não elegível para função.
  • Test-MGAddMemberToRoleEligibleGroup usado para testar se a entidade de serviço pode adicionar a si mesma a um grupo elegível para função.
  • Test-MGAddOwnerToNonRoleEligibleGroup usado para testar se uma entidade de serviço pode conceder a si mesma a propriedade explícita de um grupo não elegível para função.
  • Test-MGAddOwnerToRoleEligibleGroup usado para testar se uma entidade de serviço pode conceder a si mesma a propriedade explícita de um grupo elegível para função.
  • Test-MGAddRootCACert usado para testar se uma entidade de serviço pode adicionar um novo certificado de CA Raiz ao locatário.
  • Test-MGAddSecretToApp usado para testar se a entidade de serviço pode adicionar um novo segredo a um aplicativo existente.
  • Test-MGAddSecretToSP usado para testar se a entidade de serviço pode adicionar um novo segredo a uma entidade de serviço existente.
  • Test-MGAddSelfAsOwnerOfApp usado em testes de validação de abuso para determinar se uma entidade de serviço com um privilégio específico pode conceder a si mesma a propriedade de um aplicativo do Entra existente.
  • Test-MGAddSelfAsOwnerOfSP usado em testes de validação de abuso para determinar se uma entidade de serviço com um privilégio específico pode conceder a si mesma a propriedade de uma entidade de serviço do Entra existente.
  • Test-MGAddSelfToEntraRole usado em testes de validação de abuso para determinar se uma entidade de serviço com um privilégio específico pode adicionar a si mesma a uma função de administrador do Entra, por exemplo, Administrador Global.
  • Test-MGAddSelfToMGAppRole usado em testes de validação de abuso para determinar se uma entidade de serviço com um privilégio específico pode conceder a si mesma uma função de aplicativo MS Graph específica sem consentimento do administrador.