Az - Device Registration

Support HackTricks

基本情報

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

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

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

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

dsregcmd /status

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

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

Az - Primary Refresh Token (PRT)

TPM - Trusted Platform Module

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します:

device code phishingを通じてユーザーからアクセストークンを取得し、前述の手順を悪用してアクセスを盗むことが可能です。詳細については以下を参照してください:

Az - Phishing Primary Refresh Token (Microsoft Entra)

参考文献

HackTricksをサポートする

Last updated