
عميل MSSQL لبيئات SCCM، يتيح الاستطلاع، وتنفيذ PowerShell عن بُعد على العملاء المُدارين، واستخراج الأسرار الحساسة مثل بيانات اعتماد NAA وإعدادات تطبيقات Azure AD.
عميل MSSQL مخصص لاستكشاف واستغلال قاعدة بيانات SCCM.
$ pipx install git+https://github.com/synacktiv/sccmsqlclient/
يمكنك التثبيت عن طريق استنساخ المستودع وتثبيت التبعيات.
$ git clone https://github.com/synacktiv/sccmsqlclient
$ cd sccmsqlclient
$ python3 -m venv .venv && source .venv/bin/activate
$ python3 -m pip install -r requirements.txt
يستخدم sccmsqlclient.py نفس نموذج المصادقة وبناء الجملة الذي يستخدمه mssqlclient.py من Impacket، لأنه مبني على نفس تنفيذ بروتوكول TDS (Tabular Data Stream) الخاص بـ MSSQL.
إذا كنت بالفعل معتادًا على أدوات Impacket، فإن صيغة الاستخدام وتسجيل الدخول متطابقة.
$ python3 sccmsqlclient.py -windows-auth 'DOMAIN/USER:password'@mp.local
سرد مواقع وخوادم SCCM في تسلسل هرمي متعدد المواقع.
> sccm_sites
> sccm_servers
تعداد خوادم البنية التحتية لـ SCCM والأدوار المخصصة لها داخل التسلسل الهرمي.
> sccm_sysreslist [ROLE_NAME]
> sccm_mp
> sccm_dp
تقوم هذه المجموعة من الأوامر بالاستعلام عن بيانات موارد النظام وتعيين الأدوار في SCCM من أجل رسم خريطة لمكونات البنية التحتية ومسؤولياتها.
sccm_sysreslist → يعرض جميع موارد النظام المسجلة في SCCM وأدوارهاsccm_sysreslist [ROLE_NAME] → يفلتر النتائج حسب اسم الدور (مثل Management Point أو Distribution Point)sccm_mp → اختصار لعرض جميع نقاط الإدارة (Management Points)sccm_dp → اختصار لعرض جميع نقاط التوزيع (Distribution Points)سرد الأجهزة المعروفة، مع تصفية جزئية حسب الاسم أو عنوان IP
> sccm_devices [FILTER]
سرد العملاء مع حالة قناة BGB / الإشعارات الخاصة بهم (OnlineStatus=0|1)
> sccm_devices_bgbstatus [FILTER]
استغلال ميزة Run Scripts لتنفيذ سكربتات PowerShell على الأجهزة المُدارة
تعريف سكربت PowerShell مباشرة من نص سلسلة.
> set_ps1_script "<string>"
مثال:
> set_ps1_script "Get-Process | Select-Object -First 10"
تحميل سكربت من ملف .ps1 محلي.
مثال:
> load_ps1_script ./script.ps1
تنفيذ سكربت تم تعريفه مسبقًا ضد مورد SCCM مستهدف.
> sccm_run_script <RESOURCE_ID>
مثال:
> sccm_run_script 16777219
عند تنفيذه، يولد هذا الأمر معرّفين GUID:
يتم تخزين هذه المعرّفات تلقائيًا في الذاكرة وإعادة استخدامها بواسطة الأوامر التالية:
last_task_outputllast_task_output_printlast_task_cleanيتيح لك ذلك العمل على أحدث تنفيذ دون تحديد المعرّفات GUID يدويًا.
عرض نتائج أحدث مهمة تم إطلاقها عبر sccm_run_script.
> last_task_output
يعمل هذا على استرجاع مخرجات التنفيذ الخام المخزنة في الذاكرة من آخر تنفيذ لسكربت تشغيل SCCM.
عرض مخرجات تنفيذ آخر مهمة بتنسيق قابل للقراءة البشرية.
> last_task_output_print
يعمل هذا على تنسيق وتنظيف المخرجات الخام من آخر تنفيذ لسكربت تشغيل SCCM لتسهيل القراءة والتفسير.
استرجاع حالة التنفيذ لمهمة أو سكربت.
> sccm_ScriptsExecutionStatus [TASK_GUID|SCRIPT_GUID]
أمثلة:
> sccm_ScriptsExecutionStatus
> sccm_ScriptsExecutionStatus 4F3A1B2C-AAAA-BBBB-CCCC-1234567890AB
إزالة أحدث مهمة SCCM متعقبة.
> last_task_clean
إزالة مهمة مجموعة خلفية (BGB) محددة.
> sccm_BGB_Tasks_clean <TASK_GUID>
مثال:
> sccm_BGB_Tasks_clean 4F3A1B2C-AAAA-BBBB-CCCC-1234567890AB
حذف كائن Run Script من SCCM.
> sccm_script_delete <SCRIPT_GUID>
مثال:
> sccm_script_delete 7F2C9D11-1111-2222-3333-ABCDEF987654
تسمح هذه الأوامر بتعداد واستخراج الأسرار الحساسة المتعلقة بـ SCCM مثل حسابات الوصول إلى الشبكة (Network Access Accounts) وبيانات اعتماد Client Push وإعدادات تطبيقات Azure AD. يعتمد فك التشفير على تنفيذ سكربت عن بعد عبر SCCM Run Scripts.
استرجاع حسابات مستخدمي SCCM المُعدّة لعمليات مميزة مثل حسابات الوصول إلى الشبكة (NAA) أو حسابات تثبيت Client Push.
> sccm_useraccounts
تعداد إعدادات تطبيقات Azure AD المخزنة داخل SCCM.
> sccm_add_apps
تنفيذ سكربت عن بعد على نقطة إدارة SCCM أو عميل مُدار من أجل فك تشفير كتل الأسرار المخزنة.
> sccm_decrypt_blob [RESOURCE_ID] [HEXBLOB]
يستخدم هذا الأمر:
RESOURCE_ID صالحًا لخادم موقع أو عميل مُدار بحالة وكيل سليمة (انظر sccm_devices_bgbstatus)sccm_add_apps أو sccm_useraccountsيتم التنفيذ عن بعد، ويُعاد الناتج المفكوك عبر قناة تنفيذ SCCM Run Script.