Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
BARK — BloodHound Attack Research Kit | Kitploit
أدوات/GitHubGitHub/bloodhoundad/bark
تصعيد الامتيازاتالاستطلاعالاستغلالجمع المعلوماتاختبار الاختراقأمن السحابةإدارة الهوية والوصول (IAM)المصادقةالفريق الأحمر
GitHubbloodhoundad/bark

BARK

BloodHound Attack Research Kit

60471منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع

BARK

BARK Logo

BARK هي اختصار لـ BloodHound Attack Research Kit. وهي سكريبت PowerShell صُمم لمساعدة فريق BloodHound Enterprise في البحث والتحقق المستمر من بدائل الإساءة (abuse primitives). تركز BARK حالياً على مجموعة منتجات وخدمات Microsoft Azure.

لا تتطلب BARK أي تبعيات خارجية. صُممت دوال BARK لتكون بسيطة وقابلة للصيانة قدر الإمكان. معظم الدوال هي مجرد أغلفة بسيطة لإجراء طلبات إلى نقاط نهاية REST API المختلفة. حتى أن الدوال الأساسية في BARK لا تحتاج بعضها البعض - يمكنك سحب أي دالة من BARK تقريباً وستعمل بشكل مثالي كدالة مستقلة في سكريبتاتك الخاصة.

المؤلف والمساهمون

المؤلف الأساسي: Andy Robbins @_wald0

المساهمون:

  • Jonas Bülow Knudsen @Jonas_B_K
  • Fabian Bader @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 باستخدام نقطة (dot import) كما يلي:

root@kitploit:~
. .\BARK.ps1

اضغط Enter، وسيكون لديك الآن إمكانية الوصول إلى جميع دوال BARK في جلسة PowerShell الخاصة بك.

تشغيل أول أوامر BARK

باستثناءات قليلة جداً، تتطلب نقاط نهاية Azure API المصادقة للتفاعل معها. تأتي BARK مع بعض الدوال التي ستساعدك في الحصول على الرموز المميزة (tokens) اللازمة للتفاعل مع MS Graph وAzure REST APIs. أي دالة في BARK تتفاعل مع Azure API تتطلب المصادقة، ستحتاج إلى تزويدها برمز مميز.

لنفترض أنك تريد سرد جميع المستخدمين في مستأجر Entra ID. تحتاج أولاً إلى الحصول على رمز مميز مُحدد النطاق لـ MS Graph. هناك طرق عديدة للحصول على هذا الرمز:

إذا كان لديك اسم مستخدم/كلمة مرور لمستخدم Entra في ذلك المستأجر، يمكنك أولاً الحصول على رمز تحديث (refresh token) للمستخدم باستخدام دالة Get-EntraRefreshTokenWithUsernamePassword من BARK:

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 (Azure Portal Auth Refresh token) باستخدام رمز تحديث يقدمه المستخدم.
  • Get-AzureRMTokenWithClientCredentials يطلب JWT مُحدد النطاق لـ AzureRM باستخدام معرف العميل وسر. مفيد للمصادقة كمدير خدمة (service principal) في Entra.
  • Get-AzureRMTokenWithPortalAuthRefreshToken يطلب JWT مُحدد النطاق لـ AzureRM باستخدام رمز تحديث بوابة Azure يقدمه المستخدم.
  • Get-AzureRMTokenWithRefreshToken يطلب JWT مُحدد النطاق لـ AzureRM باستخدام رمز تحديث يقدمه المستخدم.
  • Get-AzureRMTokenWithUsernamePassword يطلب JWT مُحدد النطاق لـ AzureRM باستخدام اسم مستخدم وكلمة مرور يقدمهما المستخدم.
  • Get-EntraRefreshTokenWithUsernamePassword يطلب مجموعة من الرموز المميزة، بما في ذلك رمز التحديث، من login.microsoftonline.com باستخدام اسم مستخدم وكلمة مرور يقدمهما المستخدم. سيفشل هذا إذا كان المستخدم لديه متطلبات المصادقة متعددة العوامل (MFA) أو متأثر بسياسة الوصول الشرطي (Conditional Access Policy).

