
تعداد المستخدمين واكتشاف طرق المصادقة في Entra ID عبر واجهة API العامة GetCredentialType
قم بتعداد طرق المصادقة الخاصة بـ Microsoft Entra ID لعناوين البريد الإلكتروني باستخدام واجهة برمجة التطبيقات العامة GetCredentialType. هذه هي نفس النقطة الطرفية التي تستخدمها صفحة تسجيل الدخول من Microsoft عند إدخال اسم المستخدم. على عكس معظم الأدوات التي تستخدم طريقة GetCredentialType، تعرض CredSpy أيضًا طرق المصادقة المدعومة للحسابات الموجودة.
مفيد لتقييمات الأمان: تعداد المستخدمين، اكتشاف طريقة المصادقة المفضلة، وتحديد الحسابات التي تحتوي على كلمة مرور، Remote NGC (مثل إشعار الدفع بدون كلمة مرور)، FIDO2/مفاتيح المرور، أو مصادقة الشهادة.
يتطلب Python 3.10+.
pipx (موصى به):
# تثبيت pipx (تخطى هذه الخطوة إذا كان مثبتًا بالفعل)
apt install pipx
pipx ensurepath
# من PyPI (موصى به)
pipx install credspy
# أو من GitHub
pipx install git+https://github.com/RedByte1337/CredSpy.git
# من نسخة محلية
git clone https://github.com/RedByte1337/CredSpy.git
cd CredSpy
pipx install .
pip:
pip install .
# أو التشغيل بدون تثبيت
pip install -r requirements.txt
python credspy.py ...
بعد التثبيت، قم بتشغيل credspy من أي مكان:
credspy -h
# بريد إلكتروني واحد
credspy [email protected]
# ملف بريد إلكتروني (كل في سطر، # للتعليقات)
credspy emails.txt
# عبر وكيل (تم تعطيل التحقق من SSL لأدوات MITM)
credspy emails.txt --proxy http://127.0.0.1:8080
# تصدير النتائج إلى CSV
credspy emails.txt --csv results.csv
# حفظ قوائم البريد الإلكتروني المصفاة (قابلة للدمج)
credspy emails.txt \
--save-existing existing.txt \
--save-ngc ngc.txt \
--save-password-preferred password-preferred.txt
[!IMPORTANT] في الحالة النادرة التي يكون فيها RemoteNGC هي الطريقة الأساسية للمستخدم، فإن Microsoft ستقوم فورًا بتشغيل إشعار الدفع RemoteNGC إلى تطبيق Authenticator أثناء التعداد. الطريقة الوحيدة لتجنب ذلك هي ضبط
isRemoteNGCSupportedعلى false في طلبGetCredentialType. وهذا يؤدي إلى أن الاستجابة لن تعود بعد الآن بما إذا كان RemoteNGC مدعومًا. إذا كنت ترغب في تجنب إرسال أي إشعارات تلقائية ولا تحتاج إلى اكتشاف RemoteNGC، استخدم العلم--skip-ngc.
إذا كان ملف الإخراج موجودًا بالفعل، سيُطلب منك تأكيد الاستبدال (Y/n).
يتم عرض النتائج في الطرفية أثناء فحص كل بريد إلكتروني:
[email protected] | المفضلة: Fido (7) | المدعوم: كلمة المرور، RemoteNGC (PushNotification)، Fido (العدد: 3)
[email protected] | IfExistsResult: NotExist (1)
[email protected] | المفضلة: كلمة المرور (1) | المدعوم: كلمة المرور، RemoteNGC (PushNotification)
[email protected] | المفضلة: RemoteNGC (2) | المدعوم: كلمة المرور، RemoteNGC (PushNotification)
[email protected] | المفضلة: Fido (7) | المدعوم: كلمة المرور، Fido (العدد: 5)، الشهادة
إذا كان حساب البريد الإلكتروني موجودًا، فإن العمود الأول بعد عنوان البريد الإلكتروني سيظهر طريقة المصادقة المفضلة للمستخدم. العمود الأخير سيسرد طرق المصادقة الأخرى المدعومة مثل كلمة المرور، RemoteNGC، Fido (=مفاتيح المرور)، ومصادقة الشهادة.
كل هذه المعلومات مفيدة جدًا لأخذها في الاعتبار عند التحضير لهجمات التصيد.
بالنسبة لمصادقة Fido، يتم عرض عدد الإدخالات في قائمة السماح الخاصة بـ FidoParams التي تعيدها Microsoft. يمكن استخدام هذا كمؤشر لمعرفة عدد طرق مصادقة Fido التي سجلها المستخدم. ومع ذلك، يبدو أن هذا يشمل أيضًا مفاتيح Fido المحذوفة التي لم تعد مرتبطة بالحساب.
يتم طباعة ملخص في النهاية:
--- الملخص ---
موجود: 6/7
مقيد: 0/7
المفضلة: Fido 3/6، كلمة المرور 2/6، ...
المدعوم: كلمة المرور 6/6، RemoteNGC 1/6، Fido 3/6، الشهادة 2/6
نوع المجال: مُدار 6/6
--- ملفات الإخراج ---
CSV (results.csv): 7 إدخالات
Email, Exists, PreferredType, HasPassword, RemoteNGC, HasFido, HasCertAuth, DomainType
Exists, NotExist, …)PushNotification / ListSessions عند المعرفة، وإلا True/FalsesCtx) من صفحة تفويض Microsoft OAuthlogin.microsoftonline.com/common/GetCredentialTypeلا حاجة للمصادقة. يستخدم هذا نفس التدفق غير المصادق لواجهة تسجيل الدخول.
هذه الأداة مخصصة فقط لاختبارات الأمان والبحث المصرح بهما. استخدمها فقط ضد المستأجرين والحسابات التي تملكها أو لديك إذن كتابي صريح لاختبارها. المؤلفون غير مسؤولين عن سوء الاستخدام.
| العلم | الوصف |
|---|
target | عنوان بريد إلكتروني أو مسار إلى ملف نصي |
--proxy URL | توجيه كل الحركة عبر وكيل؛ يعطل التحقق من SSL (الصيغة: http://127.0.0.1:8080) |
--no-color | تعطيل الإخراج الملون في الطرفية |
--csv FILE | كتابة النتائج إلى CSV |
--save-existing FILE | حفظ عناوين البريد الإلكتروني الموجودة |
--save-ngc FILE | حفظ عناوين البريد الإلكتروني مع دعم RemoteNGC (مثل إشعار الدفع بدون كلمة مرور) |
--save-password-preferred FILE | حفظ عناوين البريد الإلكتروني الموجودة التي تكون كلمة المرور هي الطريقة المفضلة لديها |
--skip-ngc | تعطيل فحوصات RemoteNGC (يتجنب إشعارات الدفع عندما تكون RemoteNGC هي الطريقة المفضلة؛ يؤدي هذا أيضًا إلى تعطيل اكتشاف NGC) |