ESC5

ESC5는 AD CS와 직접적으로 연결된 객체에 대한 제어권을 악용하여 권한 상승을 하는 공격 기법입니다.

다른 ESC 기법들과 같이 템플릿이나 인증 기관 서비스에 존재하는 취약점 외에도,

AD CS와 직접적으로 연결된 객체들에 대한 제어권은 권한 상승을 허용할 수 있습니다.

ESC5를 악용하기 위해서는 다음과 같은 객체에 대한 권한이 필요합니다.

  • CA 서버의 AD 컴퓨터 객체

  • CA 서버의 RPC/DCOM 서버

  • CN=Public Key Services, CN=Services, CN=Configuration, DC=, DC= 컨테이너 내의 하위 AD 객체 또는 컨테이너(ex - Certificate Templates 컨테이너, Certification Authorities 컨테이너, NTAuthCertificates 객체, Enrollment Services 컨테이너 등)

공격자가 위와 같은 객체 중 하나를 손상시키면 PKI 시스템이 손상되어 권한 상승을 야기할 수 있습니다.

ESC 시리즈의 공격이 모두 템플릿을 이용한 것은 아니다보니, 실제적으로 AD CS의 객체 권한을 확보해

권한 상승을 이어가는 ESC5와 같은 공격은 Certipy-ad find 결과로 출력되지 않습니다.

CA에 접근할 수 있는 객체에 할당된 권한 별로 Certipy-ad find의 결과가 모두 다르듯이,

일반 사용자의 권한으로는 취약한 템플릿이 식별되지 않다가도 앞서 언급한 3가지 중 하나의

제어권을 획득한다면 ESC4 혹은 ESC7 공격을 통해 도메인 관리자 권한 획득이 가능합니다.

Practice

현재 실습 환경 호스트 별 IP 주소는 다음과 같습니다.

  • Domain Controller - 172.168.19.3

  • ADCS Server - 172.16.19.5

  • Pivot Host - 10.129.205.205

  • Kali Linux - 10.10.14.211

Kali 환경에서 ADCS Server를 향한 패킷을 직접적으로 전송하지 못하는 환경이기 때문에

Dynamic Port Forwarding을 이용하여 피벗 호스트를 통한 패킷을 Proxychains로 전송합니다.

Pivot Host를 통해 ADCS Server의 서비스를 이용할 때 사용하는 계정은

ADCS의 로컬 관리자 권한을 가진 계정이기 때문에 필요 조건을 만족하여 공격이 가능합니다.

# 포트포워딩을 통한 ADCS Server 템플릿 정보 스캔
proxychains4 -q certipy-ad find -u <USER> -p <PASS> -dc-ip <dc-ip> -stdout -ns <dc-ip> -dns-tcp 

만약 장악한 호스트가 ADCS Server인 것에 대해서 확신이 없다면,

SubCA 템플릿의 Certificate Authorities 속성에 대한 값과 일치하는 호스트 네임을 찾을 수도 있습니다.

Template Name                       : SubCA                                                                       
Display Name                        : Subordinate Certification Authority                                                                                                                                                               
Certificate Authorities             : lab-WS01-CA                                                                 
Enabled                             : True                                                                        
Client Authentication               : True                                                                        
Enrollment Agent                    : True                                                                        
Any Purpose                         : True                                                                        
Enrollee Supplies Subject           : True                                                                        
Certificate Name Flag               : EnrolleeSuppliesSubject                                                     
Enrollment Flag                     : None                                                                        
Private Key Flag                    : ExportableKey                                                               
Requires Manager Approval           : False                                                                       
Requires Key Archival               : False                                                                       
Authorized Signatures Required      : 0
Validity Period                     : 5 years
Renewal Period                      : 6 weeks
Minimum RSA Key Length              : 2048
Permissions
  Enrollment Permissions
    Enrollment Rights               : LAB.LOCAL\Domain Admins
                                      LAB.LOCAL\Enterprise Admins
  Object Control Permissions
    Owner                           : LAB.LOCAL\Enterprise Admins
    Write Owner Principals          : LAB.LOCAL\Domain Admins
                                      LAB.LOCAL\Enterprise Admins
    Write Dacl Principals           : LAB.LOCAL\Domain Admins
                                      LAB.LOCAL\Enterprise Admins
    Write Property Principals       : LAB.LOCAL\Domain Admins
                                      LAB.LOCAL\Enterprise Admins

이후의 공격 과정은 ESC4 혹은 ESC7과 동일하기 때문에 생략합니다.

References

Last updated

Was this helpful?