الدوال القائمة على رمز التحديث في BARK مبنية على دوال في TokenTactics بواسطة Steve Borosh.

دوال تعداد 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.

دوال تعداد Azure Resource Manager

  • Get-AllAzureManagedIdentityAssignments يجمع جميع تعيينات الهوية المُدارة.
  • Get-AllAzureRMAKSClusters يجمع جميع مجموعات خدمات Kubernetes تحت اشتراك.
  • Get-AllAzureRMAutomationAccounts يجمع جميع حسابات الأتمتة تحت اشتراك.
  • Get-AllAzureRMAzureContainerRegistries يجمع جميع سجلات الحاويات تحت اشتراك.
  • Get-AllAzureRMFunctionApps يجمع جميع تطبيقات الدوال (function apps) تحت اشتراك.
  • Get-AllAzureRMKeyVaults يجمع جميع خزائن المفاتيح تحت اشتراك.
  • Get-AllAzureRMLogicApps يجمع جميع تطبيقات المنطق (logic apps) تحت اشتراك.
  • Get-AllAzureRMResourceGroups يجمع جميع مجموعات الموارد تحت اشتراك.
  • Get-AllAzureRMSubscriptions يجمع جميع اشتراكات AzureRM.
  • Get-AllAzureRMVMScaleSetsVMs يجمع جميع الأجهزة الافتراضية ضمن مجموعة مقياس VM.
  • Get-AllAzureRMVMScaleSets يجمع جميع مجموعات مقياس الأجهزة الافتراضية تحت اشتراك.

دوال تعداد Intune

  • Get-IntuneManagedDevices يجمع الأجهزة المُدارة بـ Intune.
  • Get-IntuneRoleDefinitions يجمع تعريفات أدوار Intune المتاحة.

دوال إساءة استخدام Entra

  • Add-MemberToEntraGroup يحاول إضافة كيان (principal) إلى مجموعة 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 يحاول تعيين كلمة مرور مستخدم آخر إلى قيمة جديدة يقدمها المستخدم.

دوال إساءة استخدام Azure Resource Manager

  • Invoke-AzureRMAKSRunCommand يوجه مجموعة AKS لتنفيذ أمر.
  • Invoke-AzureRMVMRunCommand يحاول تنفيذ أمر على جهاز افتراضي.
  • Invoke-AzureRMWebAppShellCommand يحاول تنفيذ أمر على حاوية تطبيق ويب.
  • Invoke-AzureVMScaleSetVMRunCommand يحاول تنفيذ أمر على جهاز افتراضي ضمن مجموعة مقياس VM.
  • New-AzureAutomationAccountRunBook يحاول إضافة دفتري (runbook) إلى حساب أتمتة.
  • New-AzureKeyVaultAccessPolicy يحاول منح كيان صلاحيات "Get" و"List" على أسرار خزنة المفاتيح ومفاتيحها وشهاداتها.
  • New-AzureRMRoleAssignment يحاول منح تعيين دور AzureRM يحدده المستخدم لكيان معين على نطاق معين.
  • New-PowerShellFunctionAppFunction يحاول إنشاء دالة PowerShell جديدة في تطبيق دوال.

الدوال التعريفية (Meta Functions)

  • 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 ويمنح كل مدير خدمة الدور المناسب. يُرجع بيانات اعتماد نصية عادية تم إنشاؤها لكل مدير خدمة.
  • New-TestAppReg ينشئ كائن تسجيل تطبيق لغرض صريح هو اختبار التحقق من الإساءة.
