
سكريبت لاختبار بيانات الاعتماد ضد خدمات الاتحاد في الدليل النشط (ADFS)، مما يسمح بهجمات رش كلمات المرور أو القوة العمياء.
برنامج نصي لاختبار بيانات الاعتماد ضد خدمات الاتحاد لـ Active Directory (ADFS)، مع حساب عنوان ADFS URL لمنظمة ما والسماح بهجمات رش كلمات المرور (password spraying) أو القوة العمياء (bruteforce).
الفكرة الرئيسية هي تنفيذ هجمات رش كلمات المرور مع تأخير عشوائي وطويل بين كل اختبار، واستخدام قائمة من الوكلاء (proxies) أو تور (Tor) لجعل الكشف من قبل الفريق الأزرق (Blue Team) أكثر صعوبة. كما يمكن تنفيذ هجمات القوة العمياء، أو اختبار بيانات الاعتماد بتنسيق username:password (على سبيل المثال من Pwndb). سيتم تخزين عمليات تسجيل الدخول التي تم اختبارها في ملف سجل لتجنب اختبارها مرتين.
./adfsbrute.py -t TARGET [-u USER] [-U USER_LIST] [-p PASSWORD] [-P PASSWORD_LIST] [-UL userpassword_list]
[-m MIN_TIME] [-M MAX_TIME] [-tp TOR_PASSWORD] [-pl PROXY_LIST] [-n NUMBER_OF_REQUESTS_PER_IP]
[-s STOP_ON_SUCCESS] [-r RANDOM_COMBINATIONS] [-d DEBUG] [-l LOG_FILE]
معلمات الهجمات هي:
* -t: النطاق المستهدف. مثال: test.com
* -u: اسم مستخدم واحد. مثال: [email protected]
* -U: ملف بقائمة أسماء المستخدمين. مثال: users.txt
* -p: كلمة مرور واحدة: مثال: Company123
* -P: ملف بقائمة كلمات المرور. مثال: passwords.txt
* -UP: ملف بقائمة بيانات الاعتماد بتنسيق "username:password". مثال: userpass.txt
* -m : القيمة الدنيا للثواني العشوائية للانتظار بين كل اختبار. الافتراضي: 30
* -M : القيمة القصوى للثواني العشوائية للانتظار بين كل اختبار. الافتراضي: 60
* -tp: كلمة مرور تور (تغيير عناوين IP باستخدام تور)
* -pl: استخدام قائمة وكلاء (تغيير عناوين IP باستخدام قائمة عناوين IP للوكلاء)
* -n: عدد الطلبات قبل تغيير عنوان IP (يُستخدم مع -tp أو -pl). الافتراضي: 1
* -s: التوقف عند النجاح، عند العثور على بيانات اعتماد صحيحة واحدة. الافتراضي: False
* -r: ترتيب عشوائي لمجموعة المستخدمين وكلمات المرور. الافتراضي: True
* -d: إظهار رسائل التصحيح. الافتراضي: True
* -l: موقع ملف السجل مع بيانات الاعتماد التي تم اختبارها بالفعل. الافتراضي: tested.txt
رش كلمات المرور بكلمة مرور "Company123"، وكلمة مرور تور هي "test123" وتغيير IP كل 3 طلبات:
python3 adfsbrute.py -t company.com -U users.txt -p Company123 -tp test123 -n 3
رش كلمات المرور بكلمة مرور "Company123"، وكلمة مرور تور هي "test123"، وتغيير IP لكل طلب، ووقت تأخير عشوائي بين 10 و20 ثانية، وعدم ترتيب المستخدمين بشكل عشوائي:
python3 adfsbrute.py -t company.com -U users.txt -p Company123 -tp test123 -m 10 -M 20 -r False
العثور على عنوان ADFS URL:
python3 adfsbrute.py -t company.com
لاستخدام تور لتغيير IP لكل طلب، يجب عليك تجزئة كلمة مرور:
tor --hash-password test123
في الملف /etc/tor/torrc، قم بإلغاء تعليق المتغير ControlPort والمتغير HashedControlPassword، وفي هذا الأخير أضف التجزئة:
ControlPort 9051
HashedControlPassword 16:7F314CAB402A81F860B3EE449B743AEC0DED9F27FA41831737E2F08F87
أعد تشغيل خدمة تور واستخدم كلمة المرور هذه كوسيطة للبرنامج النصي ("-tp test123" أو "--tor_password 123")
service tor restart
تم تنفيذ هذا البرنامج النصي للاختبار في عمليات التدقيق الأمني، لا تستخدمه دون الحصول على إذن مناسب من الشركة المالكة لـ ADFS وإلا فسوف تؤدي إلى حظر الحسابات.