Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
BARK — Kit de Investigación de Ataques BloodHound | Kitploit
Herramientas/GitHubGitHub/bloodhoundad/bark
Escalada de PrivilegiosReconocimientoExplotaciónRecopilación de InformaciónPruebas de PenetraciónSeguridad en la NubeGestión de Identidad y Acceso (IAM)AutenticaciónRed Teaming
GitHubbloodhoundad/bark

BARK

Kit de Investigación de Ataques BloodHound

60471hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

BARK

BARK Logo

BARK significa BloodHound Attack Research Kit. Es un script de PowerShell diseñado para ayudar al equipo de BloodHound Enterprise a investigar y validar continuamente primitivas de abuso. BARK actualmente se enfoca en el conjunto de productos y servicios de Microsoft Azure.

BARK no requiere dependencias de terceros. Las funciones de BARK están diseñadas para ser lo más simples y mantenibles posible. La mayoría de las funciones son envoltorios muy simples para realizar solicitudes a varios endpoints de API REST. Las funciones básicas de BARK ni siquiera se necesitan entre sí: puedes extraer casi cualquier función de BARK y funcionará perfectamente como una función independiente en tus propios scripts.

Autor y Contribuidores

Autor principal: Andy Robbins @_wald0

Contribuidores:

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

Cómo Empezar

Hay muchas formas de importar un script de PowerShell. Aquí hay una:

Primero, descarga BARK.ps1 clonando este repositorio o simplemente copiando y pegando su contenido sin formato desde GitHub.

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

Ahora, navega al directorio donde está el PS1:

root@kitploit:~
cd BARK

Finalmente, puedes importar el script con punto así:

root@kitploit:~
. .\BARK.ps1

Presiona Enter, y tu instancia de PowerShell ahora tendrá acceso a todas las funciones de BARK.

Ejecutando tus primeros comandos de BARK

Con muy pocas excepciones, los endpoints de la API de Azure requieren autenticación para interactuar. BARK incluye algunas funciones que te ayudarán a adquirir los tokens necesarios para interactuar con las API de MS Graph y Azure REST. Cualquier función de BARK que interactúe con una API de Azure que requiera autenticación te pedirá que proporciones un token.

Supongamos que quieres listar todos los usuarios en un inquilino de Entra ID. Primero necesitas obtener un token con alcance para MS Graph. Hay muchas formas de obtener este token:

Si tienes una combinación de nombre de usuario/contraseña para un usuario de Entra en ese inquilino, puedes adquirir primero un token de actualización para el usuario usando la función Get-EntraRefreshTokenWithUsernamePassword de BARK:

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

El objeto resultante que acabas de crear, $MyRefreshTokenRequest, tendrá como parte de él un token de actualización para tu usuario. Ahora puedes solicitar un token con alcance para MS Graph usando este token de actualización:

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

Ahora este nuevo objeto, $MyMSGraphToken, tendrá como uno de sus valores de propiedad un JWT con alcance para MS Graph para tu usuario. Ahora estás listo para usar este token para listar todos los usuarios en el inquilino de Entra:

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

Una vez terminado, la variable $MyEntraUsers se llenará con objetos que representan a todos los usuarios en tu inquilino de Entra.

Funciones de Gestión y Manipulación de Tokens

  • Get-AzureKeyVaultTokenWithClientCredentials solicita un token de STS con Azure Vault especificado como recurso/público objetivo usando un ID de cliente y secreto.
  • Get-AzureKeyVaultTokenWithUsernamePassword solicita un token de STS con Azure Vault especificado como recurso/público objetivo usando un nombre de usuario y contraseña proporcionados por el usuario.
  • Get-AzurePortalTokenWithRefreshToken solicita un token de actualización de Auth de Azure Portal con un token de actualización proporcionado por el usuario.
  • Get-AzureRMTokenWithClientCredentials solicita un JWT con alcance de AzureRM usando un ID de cliente y secreto. Útil para autenticarse como una entidad de servicio de Entra.
  • Get-AzureRMTokenWithPortalAuthRefreshToken solicita un JWT con alcance de AzureRM usando un token de actualización de Auth de Azure Portal proporcionado por el usuario.
  • Get-AzureRMTokenWithRefreshToken solicita un JWT con alcance de AzureRM usando un token de actualización proporcionado por el usuario.
  • Get-AzureRMTokenWithUsernamePassword solicita un JWT con alcance de AzureRM usando un nombre de usuario y contraseña proporcionados por el usuario.
  • Get-EntraRefreshTokenWithUsernamePassword solicita una colección de tokens, incluyendo un token de actualización, de login.microsoftonline.com con un nombre de usuario y contraseña proporcionados por el usuario. Esto fallará si el usuario tiene requisitos de autenticación multifactor o está afectado por una política de acceso condicional.

