## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-CROWDSTRIKE-CRT
## أداة تقارير CrowdStrike لـ Azure (CRT)
تقوم هذه الأداة بالاستعلام عن التكوينات التالية في مستأجر Azure AD/O365 والتي يمكنها إلقاء الضوء على الأذونات وإعدادات التكوين التي يصعب العثور عليها لمساعدة المؤسسات في تأمين هذه البيئات.
Exchange Online (O365):
* تكوين الاتحاد (Federation Configuration)
* ثقة الاتحاد (Federation Trust)
* إعدادات وصول العميل المكونة على علب البريد
* قواعد إعادة توجيه البريد للنطاقات البعيدة
* قواعد إعادة توجيه SMTP لعلب البريد
* قواعد نقل البريد
* المندوبون الذين تم منحهم صلاحية 'Full Access'
* المندوبون الذين تم منحهم أي صلاحيات
* المندوبون الذين تم منحهم صلاحيات 'Send As' أو 'SendOnBehalf'
* المستخدمون الممكّنون لـ Exchange Online PowerShell
* المستخدمون الذين تم تمكين 'Audit Bypass' لهم
* علب البريد المخفية من قائمة العناوين العالمية (GAL)
* جمع إعدادات تسجيل تدقيق المسؤول.
Azure AD:
* كائنات خدمة رئيسية (Service Principal) مع KeyCredentials
* تقرير مجموعات المسؤولين في O365
* الأذونات المفوّضة وأذونات التطبيق
الاستعلام عن معلومات شركاء المستأجر: لعرض معلومات شركاء المستأجر، بما في ذلك الأدوار المخصصة لشركائك، يجب تسجيل الدخول إلى مركز إدارة Microsoft 365 كمسؤول عام:
https://admin.microsoft.com/AdminPortal/Home#/partners
### المتطلبات الأساسية:
وحدات PowerShell التالية مطلوبة وسيتم تثبيتها تلقائيًا:
* ExchangeOnlineManagement
* AzureAD
ملاحظة: لإرجاع النطاق الكامل للتكوينات التي يتم الاستعلام عنها، يلزم الدور التالي:
* مسؤول عام (Global Admin)
عندما لا تكون صلاحيات المسؤول العام متاحة، ستُعلمك الأداة بالمعلومات التي لن تكون متاحة لك نتيجة لذلك.
### الاستخدام:
بدون تحديد معلمات: _سيتم إنشاء مجلد باسم التاريخ والوقت (YYYYDDMMTHHMM) تلقائيًا في الدليل الذي يتم تشغيل البرنامج النصي منه. ستطلب طريقة المصادقة الافتراضية لكل اتصال للتوافق مع MFA._
root@kitploit:~
.\Get-CRTReport.ps1
معامل `-BasicAuth`: _[اختياري] إذا لم يتم فرض MFA لمستخدمك الأساسي، يمكنك استخدام هذا المعامل الذي سيطلب المصادقة مرة واحدة فقط ويخزن بيانات الاعتماد باستخدام`Get-Credential`. (غير موصى به)_
root@kitploit:~
.\Get-CRTReport.ps1 -BasicAuth
معامل `-JobName`: _[اختياري] استخدم معامل JobName للتمييز بين المستأجرين المختلفين. إذا لم يتم تحديد JobName، فسيتم وضع مجلد بتنسيق التاريخ/الوقت داخل دليل العمل._
root@kitploit:~
.\Get-CRTReport.ps1 -JobName MyJobName
معامل `-WorkingDirectory`: _[اختياري] إذا كنت ترغب في تحديد دليل عمل مختلف لمهامك، يمكنك القيام بذلك باستخدام هذا المعامل. دليل العمل الافتراضي هو الدليل الذي يتم تشغيل البرنامج النصي منه._
root@kitploit:~
.\Get-CRTReport.ps1 -JobName MyJobName -WorkingDirectory 'C:\Path\to\Job\Folder'
معامل `-Commands`: _[اختياري] باستخدام هذا المعامل، حدد الأوامر المحددة التي تريد تشغيلها بين علامات اقتباس، مفصولة بفاصلة أو مسافة._
root@kitploit:~
.\Get-CRTReport.ps1 -JobName MyJobName -WorkingDirectory 'C:\Path\to\Job\Folder' -Commands "Command1,Command2"
معاملا `-AzureEnvironmentName` و `-ExchangeEnvironmentName`: _[اختياري] باستخدام هذين المعاملين، حدد أسماء بيئات Azure أو Exchange. باستخدام الإكمال التلقائي (Tab) يمكنك البحث عن القيم المقبولة._
root@kitploit:~
.\Get-CRTReport.ps1 -ExchangeEnvironmentName O365USGovGCCHigh -AzureEnvironmentName AzureUSGovernment
الأوامر المتاحة:
root@kitploit:~
FedConfig
FedTrust
ClientAccess
RemoteDomains
SMTPForward
TransportRules
FullAccessGranted
AnyAccessGranted
SendAsGranted
EXOPowerShell
AuditBypassEnabled
HiddenMailboxes
KeyCredentials
O365AdminGroups
DelegateAppPerms
AdminAuditLogConfig
معامل `-Interactive`: _[اختياري] قد تستغرق بعض الأوامر وقتًا طويلاً للمعالجة حسب كمية البيانات في المستأجر. باستخدام معامل Interactive، سيكون لديك خيار تخطي أي أمر معين قبل تشغيل الوحدة النمطية._
root@kitploit:~
.\Get-CRTReport.ps1 -JobName MyJobName -WorkingDirectory 'C:\Path\to\Job\Folder' -Interactive
### ملخص التقرير:
مع كل تشغيل، ستقوم CRT بإخراج تقرير لكل استعلام بصيغة json بالإضافة إلى صيغ .TXT و .CSV الأكثر قابلية للقراءة:
بدون تحديد معلمات: _سيتم إنشاء مجلد باسم التاريخ والوقت (YYYYDDMMTHHMM) تلقائيًا في الدليل الذي يتم تشغيل البرنامج النصي منه. لدعم MFA، ستطلب طريقة المصادقة الافتراضية من المستخدم تسجيل الدخول لكل اتصال._
* `YYYYDDMMTHHMM\output.log` (نسخة مطبوعة من سجل وحدة التحكم)
* `YYYYDDMMTHHMM\_CRTReportSummary.txt` (ملخص للبرامج النصية التي تم تشغيلها ونصائح تحقيق للإرشاد)
* `YYYYDDMMTHHMM\Reports\<report>.csv` (تقرير بصيغة CSV، حيثما ينطبق)
* `YYYYDDMMTHHMM\Reports\<report>.txt` (تقرير بصيغة TXT، حيثما ينطبق)
* `YYYYDDMMTHHMM\Reports\json\<report>.json` (كل تقرير مصحوب بمخرجات JSON لمزيد من التفصيل)
### المشكلات المعروفة:
* محاولة الاتصال بـ Exchange Online باستخدام تسجيلات الدخول الموحدة (Federated) لا تعمل حاليًا أثناء محاولة الاتصال بكل من Exchange Online و Azure AD في نفس جلسة PowerShell.
* قد يؤدي استرداد نتائج أذونات Any/FullAccess (أوامر AnyAccessGranted و FullAccessGranted) في بعض الحالات إلى ظهور خطأ وقد لا يكتمل بالكامل. قد يظل تشغيل الأمر يدويًا ناجحًا:
root@kitploit:~
Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxPermission | Where-Object { ($_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF")} | Export-Csv "AnyAssignedPerms.csv" -NoTypeInformation -Encoding Default
Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxPermission | Where-Object { ($_.AccessRights -eq "FullAccess") -and ($_.IsInherited -eq $false) -and -not ($_.User -like "NT AUTHORITY\SELF")} | Export-Csv "FullAccessPerms.csv" -NoTypeInformation -Encoding Default
### كيف يمكنني المساهمة؟
إذا وجدت خطأ، يرجى استخدام علامة التبويب "Issues" للإبلاغ عن مشكلة جديدة أو إضافة تعليقاتك إلى مشكلة قائمة.
إذا كانت لديك أي توصيات للأداة أو تحتاج إلى تصعيد عاجل، يرجى إرسال بريد إلكتروني إلى: some-email@example.com.