Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
BARK — BloodHound Attack Research Kit | Kitploit
Tools/GitHubGitHub/bloodhoundad/bark
Privilege EscalationAufklärungExploitationInformationsbeschaffungPenetrationstestsCloud-SicherheitIdentitäts- & Zugriffsmanagement (IAM)AuthentifizierungRed Teaming
GitHubbloodhoundad/bark

BARK

BloodHound Attack Research Kit

60471vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen

BARK

BARK Logo

BARK steht für BloodHound Attack Research Kit. Es ist ein PowerShell-Skript, das entwickelt wurde, um das BloodHound Enterprise Team bei der Erforschung und kontinuierlichen Validierung von Missbrauchsprimitiven zu unterstützen. BARK konzentriert sich derzeit auf Microsofts Azure-Produktpalette und -Dienste.

BARK benötigt keine Abhängigkeiten von Drittanbietern. Die Funktionen von BARK sind so einfach und wartbar wie möglich gestaltet. Die meisten Funktionen sind sehr einfache Wrapper für Anfragen an verschiedene REST-API-Endpunkte. Die grundlegenden Funktionen von BARK benötigen nicht einmal einander - Sie können fast jede BARK-Funktion aus BARK herausnehmen und sie wird perfekt als eigenständige Funktion in Ihren eigenen Skripten funktionieren.

Autor und Mitwirkende

Hauptautor: Andy Robbins @_wald0

Mitwirkende:

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

Erste Schritte

Es gibt viele Möglichkeiten, ein PowerShell-Skript zu importieren. Hier ist eine Möglichkeit:

Laden Sie zuerst BARK.ps1 herunter, indem Sie dieses Repository klonen oder einfach die Rohinhalte von GitHub kopieren und einfügen.

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

Wechseln Sie nun mit cd in das Verzeichnis, in dem sich die PS1-Datei befindet:

root@kitploit:~
cd BARK

Schließlich können Sie die PS1-Datei wie folgt dot-importieren:

root@kitploit:~
. .\BARK.ps1

Drücken Sie die Eingabetaste, und Ihre PowerShell-Instanz hat nun Zugriff auf alle Funktionen von BARK.

Ausführen Ihrer ersten BARK-Befehle

Mit wenigen Ausnahmen erfordern Azure-API-Endpunkte eine Authentifizierung für die Interaktion. BARK enthält einige Funktionen, die Ihnen helfen, die erforderlichen Token für die Interaktion mit den MS Graph- und Azure-REST-APIs zu erhalten. Jede BARK-Funktion, die mit einer Azure-API interagiert, die eine Authentifizierung erfordert, benötigt die Angabe eines Tokens.

Angenommen, Sie möchten alle Benutzer in einem Entra-ID-Mandanten auflisten. Zuerst müssen Sie ein Token mit MS Graph-Bereich erhalten. Es gibt viele Möglichkeiten, dieses Token zu erhalten:

Wenn Sie eine Benutzername/Kennwort-Kombination für einen Entra-Benutzer in diesem Mandanten haben, können Sie zunächst ein Aktualisierungstoken für den Benutzer mit der Funktion Get-EntraRefreshTokenWithUsernamePassword von BARK abrufen:

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

Das resultierende Objekt, das Sie gerade erstellt haben, $MyRefreshTokenRequest, wird als Teil davon ein Aktualisierungstoken für Ihren Benutzer enthalten. Sie können nun ein MS Graph-bezogenes Token mit diesem Aktualisierungstoken anfordern:

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

Dieses neue Objekt, $MyMSGraphToken, wird als einen seiner Eigenschaftswerte ein MS Graph-bezogenes JWT für Ihren Benutzer enthalten. Sie sind nun bereit, dieses Token zu verwenden, um alle Benutzer im Entra-Mandanten aufzulisten:

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

Nach Abschluss wird die Variable $MyEntraUsers mit Objekten gefüllt, die alle Benutzer in Ihrem Entra-Mandanten repräsentieren.