Las funciones basadas en tokens de actualización en BARK se basan en funciones de TokenTactics de Steve Borosh.

Funciones de Enumeración de Entra

  • Get-AllEntraApps recopila todos los objetos de registro de aplicaciones de Entra.
  • Get-AllEntraGroups recopila todos los grupos de Entra.
  • Get-AllEntraRoles recopila todos los roles de administrador de Entra.
  • Get-AllEntraServicePrincipals recopila todos los objetos de entidad de servicio de Entra.
  • Get-AllEntraUsers recopila todos los usuarios de Entra.
  • Get-EntraAppOwner recopila los propietarios de un registro de aplicación de Entra.
  • Get-EntraDeviceRegisteredUsers recopila los usuarios de un dispositivo de Entra.
  • Get-EntraGroupMembers recopila los miembros de un grupo de Entra.
  • Get-EntraGroupOwner recopila los propietarios de un grupo de Entra.
  • Get-EntraRoleTemplates recopila las plantillas de roles de administrador de Entra.
  • Get-EntraServicePrincipal recopila una entidad de servicio de Entra.

Funciones de Enumeración de Azure Resource Manager

  • Get-AllAzureManagedIdentityAssignments recopila todas las asignaciones de identidad administrada.
  • Get-AllAzureRMAKSClusters recopila todos los clústeres de servicio de Kubernetes bajo una suscripción.
  • Get-AllAzureRMAutomationAccounts recopila todas las cuentas de automatización bajo una suscripción.
  • Get-AllAzureRMAzureContainerRegistries recopila todos los registros de contenedores bajo una suscripción.
  • Get-AllAzureRMFunctionApps recopila todas las aplicaciones de funciones bajo una suscripción.
  • Get-AllAzureRMKeyVaults recopila todos los almacenes de claves bajo una suscripción.
  • Get-AllAzureRMLogicApps recopila todas las aplicaciones lógicas bajo una suscripción.
  • Get-AllAzureRMResourceGroups recopila todos los grupos de recursos bajo una suscripción.
  • Get-AllAzureRMSubscriptions recopila todas las suscripciones de AzureRM.
  • Get-AllAzureRMVMScaleSetsVMs recopila todas las máquinas virtuales bajo un conjunto de escalado de VM.

Funciones de Enumeración de Intune

  • Get-IntuneManagedDevices recopila dispositivos administrados por Intune.
  • Get-IntuneRoleDefinitions recopila las definiciones de roles de Intune disponibles.

Funciones de Abuso de Entra

  • Add-MemberToEntraGroup intentará agregar una entidad de seguridad a un grupo de Entra.
  • Enable-EntraRole intentará habilitar (o "activar") el rol de Entra.
  • New-EntraAppOwner intentará agregar un nuevo propietario a una aplicación de Entra.
  • New-EntraAppRoleAssignment intentará conceder un rol de aplicación a una entidad de servicio. Por ejemplo, puedes usar esto para conceder a una entidad de servicio el rol de aplicación RoleManagement.ReadWrite.Directory.
  • New-EntraAppSecret intentará crear un nuevo secreto para un registro de aplicación de Entra existente.
  • New-EntraGroupOwner intentará agregar un nuevo propietario a un grupo de Entra.
  • New-EntraRoleAssignment intentará asignar un rol de administrador de Entra a una entidad de seguridad especificada.
  • New-EntraServicePrincipalOwner intentará agregar un nuevo propietario a una entidad de servicio de Entra.
  • New-EntraServicePrincipalSecret intentará crear un nuevo secreto para una entidad de servicio de Entra existente.
  • Reset-EntraUserPassword intentará restablecer la contraseña de otro usuario. Si tiene éxito, la salida contendrá la nueva contraseña generada por Azure del usuario.

