Azure AD 環境では、特別な権限を必要とせずに、ユーザーの多要素認証 (MFA) が無効になっているかどうかを判断できます。これは、アカウントの作成日と最後にパスワードを変更した日を分析することで実現できます。
アカウントの作成日時が最後にパスワードを変更した日時と一致する場合は、アカウントの作成以来人間による操作が行われておらず、ユーザーが多要素認証 (MFA) を有効にしたりパスワードを変更したりできなかったことを示している可能性があります。パスワード。また、パスワードの変更日が作成日よりも古いなど、他の「異常」もあります。これは、ユーザーがまだ作成されていないために多要素認証 (MFA) を有効にできなかったことも示唆しています。
2023 年 10 月 16 日の更新:
2024 年 2 月 18 日の更新:
この情報は、赤チームと青チームの両方が使用するように設計された潜在的なセキュリティ リスクを特定するのに役立ちます。
このツールには、--code-javascript オプションを使用して抽出された Roadrecon データベース ファイルまたは JSON ファイルが必要です。 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 ファイルをフォルダーに生成してコピーします。提供されたスクリプトを使用して、ユーザーのリストとそのアカウント情報を取得するには、次の手順に従います。
Azureポータルへのログイン
ユーザー管理にアクセスする
開発者ツールを開く
F12
押して開発者ツールを開きます。スクリプトを実行する
UsersList と UserInfo を取得する
統合されたユーザー情報のダウンロード
merged_users.json
という名前のファイルが生成されます。Azure AD パスワード チェッカーで実行する
azurepwchecker.py --json-input merged_users.json
例を参照してください:
イントロを参照:
2023 年 10 月 16 日更新:
--code-javascript
引数を使用して Azure Portal 上のユーザーのリストを生成し、コマンドazurepwchecker.py --json-input merged_users.json
を使用してインポートする方法:
2024 年 2 月 13 日更新:
@dafthack から編集した GraphRunner をアップロードし、彼のクレジットを記載しました。この修正バージョンでは、「被害者の」デバイスから HAR ファイルを直接読み取ることができる新しい機能を追加しました。この新しい機能は、さまざまな権限やスコープにアクセスするためのアクセス トークンを確認および検査するのに役立ちます。さらに、アクセス トークンの有効期限が切れた場合、このバージョンでは、リフレッシュ トークンを使用して新しいアクセス トークンを作成できます。このプロセスは時間に左右されますが、すでに Office365 環境にログインしている場合は、HAR ファイルにあるセッション トークンのみが必要となるため、ユーザー名とパスワードは必要ありません。
コードが少し整理されていないように見えるかもしれないことをご了承ください。私の専門知識は主に JavaScript ではないため、コードを整理することよりも、新しい機能を追加することに主に焦点を当てていました。
HAR ファイルをダウンロードすると、Web ブラウザで利用可能な開発ツールを使用できます。ほとんどのブラウザでは、F12 キーを押して開発ツールを開き、Web ページを更新した後、「ネットワーク」タブに移動して HAR ファイルを保存します: ビデオ
提供されたインターフェイスを介して HAR ファイルをアップロードします。アップロードすると、さまざまなアクセス トークンをナビゲートして、スコープなどを含むセッションの詳細を分析できます。赤で表示されたトークンは、有効期限が切れていることを示します。 GraphRunner は、必要に応じて新しい有効なアクセス トークンを生成するためのリフレッシュ トークンの使用もサポートしています: ビデオ
JSON ファイル内の完全なユーザー データのダウンロード、アカウントの MFA 異常の検出、およびこれらの異常のリストのダウンロードを可能にする機能が追加されました: ビデオ