Tokenverwaltungs- und Manipulationsfunktionen

  • Get-AzureKeyVaultTokenWithClientCredentials fordert ein Token von STS an, wobei Azure Vault als Ressource/Zielgruppe angegeben wird, unter Verwendung einer Client-ID und eines Geheimnisses.
  • Get-AzureKeyVaultTokenWithUsernamePassword fordert ein Token von STS an, wobei Azure Vault als Ressource/Zielgruppe angegeben wird, unter Verwendung eines benutzerbereitgestellten Benutzernamens und Kennworts.
  • Get-AzurePortalTokenWithRefreshToken fordert ein Azure-Portal-Authentifizierungs-Aktualisierungstoken mit einem benutzerbereitgestellten Aktualisierungstoken an.
  • Get-AzureRMTokenWithClientCredentials fordert ein AzureRM-bezogenes JWT mit einer Client-ID und einem Geheimnis an. Nützlich zur Authentifizierung als Entra-Dienstprinzipal.
  • Get-AzureRMTokenWithPortalAuthRefreshToken fordert ein AzureRM-bezogenes JWT mit einem benutzerbereitgestellten Azure-Portal-Authentifizierungs-Aktualisierungstoken an.
  • Get-AzureRMTokenWithRefreshToken fordert ein AzureRM-bezogenes JWT mit einem benutzerbereitgestellten Aktualisierungstoken an.
  • Get-AzureRMTokenWithUsernamePassword fordert ein AzureRM-bezogenes JWT mit einem benutzerbereitgestellten Benutzernamen und Kennwort an.
  • Get-EntraRefreshTokenWithUsernamePassword fordert eine Sammlung von Token, einschließlich eines Aktualisierungstokens, von login.microsoftonline.com mit einem benutzerbereitgestellten Benutzernamen und Kennwort an. Dies schlägt fehl, wenn der Benutzer Multi-Faktor-Authentifizierungsanforderungen hat oder von einer Richtlinie für bedingten Zugriff betroffen ist.

Die auf Aktualisierungstoken basierenden Funktionen in BARK basieren auf Funktionen in TokenTactics von Steve Borosh.

Entra-Enumerationsfunktionen

  • Get-AllEntraApps sammelt alle Entra-Anwendungsregistrierungsobjekte.
  • Get-AllEntraGroups sammelt alle Entra-Gruppen.
  • Get-AllEntraRoles sammelt alle Entra-Administratorrollen.
  • Get-AllEntraServicePrincipals sammelt alle Entra-Dienstprinzipalobjekte.
  • Get-AllEntraUsers sammelt alle Entra-Benutzer.
  • Get-EntraAppOwner sammelt Besitzer einer Entra-App-Registrierung.
  • Get-EntraDeviceRegisteredUsers sammelt Benutzer eines Entra-Geräts.
  • Get-EntraGroupMembers sammelt Mitglieder einer Entra-Gruppe.
  • Get-EntraGroupOwner sammelt Besitzer einer Entra-Gruppe.
  • Get-EntraRoleTemplates sammelt Entra-Administratorrollenvorlagen.
  • Get-EntraServicePrincipal sammelt einen Entra-Dienstprinzipal.

Azure Resource Manager-Enumerationsfunktionen

  • Get-AllAzureManagedIdentityAssignments sammelt alle verwalteten Identitätszuweisungen.
  • Get-AllAzureRMAKSClusters sammelt alle Kubernetes-Dienstcluster unter einem Abonnement.
  • Get-AllAzureRMAutomationAccounts sammelt alle Automatisierungskonten unter einem Abonnement.
  • Get-AllAzureRMAzureContainerRegistries sammelt alle Containerregistrierungen unter einem Abonnement.
  • Get-AllAzureRMFunctionApps sammelt alle Funktions-Apps unter einem Abonnement.
  • Get-AllAzureRMKeyVaults sammelt alle Schlüsseltresore unter einem Abonnement.
  • Get-AllAzureRMLogicApps sammelt alle Logik-Apps unter einem Abonnement.
  • Get-AllAzureRMResourceGroups sammelt alle Ressourcengruppen unter einem Abonnement.
  • Get-AllAzureRMSubscriptions sammelt alle AzureRM-Abonnements.
  • Get-AllAzureRMVMScaleSetsVMs sammelt alle virtuellen Maschinen unter einer VM-Skalierungsgruppe.

Intune-Enumerationsfunktionen

  • Get-IntuneManagedDevices sammelt Intune-verwaltete Geräte.
  • Get-IntuneRoleDefinitions sammelt verfügbare Intune-Rollendefinitionen.

