Az - Device Registration

HackTricksをサポートする

基本情報

デバイスがAzureADに参加すると、新しいオブジェクトがAzureADに作成されます。

デバイスを登録する際、ユーザーは自分のアカウントでログインするよう求められ(必要に応じてMFAを要求)、次にデバイス登録サービスのトークンを要求し、最後に確認プロンプトを求めます。

その後、デバイス内に2つのRSAキーペアが生成されます:デバイスキー公開キー)はAzureADに送信され、トランスポートキー(秘密キー)は可能であればTPMに保存されます。

次に、オブジェクトAzureAD(Intuneではなく)に生成され、AzureADはデバイスに署名された証明書を返します。デバイスがAzureADに参加していることや、証明書に関する情報(TPMで保護されているかどうかなど)を確認できます。

dsregcmd /status

デバイス登録後、プライマリリフレッシュトークンがLSASS CloudAPモジュールによって要求され、デバイスに渡されます。PRTには、デバイスのみが復号化できるように暗号化されたセッションキー(トランスポートキーの公開鍵を使用)も提供され、PRTを使用するために必要です。

PRTについての詳細は以下を確認してください:

Az - Primary Refresh Token (PRT)

TPM - トラステッドプラットフォームモジュール

TPMは、電源がオフのデバイスからのキー抽出(PINで保護されている場合)や、OS層からのプライベートマテリアルの抽出に対して保護します。 しかし、TPMとCPUの間の物理接続をスニッフィングすることや、システムが実行中のプロセスがSYSTEM権限を持っている場合にTPM内の暗号材料を使用することに対しては保護しません

以下のページを確認すると、PRTを盗むことユーザーとしてアクセスするために使用できることがわかります。これは素晴らしいことで、PRTはデバイスに存在するため、それらから盗まれる可能性があります(または盗まれなくても新しい署名キーを生成するために悪用される可能性があります):

Az - Pass the PRT

SSOトークンを使用したデバイスの登録

攻撃者が侵害されたデバイスからMicrosoftデバイス登録サービスのトークンを要求し、それを登録することが可能です:

# Initialize SSO flow
roadrecon auth prt-init
.\ROADtoken.exe <nonce>

# Request token with PRT with PRT cookie
roadrecon auth -r 01cb2876-7ebd-4aa4-9cc9-d28bd4d359a9 --prt-cookie <cookie>

# Custom pyhton script to register a device (check roadtx)
registerdevice.py

どのようにして将来PRTを要求するために使用できる証明書を取得するか。したがって、持続性を維持し、MFAをバイパスすることができます。なぜなら、新しいデバイスを登録するために使用された元のPRTトークンはすでにMFA権限が付与されていたからです

この攻撃を実行するには、新しいデバイスを登録する権限が必要です。また、デバイスを登録することは、そのデバイスがIntuneに登録されることを許可されることを意味しません

この攻撃は2021年9月に修正され、もはやSSOトークンを使用して新しいデバイスを登録することはできません。しかし、正当な方法でデバイスを登録することはまだ可能です(必要に応じてユーザー名、パスワード、MFAを持っていること)。確認してください: roadtx

デバイスタイプの上書き

デバイスタイプを要求し、現在のデバイスタイプを上書きし、フロー中にPRTを盗むことが可能でした(TPMから盗む必要はありません)。詳細についてはこのトークを確認してください

ただし、これは修正されました。

WHFBキーの上書き

元のスライドをこちらで確認してください

攻撃の概要:

  • デバイスからSSOを介して登録されたWHFBキーを上書きすることが可能です

  • 新しいキーの生成中にキーがスニッフィングされるため、TPM保護を打破します

  • これにより持続性も提供されます

ユーザーはAzure AD Graphを介して自分のsearchableDeviceKeyプロパティを変更できますが、攻撃者はテナント内にデバイスを持っている必要があります(その場で登録されたか、正当なデバイスから証明書とキーを盗んだ場合)およびAAD Graphの有効なアクセストークンが必要です。

次に、次のように新しいキーを生成することが可能です:

roadtx genhellokey -d <device id> -k tempkey.key

そして、searchableDeviceKeyの情報をPATCHします:

デバイスコードフィッシングを介してユーザーからアクセストークンを取得し、前のステップを悪用して彼のアクセスを盗むことが可能です。詳細については、以下を確認してください:

Az - Phishing Primary Refresh Token (Microsoft Entra)

参考文献

HackTricksをサポートする

Last updated