في بيئة Azure AD، من الممكن تحديد ما إذا كان المستخدم قد تم تعطيل المصادقة متعددة العوامل (MFA) دون الحاجة إلى أي امتيازات خاصة. ويمكن تحقيق ذلك من خلال تحليل تاريخ إنشاء الحساب وتاريخ آخر تغيير لكلمة المرور.
إذا تطابق تاريخ ووقت إنشاء الحساب مع تاريخ ووقت آخر تغيير لكلمة المرور، فقد يشير ذلك إلى عدم حدوث أي تفاعل بشري منذ إنشاء الحساب، ولم يتمكن المستخدم من تمكين المصادقة متعددة العوامل (MFA) أو تغيير بياناته كلمة المرور. وهناك "حالات شاذة" أخرى مثل أن يكون تاريخ تغيير كلمة المرور أقدم من تاريخ الإنشاء. يشير هذا أيضًا إلى أنه لا يمكن تمكين المصادقة متعددة العوامل (MFA) لأن المستخدم لم يتم إنشاؤه بعد!
تحديث بتاريخ 16-10-2023:
تحديث بتاريخ 18-02-2024:
يمكن أن تكون هذه المعلومات مفيدة لتحديد المخاطر الأمنية المحتملة المصممة للاستخدام من قبل كل من الفرق الحمراء والزرقاء.
يلزم وجود ملف قاعدة بيانات roadrecon أو ملف JSON الذي تم استخراجه بمساعدة خيار --code-javascript لهذه الأداة. تم تطوير أداة Roadrecon بواسطة dirkjanm ويمكن تنزيلها على github 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 في المجلد:اتبع هذه الخطوات لاسترداد قائمة المستخدمين مع معلومات حساباتهم باستخدام البرنامج النصي المقدم.
تسجيل الدخول إلى بوابة أزور
الوصول إلى إدارة المستخدم
افتح أدوات المطور
F12
في متصفح الويب الخاص بك لفتح أدوات المطور.تنفيذ البرنامج النصي
استرداد قائمة المستخدمين ومعلومات المستخدم
تنزيل معلومات المستخدم المدمجة
merged_users.json
إذا سارت الأمور بسلاسة.تشغيل على مدقق كلمة المرور Azure AD
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 مباشرة من جهاز "الضحية". تساعد هذه الوظيفة الجديدة في فحص وفحص رموز الوصول للوصول إلى أذونات أو نطاقات مختلفة. بالإضافة إلى ذلك، إذا انتهت صلاحية رمز الوصول، فإن هذا الإصدار يسمح باستخدام رمز التحديث لإنشاء رمز وصول جديد. هذه العملية حساسة للوقت، ولكنها تلغي الحاجة إلى أسماء المستخدمين وكلمات المرور، إذا كنت قد قمت بالفعل بتسجيل الدخول إلى بيئة Office365، لأنها تتطلب فقط الرموز المميزة للجلسة الموجودة في ملفات HAR.
يرجى تفهم أن الكود قد يبدو غير منظم بعض الشيء. خبرتي ليست في المقام الأول في جافا سكريبت، لذلك كان تركيزي الأساسي على إضافة ميزات جديدة بدلاً من تنظيم التعليمات البرمجية.
قم بتنزيل ملف (ملفات) HAR، ويمكنك استخدام أدوات التطوير المتوفرة في متصفحات الويب. بالنسبة لمعظم المتصفحات، ما عليك سوى الضغط على F12 لفتح أدوات التطوير، ثم انتقل إلى علامة التبويب "الشبكة" لحفظ ملفات HAR، بعد تحديث صفحة الويب: فيديو
قم بتحميل ملف (ملفات) HAR الخاص بك عبر الواجهة المتوفرة. بمجرد التحميل، يمكنك التنقل عبر رموز الوصول المختلفة لتحليل تفاصيل الجلسة، بما في ذلك نطاقاتها والمزيد. تشير الرموز المميزة المعروضة باللون الأحمر إلى انتهاء صلاحيتها. يدعم GraphRunner أيضًا استخدام رموز التحديث لإنشاء رموز وصول جديدة وصالحة عند الضرورة: الفيديو
تمت إضافة ميزات للسماح بتنزيل بيانات المستخدم الكاملة في ملف JSON، واكتشاف حالات الشذوذ في MFA في الحسابات، وتنزيل قائمة بهذه الحالات الشاذة: فيديو