Az - Device Registration

Support HackTricks

기본 정보

장치가 AzureAD에 가입되면 AzureAD에 새 객체가 생성됩니다.

장치를 등록할 때, 사용자는 자신의 계정으로 로그인하라는 요청을 받습니다 (필요한 경우 MFA 요청), 그런 다음 장치 등록 서비스에 대한 토큰을 요청하고 마지막 확인 프롬프트를 요청합니다.

그런 다음, 장치에서 두 개의 RSA 키 쌍이 생성됩니다: 장치 키 (공개 키)는 AzureAD로 전송되고 전송 키 (개인 키)는 가능하면 TPM에 저장됩니다.

그런 다음, 객체AzureAD (Intune이 아님)에서 생성되고 AzureAD는 장치에 의해 서명된 인증서를 장치에 반환합니다. 장치가 AzureAD에 가입되었는지인증서에 대한 정보 (예: TPM으로 보호되는지 여부)를 확인할 수 있습니다.:

dsregcmd /status

기기 등록 후 Primary Refresh Token이 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

Which will give you a certificate you can use to ask for PRTs in the future. Therefore maintaining persistence and bypassing MFA because the original PRT token used to register the new device already had MFA permissions granted.

이 공격을 수행하려면 새 장치를 등록할 수 있는 권한이 필요합니다. 또한, 장치를 등록한다고 해서 그 장치가 Intune에 등록될 수 있다는 것을 의미하지는 않습니다.

이 공격은 2021년 9월에 수정되었으며, 이제 SSO 토큰을 사용하여 새 장치를 등록할 수 없습니다. 그러나 여전히 합법적인 방법으로 장치를 등록할 수 있습니다 (사용자 이름, 비밀번호 및 필요한 경우 MFA 포함). 확인: roadtx.

Overwriting a device ticket

장치 티켓을 요청하고, 현재 장치의 티켓을 덮어쓰며, 이 과정에서 PRT를 탈취할 수 있었습니다 (따라서 TPM에서 탈취할 필요가 없습니다. 자세한 내용은 이 강연을 참조하세요).

그러나, 이것은 수정되었습니다.

Overwrite WHFB key

원본 슬라이드를 여기에서 확인하세요

공격 요약:

  • 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