Funciones de Abuso de Azure Resource Manager

  • Invoke-AzureRMAKSRunCommand instruirá al clúster AKS para ejecutar un comando.
  • Invoke-AzureRMVMRunCommand intentará ejecutar un comando en una máquina virtual.
  • Invoke-AzureRMWebAppShellCommand intentará ejecutar un comando en un contenedor de aplicación web.
  • Invoke-AzureVMScaleSetVMRunCommand intentará ejecutar un comando en una máquina virtual de un conjunto de escalado de VM.
  • New-AzureAutomationAccountRunBook intentará agregar un runbook a una cuenta de automatización.
  • New-AzureKeyVaultAccessPolicy intentará conceder a una entidad de seguridad permisos de "Get" y "List" sobre los secretos, claves y certificados de un almacén de claves.
  • New-AzureRMRoleAssignment intentará conceder una asignación de rol de AzureRM especificada por el usuario a una entidad de seguridad particular sobre un cierto ámbito.
  • New-PowerShellFunctionAppFunction intentará crear una nueva función de PowerShell en una aplicación de funciones.

Meta Funciones

  • ConvertTo-Markdown se usa para procesar la salida de las funciones Invoke-Tests para su uso en otra plataforma.
  • Invoke-AllAzureMGAbuseTests realiza todas las pruebas de validación de abuso que pueden ejecutarse teniendo un rol de aplicación de MS Graph. Devuelve un objeto que describe qué privilegios tuvieron éxito al realizar cada prueba de abuso.
  • Invoke-AllAzureRMAbuseTests realiza todas las pruebas de validación de abuso de AzureRM y genera un objeto resultante que describe qué roles de AzureRM otorgaron la capacidad de realizar cada abuso.
  • Invoke-AllEntraAbuseTests realiza todas las pruebas de validación de abuso que pueden ejecutarse mediante entidades de seguridad a las que se les han concedido roles de administrador de Entra. Devuelve un objeto que describe qué privilegios tuvieron éxito al realizar cada prueba de abuso.
  • New-EntraIDAbuseTestSPs crea una nueva entidad de servicio por cada rol de administrador de Entra activo y concede a cada entidad de servicio el rol correspondiente. Devuelve credenciales en texto plano creadas para cada entidad de servicio.
  • New-EntraIDAbuseTestUsers crea un nuevo usuario por cada rol de administrador de Entra activo y concede a cada usuario el rol correspondiente. Devuelve credenciales en texto plano creadas para cada usuario.
  • New-IntuneAbuseTestUsers crea un nuevo usuario por cada rol de Intune y concede a cada usuario el rol correspondiente. Devuelve credenciales en texto plano creadas para cada usuario.
  • New-MSGraphAppRoleTestSPs crea una nueva entidad de servicio por cada rol de aplicación de MS Graph y concede a cada entidad de servicio el rol correspondiente. Devuelve credenciales en texto plano creadas para cada entidad de servicio.
