Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
BARK — BloodHound 공격 연구 키트 | Kitploit
도구/GitHubGitHub/bloodhoundad/bark
Privilege EscalationReconnaissanceExploitationInformation GatheringPenetration TestingCloud SecurityIdentity & Access Management (IAM)AuthenticationRed Teaming
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

마지막으로, 다음과 같이 PS1을 점(.) 임포트할 수 있습니다:

. .\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의 속성 값 중 하나로 사용자에 대한 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 Refresh 토큰을 요청합니다.
  • Get-AzureRMTokenWithClientCredentials 클라이언트 ID와 비밀을 사용하여 AzureRM 범위의 JWT를 요청합니다. Entra 서비스 주체로 인증하는 데 유용합니다.
  • Get-AzureRMTokenWithPortalAuthRefreshToken 사용자가 제공한 Azure Portal Auth Refresh 토큰을 사용하여 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 Refresh 토큰을 사용하여 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 계층 0 Entra 관리자 역할 또는 계층 0 MS Graph 앱 역할 할당이 있는 Entra 서비스 주체를 수집합니다.
  • Get-MGAppRoles MS Graph 서비스 주체에서 사용할 수 있도록 한 앱 역할을 수집합니다.

Azure Resource Manager 열거 함수

  • Get-AllAzureManagedIdentityAssignments 모든 관리 ID 할당을 수집합니다.
  • Get-AllAzureRMAKSClusters 구독 아래의 모든 Kubernetes 서비스 클러스터를 수집합니다.
  • Get-AllAzureRMAutomationAccounts 구독 아래의 모든 자동화 계정을 수집합니다.
  • Get-AllAzureRMAzureContainerRegistries 구독 아래의 모든 컨테이너 레지스트리를 수집합니다.
  • Get-AllAzureRMFunctionApps 구독 아래의 모든 함수 앱을 수집합니다.
  • Get-AllAzureRMKeyVaults 구독 아래의 모든 키 자격 증명 모음을 수집합니다.
  • Get-AllAzureRMLogicApps 구독 아래의 모든 논리 앱을 수집합니다.
  • Get-AllAzureRMResourceGroups 구독 아래의 모든 리소스 그룹을 수집합니다.
  • Get-AllAzureRMSubscriptions 모든 AzureRM 구독을 수집합니다.
  • Get-AllAzureRMVMScaleSetsVMs VM 확장 집합 아래의 모든 가상 머신을 수집합니다.
  • Get-AllAzureRMVMScaleSets 구독 아래의 모든 가상 머신 확장 집합을 수집합니다.
  • Get-AllAzureRMVirtualMachines 구독 아래의 모든 가상 머신을 수집합니다.
  • Get-AllAzureRMWebApps 구독 아래의 모든 웹 앱을 수집합니다.
  • Get-AzureAutomationAccountRunBookOutput 자동화 계정 실행 책을 실행하고 출력을 검색합니다.
  • Get-AzureFunctionAppFunctionFile 함수 앱 함수의 원시 파일(일반적으로 소스 코드)을 수집합니다.
  • Get-AzureFunctionAppFunctions 함수 앱 아래의 모든 함수를 수집합니다.
  • Get-AzureFunctionAppMasterKeys 함수 앱 아래의 모든 마스터 키를 수집합니다.
  • Get-AzureFunctionOutput 함수 앱 함수를 실행하고 출력을 검색합니다.
  • Get-AzureRMKeyVaultSecretValue 키 자격 증명 모음 비밀 값을 수집합니다.
  • Get-AzureRMKeyVaultSecretVersions 키 자격 증명 모음 비밀의 모든 버전을 수집합니다.
  • Get-AzureRMKeyVaultSecrets 키 자격 증명 모음 아래의 모든 비밀을 수집합니다.
  • Get-AzureRMRoleAssignments 개체에 대한 모든 역할 할당을 수집합니다.
  • Get-AzureRMRoleDefinitions 구독 범위에서 설명된 모든 역할 정의를 수집합니다. 사용자 지정 역할을 포함합니다.
  • Get-AzureRMWebApp 웹 앱을 수집합니다.

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 다른 사용자의 암호를 사용자가 제공한 새 값으로 설정하려고 시도합니다.
도구 다운로드