Entra-Missbrauchsfunktionen

  • Add-MemberToEntraGroup versucht, einen Prinzipal zu einer Entra-Gruppe hinzuzufügen.
  • Enable-EntraRole versucht, die Entra-Rolle zu aktivieren (oder zu 'aktivieren').
  • New-EntraAppOwner versucht, einen neuen Besitzer zu einer Entra-App hinzuzufügen.
  • New-EntraAppRoleAssignment versucht, einem Dienstprinzipal eine App-Rolle zu gewähren. Sie können dies beispielsweise verwenden, um einem Dienstprinzipal die App-Rolle RoleManagement.ReadWrite.Directory zu gewähren.
  • New-EntraAppSecret versucht, ein neues Geheimnis für eine vorhandene Entra-App-Registrierung zu erstellen.
  • New-EntraGroupOwner versucht, einen neuen Besitzer zu einer Entra-Gruppe hinzuzufügen.
  • New-EntraRoleAssignment versucht, einem angegebenen Prinzipal eine Entra-Administratorrolle zuzuweisen.
  • New-EntraServicePrincipalOwner versucht, einen neuen Besitzer zu einem Entra-Dienstprinzipal hinzuzufügen.
  • New-EntraServicePrincipalSecret versucht, ein neues Geheimnis für einen vorhandenen Entra-Dienstprinzipal zu erstellen.
  • Reset-EntraUserPassword versucht, das Kennwort eines anderen Benutzers zurückzusetzen. Bei Erfolg enthält die Ausgabe das neue, von Azure generierte Kennwort des Benutzers.

Azure Resource Manager-Missbrauchsfunktionen

  • Invoke-AzureRMAKSRunCommand weist den AKS-Cluster an, einen Befehl auszuführen.
  • Invoke-AzureRMVMRunCommand versucht, einen Befehl auf einer VM auszuführen.
  • Invoke-AzureRMWebAppShellCommand versucht, einen Befehl in einem Web-App-Container auszuführen.
  • Invoke-AzureVMScaleSetVMRunCommand versucht, einen Befehl auf einer VM-Skalierungsgruppen-VM auszuführen.
  • New-AzureAutomationAccountRunBook versucht, ein Runbook zu einem Automatisierungskonto hinzuzufügen.
  • New-AzureKeyVaultAccessPolicy versucht, einem Prinzipal 'Get'- und 'List'-Berechtigungen für die Geheimnisse, Schlüssel und Zertifikate eines Schlüsseltresors zu gewähren.
  • New-AzureRMRoleAssignment versucht, eine benutzerdefinierte AzureRM-Rollenzuweisung an einen bestimmten Prinzipal über einen bestimmten Bereich zu gewähren.
  • New-PowerShellFunctionAppFunction versucht, eine neue PowerShell-Funktion in einer Funktions-App zu erstellen.

Meta-Funktionen

  • ConvertTo-Markdown wird verwendet, um die Ausgabe der Invoke-Tests-Funktionen für die Verwendung auf einer anderen Plattform aufzubereiten.
  • Invoke-AllAzureMGAbuseTests führt alle Missbrauchsvalidierungstests durch, die durch das Halten einer MS Graph-App-Rolle ausgeführt werden können. Gibt ein Objekt zurück, das beschreibt, welche Berechtigungen bei der Durchführung jedes Missbrauchstests erfolgreich waren.
  • Invoke-AllAzureRMAbuseTests führt alle AzureRM-Missbrauchsvalidierungstests durch und gibt ein resultierendes Objekt aus, das beschreibt, welche AzureRM-Rollen die Fähigkeit zur Durchführung jedes Missbrauchs gewährt haben.
  • Invoke-AllEntraAbuseTests führt alle Missbrauchsvalidierungstests durch, die von Prinzipalen mit Entra-Administratorrollen ausgeführt werden können. Gibt ein Objekt zurück, das beschreibt, welche Berechtigungen bei der Durchführung jedes Missbrauchstests erfolgreich waren.
  • New-EntraIDAbuseTestSPs erstellt einen neuen Dienstprinzipal pro aktiver Entra-Administratorrolle und gewährt jedem Dienstprinzipal die entsprechende Rolle. Gibt die im Klartext erstellten Anmeldeinformationen für jeden Dienstprinzipal zurück.
  • New-EntraIDAbuseTestUsers erstellt einen neuen Benutzer pro aktiver Entra-Administratorrolle und gewährt jedem Benutzer die entsprechende Rolle. Gibt die im Klartext erstellten Anmeldeinformationen für jeden Benutzer zurück.
  • New-IntuneAbuseTestUsers erstellt einen neuen Benutzer pro Intune-Rolle und gewährt jedem Benutzer die entsprechende Rolle. Gibt die im Klartext erstellten Anmeldeinformationen für jeden Benutzer zurück.
