Az - PTA - Pass-through Authentication

Support HackTricks

Basic Information

From the docs: Azure Active Directory (Azure AD) Pass-through Authentication allows your users to sign in to both on-premises and cloud-based applications using the same passwords. This feature provides your users a better experience - one less password to remember, and reduces IT helpdesk costs because your users are less likely to forget how to sign in. When users sign in using Azure AD, this feature validates users' passwords directly against your on-premises Active Directory.

PTA에서 아이덴티티동기화되지만 비밀번호는 PHS처럼 동기화되지 않습니다.

인증은 온프레미스 AD에서 검증되며, 클라우드와의 통신은 온프레미스 서버에서 실행되는 인증 에이전트에 의해 이루어집니다 (온프레미스 DC에 있을 필요는 없습니다).

Authentication flow

  1. 로그인을 위해 사용자는 Azure AD로 리디렉션되며, 여기서 사용자 이름비밀번호를 입력합니다.

  2. 자격 증명암호화되어 Azure AD의 에 설정됩니다.

  3. 온프레미스 인증 에이전트가 큐에서 자격 증명을 수집하고 복호화합니다. 이 에이전트는 "Pass-through authentication agent" 또는 PTA agent라고 불립니다.

  4. 에이전트온프레미스 AD에서 자격 증명을 검증하고 응답을 Azure AD로 전송합니다. 응답이 긍정적이면 사용자의 로그인이 완료됩니다.

공격자가 PTA침해하면 큐에 있는 모든 자격 증명명확한 텍스트볼 수 있습니다. 또한 모든 자격 증명을 AzureAD에 검증할 수 있습니다 (Skeleton key와 유사한 공격).

On-Prem -> cloud

PTA 에이전트가 실행 중인 Azure AD Connect 서버관리자 접근 권한이 있는 경우, AADInternals 모듈을 사용하여 모든 비밀번호검증하는 백도어삽입할 수 있습니다 (따라서 모든 비밀번호가 인증에 유효하게 됩니다):

Install-AADIntPTASpy

설치가 실패하는 경우, 이는 Microsoft Visual C++ 2015 Redistributables가 누락되었기 때문일 수 있습니다.

이전 백도어가 설치된 머신에서 다음 cmdlet을 사용하여 PTA 에이전트로 전송된 평문 비밀번호를 볼 수 있습니다:

Get-AADIntPTASpyLog -DecodePasswords

이 백도어는 다음을 수행합니다:

  • 숨겨진 폴더 C:\PTASpy 생성

  • PTASpy.dllC:\PTASpy에 복사

  • PTASpy.dllAzureADConnectAuthenticationAgentService 프로세스에 주입

AzureADConnectAuthenticationAgent 서비스가 재시작되면, PTASpy는 "언로드"되고 다시 설치해야 합니다.

Cloud -> On-Prem

클라우드에서 GA 권한을 얻은 후, 공격자가 제어하는 머신새로운 PTA 에이전트를 등록할 수 있습니다. 에이전트가 설치되면, 이전 단계를 반복하여 어떤 비밀번호로도 인증할 수 있으며, 평문으로 비밀번호를 얻을 수 있습니다.

Seamless SSO

PTA와 함께 Seamless SSO를 사용할 수 있으며, 이는 다른 악용에 취약합니다. 자세한 내용은 다음을 참조하세요:

Az - Seamless SSO

References

HackTricks 지원

Last updated