
Azure AD Password Checker
في بيئة Azure AD، من الممكن تحديد ما إذا كان المستخدم قد عطّل المصادقة متعددة العوامل (MFA) دون الحاجة إلى صلاحيات خاصة. يمكن تحقيق ذلك من خلال تحليل تاريخ إنشاء الحساب وتاريخ آخر تغيير لكلمة المرور.
إذا كان تاريخ ووقت إنشاء الحساب يطابق تاريخ ووقت آخر تغيير لكلمة المرور، فقد يشير ذلك إلى عدم حدوث أي تفاعل بشري منذ إنشاء الحساب، وأن المستخدم لم يتمكن من تفعيل المصادقة متعددة العوامل (MFA) أو تغيير كلمة المرور الخاصة به. وهناك 'حالات شاذة' أخرى مثل أن يكون تاريخ تغيير كلمة المرور أقدم من تاريخ الإنشاء. وهذا يشير أيضًا إلى أن المصادقة متعددة العوامل (MFA) لا يمكن تفعيلها لأن المستخدم لم يكن قد أُنشئ بعد!
تحديث في 16-10-2023:
تحديث في 18-02-2024:
يمكن أن تكون هذه المعلومات مفيدة لتحديد المخاطر الأمنية المحتملة، وهي مصممة للاستخدام من قبل فرق الاختراق (Red Teams) وفرق الدفاع (Blue Teams) على حد سواء.
يتطلب هذا الأداة ملف قاعدة بيانات roadrecon أو ملف JSON الذي تم استخراجه بمساعدة خيار --code-javascript. أداة Roadrecon مطورة بواسطة dirkjanm ويمكن تنزيلها من جيثب https://github.com/dirkjanm/ROADtools أو عبر pip install roadrecon.
للاستخدام انظر:
python3 azurepwchecker.py
usage: azurepwchecker.py [-h] [--roadrecon-dump] [--roadrecon-dump-mfa] [-d DB] [-m] [-l] [-ll] [-lll] [-la] [-lo]
[-ji JSON_INPUT] [-c]
Azure AD Password Checker - This is a parser for generated JSON file or the roadrecon database file designed for use by both red and blue teams.
Database can be created when using --code-javascript option to extract 'merged_users.json' file with be created to later input this file with --json-input argument.
And roadrecon generated roadrecon.db file can be used! roadrecon is developed by https://github.com/dirkjanm credits to him!
options:
-h, --help show this help message and exit
-d DB, --db DB Specify the path to the 'roadrecon.db' database file, default is this location
-m, --mfa-list User Accounts without MFA (No privileged user required)! This argument helps identify user
accounts that have not enabled Multi-Factor Authentication (MFA). If an account's creation
date and time match its last password change date and time, it may indicate that no human
interaction has occurred since the account was created, and the user has not been able to
enable MFA or change their password. And there are other 'anomalies' such as the password
change date being older than the creation date. This suggests also that Multi-Factor
Authentication (MFA) couldn't be enabled because the User wasn't created yet! :-]
-mo OUTFILE, --outfile OUTFILE
Output users with MFA anomalies to file
-l, --pw-month User accounts that had their passwords changed last month
-ll, --pw-year User accounts that had their passwords changed last year
-lll, --pw-older User accounts that haven't changed their passwords in a long time, oldest first
-la, --admin User accounts that are members of 'Admin' named groups, including 'Global Reader'
-lo, --out-of-hours User password change that occurred outside of office hours, specifically between 5:00 PM
(17:00) and 8:00 AM (08:00) on weekdays, as well as on Saturdays and Sundays
-ji JSON_INPUT, --json-input JSON_INPUT
Provide the JSON file imported from your web browser's console using JavaScript. For
'createdDateTime' and 'lastPasswordChange' details, ensure you download the JSON output using
the '--code-javascript' option.
-c, --code-javascript
Perform extraction even if 'azurepwchecker.py' or 'roadrecon' is unavailable. This script
enables extraction through the JavaScript console of a web browser. To proceed, ensure you
have a valid account to log in at https://portal.azure.com/#view/Microsoft_AAD_UsersAndTenants
/UserManagementMenuBlade/~/AllUsers or an active session on a computer. Copy and paste the
provided JavaScript code into the browser's console. Once the session is validated and you
have the necessary permissions, a JSON file named 'merged_users.json' will be generated. You
can then import it using the following command as example: 'azurepwchecker.py --json-input
merged_users.json -m'
-v, --version show program's version number and exit
run roadrecon first:
(Run the following command to install the tool "pip install roadrecon)"
--roadrecon-dump "roadrecon dump" command or do it with roadrecon
--roadrecon-dump-mfa "roadrecon dump --mfa" command (requires privileged access) or do it with roadrecon
azurepwchecker.py --code-javascript أو ملف js في المجلد:اتبع هذه الخطوات لاسترداد قائمة بالمستخدمين مع معلومات حساباتهم باستخدام البرنامج النصي المقدم.
تسجيل الدخول إلى بوابة Azure
الوصول إلى إدارة المستخدمين
فتح أدوات المطوّر
F12 في متصفح الويب لفتح أدوات المطوّر.تنفيذ البرنامج النصي
استرداد UsersList وUserInfo
تنزيل معلومات المستخدم المدمجة
merged_users.json إذا سارت الأمور بسلاسة.التشغيل على Azure AD Password Checker
azurepwchecker.py --json-input merged_users.jsonانظر مثالاً:
انظر المقدمة:
تحديث 16-10-2023:

كيفية استخدام وسيط --code-javascript لإنشاء قائمة بالمستخدمين في بوابة Azure، والتي يمكن استيرادها بعد ذلك باستخدام الأمر azurepwchecker.py --json-input merged_users.json:
تحديث 13-02-2024:
لقد قمت برفع نسخة معدّلة من GraphRunner من @dafthack وكل الفضل يعود له. في هذه النسخة المعدّلة، أضفت ميزة جديدة تتيح لك قراءة ملفات HAR مباشرة من جهاز "الضحية". تساعد هذه الوظيفة الجديدة في فحص ومراجعة رموز الوصول (Access Tokens) للوصول إلى صلاحيات أو نطاقات مختلفة. بالإضافة إلى ذلك، إذا كانت صلاحية رمز الوصول قد انتهت، تتيح هذه النسخة استخدام رمز التحديث (Refresh Token) لإنشاء رمز وصول جديد. هذه العملية حساسة للوقت، لكنها تلغي الحاجة إلى أسماء المستخدمين وكلمات المرور إذا كنت قد سجّلت الدخول بالفعل إلى بيئة Office365، لأنها تتطلب فقط رموز الجلسة الموجودة في ملفات HAR.
يرجى تفهّم أن الكود قد يبدو غير منظم إلى حد ما. خبرتي ليست في المقام الأول في JavaScript، لذلك كان تركيزي الرئيسي على إضافة ميزات جديدة بدلاً من تنظيم الكود.
قم بتنزيل ملفات HAR. يمكنك استخدام أدوات التطوير المتوفرة في متصفحات الويب. بالنسبة لمعظم المتصفحات، ما عليك سوى الضغط على F12 لفتح أدوات التطوير، ثم انتقل إلى علامة التبويب 'Network' لحفظ ملفات HAR، بعد تحديث صفحة الويب: video
قم برفع ملفات HAR الخاصة بك عبر الواجهة المقدمة. بعد الرفع، يمكنك التنقل عبر مختلف رموز الوصول (Access Tokens) لتحليل تفاصيل الجلسة، بما في ذلك نطاقاتها والمزيد. الرموز المعروضة باللون الأحمر تشير إلى أنها منتهية الصلاحية. يدعم GraphRunner أيضًا استخدام رموز التحديث (Refresh Tokens) لإنشاء رموز وصول جديدة صالحة عند الحاجة: video
أضفت ميزات تتيح تنزيل بيانات المستخدم الكاملة في ملف JSON، واكتشاف الحالات الشاذة في MFA في الحسابات، وتنزيل قائمة بهذه الحالات الشاذة: video