
تعداد المستخدمين واكتشاف طرق المصادقة في Entra ID عبر واجهة API العامة GetCredentialType
تعداد طرق المصادقة في Microsoft Entra ID لعناوين البريد الإلكتروني باستخدام واجهة GetCredentialType العامة. هذا هو نفس نقطة النهاية التي تستخدمها صفحة تسجيل الدخول في Microsoft عند إدخال اسم المستخدم. على عكس معظم الأدوات التي تستخدم طريقة GetCredentialType، يعرض CredSpy أيضًا طرق المصادقة المدعومة للحسابات الموجودة.
مفيد لتقييمات الأمان: تعداد المستخدمين، واكتشاف طريقة المصادقة المفضلة، وتحديد الحسابات التي تستخدم كلمة المرور، أو Remote NGC (مثل إشعار الدفع بدون كلمة مرور)، أو FIDO2/passkeys، أو مصادقة الشهادات.
يتطلب Python 3.10+.
pipx (موصى به):
# Install pipx (skip this if you already have it)
apt install pipx
pipx ensurepath
# From PyPI (recommended)
pipx install credspy
# Or from GitHub
pipx install git+https://github.com/RedByte1337/CredSpy.git
# From a local clone
git clone https://github.com/RedByte1337/CredSpy.git
cd CredSpy
pipx install .
pip:
pip install .
# or run without installing
pip install -r requirements.txt
python credspy.py ...
بعد التثبيت، شغّل credspy من أي مكان:
credspy -h
# Single email
credspy [email protected]
# File of emails (one per line, # for comments)
credspy emails.txt
# Through a proxy (SSL verification disabled for MITM tools)
credspy emails.txt --proxy http://127.0.0.1:8080
# Export results to CSV
credspy emails.txt --csv results.csv
# Save filtered email lists (combinable)
credspy emails.txt \
--save-existing existing.txt \
--save-ngc ngc.txt \
--save-password-preferred password-preferred.txt
| Flag | Description |
|---|---|
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) |
--delay <float> | ينتظر لعدد الثواني المحدد بين كل حساب. استخدمه عند فحص عدد كبير من الحسابات لتجنب تقييد المعدل |
[!IMPORTANT] في الحالة النادرة التي يكون فيها RemoteNGC مضبوطًا كطريقة أساسية للمستخدم، فإن Microsoft ستُطلق فورًا إشعار الدفع RemoteNGC إلى تطبيق Authenticator أثناء التعداد. الطريقة الوحيدة لتجنب ذلك هي ضبط
isRemoteNGCSupportedعلى false في طلبGetCredentialType. ونتيجة لذلك، لن تُرجع الاستجابة بعد الآن ما إذا كان RemoteNGC مدعومًا. إذا كنت تريد تجنب إرسال أي إشعارات تلقائية ولا تحتاج إلى اكتشاف RemoteNGC، فاستخدم علامة--skip-ngc.
إذا كان أي ملف مخرجات موجودًا بالفعل، فسيُطلب منك تأكيد الاستبدال (Y/n).
تتدفق النتائج إلى الطرفية أثناء فحص كل بريد إلكتروني:
[email protected] | Preferred: Fido (7) | Supported: Password, RemoteNGC (PushNotification), Fido (Count: 3)
[email protected] | IfExistsResult: NotExist (1)
[email protected] | Preferred: Password (1) | Supported: Password, RemoteNGC (PushNotification)
[email protected] | Preferred: RemoteNGC (2) | Supported: Password, RemoteNGC (PushNotification)
[email protected] | Preferred: Fido (7) | Supported: Password, Fido (Count: 5), Certificate
إذا كان حساب البريد الإلكتروني موجودًا، فسيعرض العمود الأول بعد عنوان البريد الإلكتروني طريقة المصادقة المفضلة للمستخدم. وسيسرد العمود الأخير طرق المصادقة الأخرى المدعومة مثل Password وRemoteNGC وFido (=PassKeys) ومصادقة الشهادات.
كل هذه المعلومات مفيدة جدًا لأخذها في الاعتبار عند التحضير لهجمات التصيّد.
بالنسبة لمصادقة Fido، يظهر عدد الإدخالات في AllowList الخاصة بـ FidoParams التي تُرجعها Microsoft. يمكن استخدام هذا كمؤشر لمعرفة عدد طرق مصادقة Fido التي سجّلها المستخدم. ومع ذلك، يبدو أن هذا يتضمن أيضًا مفاتيح Fido المحذوفة التي لم تعد مرتبطة بالحساب.
تُطبع ملخص في النهاية:
--- Summary ---
Exists: 6/7
Throttled: 0/7
Preferred: Fido 3/6, Password 2/6, ...
Supported: Password 6/6, RemoteNGC 1/6, Fido 3/6, Certificate 2/6
DomainType: Managed 6/6
--- Output files ---
CSV (results.csv): 7 entries
Email, Exists, PreferredType, HasPassword, RemoteNGC, HasFido, HasCertAuth, DomainType
Exists, NotExist, …)PushNotification / ListSessions عند معرفته، وإلا True/FalsesCtx) من صفحة تفويض Microsoft OAuthlogin.microsoftonline.com/common/GetCredentialTypeلا يتطلب مصادقة. يستخدم هذا نفس التدفق غير المُصادَق المستخدم في واجهة تسجيل الدخول.
هذه الأداة مخصصة لاختبارات الأمان والبحث المصرّح به فقط. استخدمها فقط ضد المستأجرين والحسابات التي تملكها أو لديك إذن كتابي صريح لاختبارها. المؤلفون غير مسؤولين عن سوء الاستخدام.