Tool herunterladen
  • Get-MSGraphTokenWithClientCredentials fordert ein MS Graph-bezogenes JWT mit einer Client-ID und einem Geheimnis an. Nützlich zur Authentifizierung als Entra-Dienstprinzipal.
  • Get-MSGraphTokenWithPortalAuthRefreshToken fordert ein MS Graph-bezogenes JWT mit einem benutzerbereitgestellten Azure-Portal-Authentifizierungs-Aktualisierungstoken an.
  • Get-MSGraphTokenWithRefreshToken fordert ein MS Graph-bezogenes JWT mit einem benutzerbereitgestellten Aktualisierungstoken an.
  • Get-MSGraphTokenWithUsernamePassword fordert ein MS Graph-bezogenes JWT mit einem benutzerbereitgestellten Benutzernamen und Kennwort an.
  • Parse-JWTToken nimmt ein Base64-kodiertes JWT als Eingabe und parst es für Sie. Nützlich zur Überprüfung der korrekten Token-Zielgruppe und -Ansprüche.
  • Get-EntraServicePrincipalOwner sammelt Besitzer eines Entra-Dienstprinzipals.
  • Get-EntraTierZeroServicePrincipals sammelt Entra-Dienstprinzipale, die eine Tier-Zero-Entra-Administratorrolle oder eine Tier-Zero-MS-Graph-App-Rollenzuweisung haben.
  • Get-MGAppRoles sammelt die von der MS Graph-Dienstprinzipal verfügbar gemachten App-Rollen.
  • Get-AllAzureRMVMScaleSets sammelt alle VM-Skalierungsgruppen unter einem Abonnement.
  • Get-AllAzureRMVirtualMachines sammelt alle virtuellen Maschinen unter einem Abonnement.
  • Get-AllAzureRMWebApps sammelt alle Web-Apps unter einem Abonnement.
  • Get-AzureAutomationAccountRunBookOutput führt ein Automatisierungskonto-Runbook aus und ruft dessen Ausgabe ab.
  • Get-AzureFunctionAppFunctionFile sammelt die Rohdatei (normalerweise Quellcode) einer Funktions-App-Funktion.
  • Get-AzureFunctionAppFunctions sammelt alle Funktionen unter einer Funktions-App.
  • Get-AzureFunctionAppMasterKeys sammelt alle Masterschlüssel unter einer Funktions-App.
  • Get-AzureFunctionOutput führt eine Funktions-App-Funktion aus und ruft deren Ausgabe ab.
  • Get-AzureRMKeyVaultSecretValue sammelt einen Schlüsseltresor-Geheimniswert.
  • Get-AzureRMKeyVaultSecretVersions sammelt alle Versionen eines Schlüsseltresor-Geheimnisses.
  • Get-AzureRMKeyVaultSecrets sammelt alle Geheimnisse unter einem Schlüsseltresor.
  • Get-AzureRMRoleAssignments sammelt alle Rollenzuweisungen für ein Objekt.
  • Get-AzureRMRoleDefinitions sammelt alle Rollendefinitionen, die im Abonnementbereich beschrieben sind, einschließlich benutzerdefinierter Rollen.
  • Get-AzureRMWebApp sammelt eine Web-App.
  • Set-EntraUserPassword versucht, das Kennwort eines anderen Benutzers auf einen neuen, vom Benutzer bereitgestellten Wert zu setzen.
  • New-MSGraphAppRoleTestSPs erstellt einen neuen Dienstprinzipal pro MS Graph-App-Rolle und gewährt jedem Dienstprinzipal die entsprechende Rolle. Gibt die im Klartext erstellten Anmeldeinformationen für jeden Dienstprinzipal zurück.
  • New-TestAppReg erstellt ein Anwendungsregistrierungsobjekt zum expliziten Zweck der Missbrauchsvalidierungstests.
  • New-TestSP erstellt einen neuen Dienstprinzipal und verknüpft ihn mit der von der obigen Funktion erstellten App.
  • Remove-AbuseTestAzureRMRoles ist eine Bereinigungsfunktion zum Entfernen von während der Tests erstellten AzureRM-Administratorrollen.
  • Remove-AbuseTestServicePrincipals bereinigt Missbrauchstests, indem die während der Tests erstellten Dienstprinzipale entfernt werden.
  • Test-AzureRMAddSelfToAzureRMRole wird in Missbrauchsvalidierungstests verwendet, um festzustellen, ob ein Dienstprinzipal mit bestimmten Rechten sich selbst die Rolle 'Benutzerzugriffsadministrator' über ein Abonnement gewähren kann.
  • Test-AzureRMCreateFunction wird in Missbrauchsvalidierungstests verwendet, um zu testen, ob ein Dienstprinzipal einer vorhandenen Funktions-App eine neue Funktion hinzufügen kann.
  • Test-AzureRMPublishAutomationAccountRunBook wird verwendet, um zu testen, ob ein Dienstprinzipal ein neues Runbook zu einem vorhandenen Automatisierungskonto veröffentlichen kann.
  • Test-AzureRMVMRunCommand wird verwendet, um zu testen, ob ein Prinzipal einen Befehl auf einer vorhandenen VM ausführen kann.
  • Test-MGAddMemberToNonRoleEligibleGroup wird verwendet, um zu testen, ob der Dienstprinzipal sich selbst zu einer nicht rollenberechtigten Gruppe hinzufügen kann.
  • Test-MGAddMemberToRoleEligibleGroup wird verwendet, um zu testen, ob der Dienstprinzipal sich selbst zu einer rollenberechtigten Gruppe hinzufügen kann.
  • Test-MGAddOwnerToNonRoleEligibleGroup wird verwendet, um zu testen, ob ein Dienstprinzipal sich selbst expliziten Besitz einer nicht rollenberechtigten Gruppe gewähren kann.
  • Test-MGAddOwnerToRoleEligibleGroup wird verwendet, um zu testen, ob ein Dienstprinzipal sich selbst expliziten Besitz einer rollenberechtigten Gruppe gewähren kann.
  • Test-MGAddRootCACert wird verwendet, um zu testen, ob ein Dienstprinzipal ein neues Stammzertifikat der Zertifizierungsstelle zum Mandanten hinzufügen kann.
  • Test-MGAddSecretToApp wird verwendet, um zu testen, ob der Dienstprinzipal einer vorhandenen App ein neues Geheimnis hinzufügen kann.
  • Test-MGAddSecretToSP wird verwendet, um zu testen, ob der Dienstprinzipal einem vorhandenen Dienstprinzipal ein neues Geheimnis hinzufügen kann.
  • Test-MGAddSelfAsOwnerOfApp wird in Missbrauchsvalidierungstests verwendet, um festzustellen, ob ein Dienstprinzipal mit einer bestimmten Berechtigung sich selbst Besitz einer vorhandenen Entra-App gewähren kann.
  • Test-MGAddSelfAsOwnerOfSP wird in Missbrauchsvalidierungstests verwendet, um festzustellen, ob ein Dienstprinzipal mit einer bestimmten Berechtigung sich selbst Besitz eines vorhandenen Entra-Dienstprinzipals gewähren kann.
  • Test-MGAddSelfToEntraRole wird in Missbrauchsvalidierungstests verwendet, um festzustellen, ob ein Dienstprinzipal mit einer bestimmten Berechtigung sich selbst zu einer Entra-Administratorrolle hinzufügen kann – z. B. Globaler Administrator.
  • Test-MGAddSelfToMGAppRole wird in Missbrauchsvalidierungstests verwendet, um festzustellen, ob ein Dienstprinzipal mit einer bestimmten Berechtigung sich selbst eine bestimmte MS Graph-App-Rolle ohne Administratorzustimmung gewähren kann.