Descargar herramienta
  • Get-MSGraphTokenWithClientCredentials solicita un JWT con alcance de MS Graph usando un ID de cliente y secreto. Útil para autenticarse como una entidad de servicio de Entra.
  • Get-MSGraphTokenWithPortalAuthRefreshToken solicita un JWT con alcance de MS Graph usando un token de actualización de Auth de Azure Portal proporcionado por el usuario.
  • Get-MSGraphTokenWithRefreshToken solicita un JWT con alcance de MS Graph usando un token de actualización proporcionado por el usuario.
  • Get-MSGraphTokenWithUsernamePassword solicita un JWT con alcance de MS Graph usando un nombre de usuario y contraseña proporcionados por el usuario.
  • Parse-JWTToken toma un JWT codificado en Base64 como entrada y lo analiza por ti. Útil para verificar la audiencia y los claims correctos del token.
  • Get-EntraServicePrincipalOwner recopila los propietarios de una entidad de servicio de Entra.
  • Get-EntraTierZeroServicePrincipals recopila las entidades de servicio de Entra que tienen una asignación de rol de administrador de Entra de nivel cero o de rol de aplicación de MS Graph de nivel cero.
  • Get-MGAppRoles recopila los roles de aplicación puestos a disposición por la entidad de servicio de MS Graph.
  • Get-AllAzureRMVMScaleSets recopila todos los conjuntos de escalado de máquinas virtuales bajo una suscripción.
  • Get-AllAzureRMVirtualMachines recopila todas las máquinas virtuales bajo una suscripción.
  • Get-AllAzureRMWebApps recopila todas las aplicaciones web bajo una suscripción.
  • Get-AzureAutomationAccountRunBookOutput ejecuta un runbook de cuenta de automatización y recupera su salida.
  • Get-AzureFunctionAppFunctionFile recopila el archivo sin procesar (generalmente código fuente) de una función de una aplicación de funciones.
  • Get-AzureFunctionAppFunctions recopila todas las funciones dentro de una aplicación de funciones.
  • Get-AzureFunctionAppMasterKeys recopila todas las claves maestras dentro de una aplicación de funciones.
  • Get-AzureFunctionOutput ejecuta una función de una aplicación de funciones y recupera su salida.
  • Get-AzureRMKeyVaultSecretValue recopila el valor de un secreto de un almacén de claves.
  • Get-AzureRMKeyVaultSecretVersions recopila todas las versiones de un secreto de un almacén de claves.
  • Get-AzureRMKeyVaultSecrets recopila todos los secretos dentro de un almacén de claves.
  • Get-AzureRMRoleAssignments recopila todas las asignaciones de roles contra un objeto.
  • Get-AzureRMRoleDefinitions recopila todas las definiciones de roles descritas en un ámbito de suscripción, incluidos los roles personalizados.
  • Get-AzureRMWebApp recopila una aplicación web.
  • Set-EntraUserPassword intentará establecer la contraseña de otro usuario a un nuevo valor proporcionado por el usuario.
  • New-TestAppReg crea un objeto de registro de aplicación con el propósito explícito de realizar pruebas de validación de abuso.
  • New-TestSP crea una nueva entidad de servicio y la asocia con la aplicación creada por la función anterior.
  • Remove-AbuseTestAzureRMRoles es una función de limpieza para eliminar los roles de administrador de AzureRM creados durante las pruebas.
  • Remove-AbuseTestServicePrincipals limpia las pruebas de abuso eliminando las entidades de servicio que se crearon durante las pruebas.
  • Test-AzureRMAddSelfToAzureRMRole se usa en pruebas de validación de abuso para determinar si una entidad de servicio con ciertos derechos puede concederse a sí misma el rol de Administrador de Acceso de Usuario sobre una suscripción.
  • Test-AzureRMCreateFunction se usa en pruebas de validación de abuso para probar si una entidad de servicio puede agregar una nueva función a una aplicación de funciones existente.
  • Test-AzureRMPublishAutomationAccountRunBook se usa para probar si una entidad de servicio puede publicar un nuevo runbook en una cuenta de automatización existente.
  • Test-AzureRMVMRunCommand se usa para probar si una entidad de seguridad puede ejecutar un comando en una máquina virtual existente.
  • Test-MGAddMemberToNonRoleEligibleGroup se usa para probar si la entidad de servicio puede agregarse a un grupo no elegible para roles.
  • Test-MGAddMemberToRoleEligibleGroup se usa para probar si la entidad de servicio puede agregarse a un grupo elegible para roles.
  • Test-MGAddOwnerToNonRoleEligibleGroup se usa para probar si una entidad de servicio puede concederse propiedad explícita de un grupo no elegible para roles.
  • Test-MGAddOwnerToRoleEligibleGroup se usa para probar si una entidad de servicio puede concederse propiedad explícita de un grupo elegible para roles.
  • Test-MGAddRootCACert se usa para probar si una entidad de servicio puede agregar un nuevo certificado de CA raíz al inquilino.
  • Test-MGAddSecretToApp se usa para probar si la entidad de servicio puede agregar un nuevo secreto a una aplicación existente.
  • Test-MGAddSecretToSP se usa para probar si la entidad de servicio puede agregar un nuevo secreto a una entidad de servicio existente.
  • Test-MGAddSelfAsOwnerOfApp se usa en pruebas de validación de abuso para determinar si una entidad de servicio con un privilegio particular puede concederse propiedad de una aplicación de Entra existente.
  • Test-MGAddSelfAsOwnerOfSP se usa en pruebas de validación de abuso para determinar si una entidad de servicio con un privilegio particular puede concederse propiedad de una entidad de servicio de Entra existente.
  • Test-MGAddSelfToEntraRole se usa en pruebas de validación de abuso para determinar si una entidad de servicio con un privilegio particular puede agregarse a un rol de administrador de Entra - por ejemplo, Administrador Global.
  • Test-MGAddSelfToMGAppRole se usa en pruebas de validación de abuso para determinar si una entidad de servicio con un privilegio particular puede concederse un rol de aplicación de MS Graph en particular sin consentimiento de administrador.