تنزيل الأداة
  • 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 كمدخل ويقوم بتحليله لك. مفيد للتحقق من الجمهور (audience) والمطالبات (claims) الصحيحة للرمز.
  • Get-EntraTierZeroServicePrincipals يجمع مديري الخدمة في Entra الذين لديهم تعيين دور مسؤول Entra من المستوى الصفري (Tier Zero) أو تعيين دور تطبيق MS Graph من المستوى الصفري.
  • Get-MGAppRoles يجمع أدوار التطبيق المتاحة من مدير خدمة MS Graph.
  • 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 يجمع تطبيق ويب.
  • New-TestSP ينشئ مدير خدمة جديدًا ويربطه بالتطبيق الذي تم إنشاؤه بواسطة الدالة أعلاه.
  • Remove-AbuseTestAzureRMRoles هي دالة تنظيف لإزالة أدوار مسؤول AzureRM التي تم إنشاؤها أثناء الاختبار.
  • Remove-AbuseTestServicePrincipals تنظف اختبارات الإساءة عن طريق إزالة مديري الخدمة الذين تم إنشاؤهم أثناء الاختبار.
  • Test-AzureRMAddSelfToAzureRMRole يُستخدم في اختبار التحقق من الإساءة لتحديد ما إذا كان بإمكان مدير خدمة مع صلاحيات معينة منح نفسه دور User Access Admin على اشتراك.
  • Test-AzureRMCreateFunction يُستخدم في اختبار التحقق من الإساءة لاختبار ما إذا كان بإمكان مدير خدمة إضافة دالة جديدة إلى تطبيق دوال موجود.
  • Test-AzureRMPublishAutomationAccountRunBook يُستخدم لاختبار ما إذا كان بإمكان مدير خدمة نشر دفتري جديد إلى حساب أتمتة موجود.
  • Test-AzureRMVMRunCommand يُستخدم لاختبار ما إذا كان بإمكان كيان تشغيل أمر على جهاز افتراضي موجود.
  • Test-MGAddMemberToNonRoleEligibleGroup يُستخدم لاختبار ما إذا كان بإمكان مدير الخدمة إضافة نفسه إلى مجموعة غير مؤهلة للدور.
  • Test-MGAddMemberToRoleEligibleGroup يُستخدم لاختبار ما إذا كان بإمكان مدير الخدمة إضافة نفسه إلى مجموعة مؤهلة للدور.
  • Test-MGAddOwnerToNonRoleEligibleGroup يُستخدم لاختبار ما إذا كان بإمكان مدير خدمة منح نفسه ملكية صريحة لمجموعة غير مؤهلة للدور.
  • Test-MGAddOwnerToRoleEligibleGroup يُستخدم لاختبار ما إذا كان بإمكان مدير خدمة منح نفسه ملكية صريحة لمجموعة مؤهلة للدور.
  • Test-MGAddRootCACert يُستخدم لاختبار ما إذا كان بإمكان مدير خدمة إضافة شهادة CA جذر جديدة إلى المستأجر.
  • Test-MGAddSecretToApp يُستخدم لاختبار ما إذا كان بإمكان مدير الخدمة إضافة سر جديد إلى تطبيق موجود.
  • Test-MGAddSecretToSP يُستخدم لاختبار ما إذا كان بإمكان مدير الخدمة إضافة سر جديد إلى مدير خدمة موجود.
  • Test-MGAddSelfAsOwnerOfApp يُستخدم في اختبار التحقق من الإساءة لتحديد ما إذا كان بإمكان مدير خدمة مع صلاحية معينة منح نفسه ملكية تطبيق Entra موجود.
  • Test-MGAddSelfAsOwnerOfSP يُستخدم في اختبار التحقق من الإساءة لتحديد ما إذا كان بإمكان مدير خدمة مع صلاحية معينة منح نفسه ملكية مدير خدمة Entra موجود.
  • Test-MGAddSelfToEntraRole يُستخدم في اختبار التحقق من الإساءة لتحديد ما إذا كان بإمكان مدير خدمة مع صلاحية معينة إضافة نفسه إلى دور مسؤول Entra - على سبيل المثال، المسؤول العام (Global Admin).
  • Test-MGAddSelfToMGAppRole يُستخدم في اختبار التحقق من الإساءة لتحديد ما إذا كان بإمكان مدير خدمة مع صلاحية معينة منح نفسه دور تطبيق MS Graph معين دون موافقة المسؤول.