ESC3
ADCS에서는 Enrollment Agents라고 불리는 속성이 존재합니다.
이 속성을 통해서 다른 사용자를 대신하여 해당 사용자의 인증서를 등록할 수 있습니다.
이것이 필요한 이유는 자동화된 서비스 등에 따른 이유입니다.
스마트 카드를 등록하려는 사람이 관리자에게 본인의 인적사항을 작성하면
관리자가 사용자를 대신하여 인증 정보를 프로그램에 등록하는 것과 비슷합니다.
먼저 이 공격이 성공하기 위해서는 2개의 템플릿이 필요하며
템플릿에는 각각 다음과 같은 속성이 설정되어 있어야 합니다.
Template 1
다른 속성은 ESC1에서 요구하는 것과 비슷하지만 추가적으로 요구되는 사항은
Extended Key Usage 혹은 Key Usage 속성에 Certificate Request Agent가 존재해야 합니다.
Requires Manager Approval
False
Authorized Signatures Required
0
Enrollment Rights
하위 수준 도메인 사용자 또는 모든 사용자
Extended Key Usage(Ver. 1)
Certificate Request Agent / Any Purpose / Null
Extended Key Usage(Ver. 2)
Certificate Request Agent / msPKI-RA-Application-Policies
Template 2
낮은 권한의 사용자가 Enrollment Agents 속성을통해 다른 사용자를 대신해
인증서를 요청할 수 있도록 허용하며 도메인 인증을 허용하는 EKU를 정의합니다.
Requires Manager Approval
False
Application Policies
Certificate Request Agent
Extended Key Usage
Client/Server Authentication
Enrollment Rights
하위 수준 도메인 사용자 또는 모든 사용자
Abuse
설명만 들었을 땐 조건이 매우 복잡해보이지만,
악용에 사용될 Template2는 내장 템플릿인 User로 사용이 가능합니다.
ESC1과 비슷한 환경의 템플릿에서 EKU가 Certificate Request Agent만 만족된다면 가능한 취약점입니다.
공격자는 EKU가 Certificate Request Agent로 설정된 취약한 템플릿을 이용하여
장악한 도메인 사용자 계정의 인증서를 발급받습니다.
이때 발급된 인증서는 다른 사용자 계정으로 인증서를 요청할 수 있도록 허용하는 속성입니다.
발급된 인증서를 증거로 하여, Client Authentication EKU를 포함한 템플릿에
타겟 사용자의 인증서 발급 요청을 합니다.
CA에 내장되어 있는 User 템플릿의 경우 악용에 필요한 두번째 템플릿의 모든 조건을 만족합니다.
Practice
앞서 말했던 것과 같이, ESC3 공격은 총 2번의 템플릿 요청 과정이 요구됩니다.
Certificate Request Agent가 설정된 템플릿을 통해 인증서를 발급한 뒤,
해당 인증서를 통해 CA의 내장 템플릿 User을 이용하여 다른 사용자의 인증서를 발급받습니다.
References
Last updated
Was this helpful?