2026년 특권 액세스 관리 매직 쿼드런트™: Netwrix가 5년 연속 선정되었습니다. 보고서를 다운로드하세요.

리소스 센터블로그

Kerberos PAC란 무엇인가요?

Kerberos PAC란 무엇인가요?

Mar 17, 2023

Privileged Attribute Certificate (PAC)는 인증을 수행하는 사용자와 해당 사용자의 권한에 대한 정보를 포함하는 Kerberos 서비스 티켓의 확장입니다. 사용자가 Active Directory (AD) 도메인에서 인증을 수행하면 도메인 컨트롤러가 Kerberos 티켓에 PAC 정보를 추가합니다. Kerberos 티켓 서비스를 다른 시스템에 인증하는 데 사용할 때, 도메인 컨트롤러에 질의하지 않고도 사용자의 티켓에서 PAC를 가져와 권한 수준을 확인할 수 있습니다.

이 가이드는 Kerberos PAC와 관련된 여러 공격, 이를 방어하기 위한 PAC 검증의 한계, 그리고 Netwrix 솔루션이 어떻게 도움이 될 수 있는지를 자세히 설명합니다. 또한 Kerberos PAC에 대해 자주 묻는 질문(FAQ)도 함께 답변합니다.

Kerberos PAC를 악용하는 공격

PAC에는 매우 가치 있는 정보가 포함되어 있어 여러 Windows AD 공격 기법의 표적이 됩니다. 여기에는 그중 일부 주요 사례가 나와 있습니다.

권한 상승 공격(Privilege Escalation Attacks) (CVE-2014-6324)

2014년에 Windows Server 2012 R2 및 이전 버전의 PAC 검증 알고리즘에 존재하던 취약점이 공개되면서 PAC는 AD 권한 상승 공격의 표적이 되었습니다. 이 취약점은 공격자가 손상시킨(해킹한) 어떤 사용자 계정에 대해서도 PAC를 위조할 수 있게 해, 결과적으로 해당 사용자를 사실상 Domain Admin으로 만들 수 있습니다.

Windows 사이버보안 팀은 MS14-068 업데이트를 배포하여 CVE-2014-6324를 신속하게 대응했습니다.MS14-068 업데이트.

취약점과 패치에 대한 완전한 정보를 보려면 Microsoft’s post를 읽어보세요. 이 공격은 Black Hat 2015 및 Adsecurity.org에서도 자세히 다뤄졌습니다.

이 취약점을 테스트하려면 Python Kerberos Exploitation Kit (PyKEK) 또는 Kekeo를 사용할 수 있습니다.

Golden and Silver Tickets

Golden Tickets 및 Silver Tickets는 Active Directory 공격에서 공격자가 위조된 PAC를 활용할 수 있도록 해줍니다.

골든 티켓(Golden Ticket)은 탈취된 KDC 키를 통해 생성되는 위조된 Kerberos 티켓-그랜팅 티켓(TGT)입니다. 공격자는 이를 통해 도메인 내의 어떤 사용자에 대해서도 유효한 Kerberos TGT를 만들고, 해당 사용자의 PAC를 조작하여 추가 권한을 획득할 수 있습니다. 골든 티켓은 공격자가 겉보기에는 별다른 위험이 없어 보이는 계정을 사용해 특권 활동을 수행할 수 있기 때문에 탐지를 회피하는 데 유용합니다.

마찬가지로 Silver Tickets는 공격자가 티켓-그랜팅 서비스(TGS) 티켓에 대해 Active Directory PAC를 위조하도록 해줍니다. 그러나 Golden Tickets와 달리, Silver Tickets는 공격자에게 특정 호스트의 특정 서비스에 대해서만 권한을 부여합니다. TGS 티켓은 서비스의 비밀번호 해시로 암호화되므로, 위협 행위자가 어떤 서비스의 해시를 훔치면 그 서비스에 대한 TGS 티켓을 생성할 수 있습니다.

때때로 서비스 계정은 제한된 권한만 가집니다. 좋은 예로, 해당 SQL 서버에서 호스팅되는 데이터베이스에 대해 시스템 수준 권한이 없는 SQL 서비스 계정을 들 수 있습니다. 그러나 이러한 계정은 안전하지 않습니다. 공격자가 Silver Tickets를 사용해 PAC를 위조하고, 제한된 권한을 가진 서비스 계정에 추가 권한을 부여한 다음 대상 전체를 완전히 손상(침해)시킬 수 있기 때문입니다.

아래에서 확인할 수 있듯이, Golden Tickets와 Silver Tickets는 512 (Domain Admins)와 519 (Enterprise Admins) 같은 RID를 사용하여 사용자에게 특권 그룹의 구성원 자격을 부여합니다.

Image

PAC 검증

위조된 PAC에 대해 보안을 구현하려면 어떻게 해야 할까요? PAC validation 도움이 될 수는 있지만 만병통치약은 아닙니다.

PAC validation은 레지스트리 키 ValidateKdcPacSignature에 의해 제어되며, 이 키는 HKLMSYSTEMCurrentControlSetControlLsaKerberosParameters에서 찾을 수 있습니다. 이 키를 0으로 설정하면 PAC validation이 꺼집니다.

Windows 시스템에서 PAC validation 이(가) 활성화되면, 해당 시스템에 인증하는 사용자의 PAC가 유효성을 보장하기 위해 Active Directory와 대조하여 확인됩니다. 다만 특정 기준을 만족하는 경우에만 해당합니다.

구체적으로 Microsoft가 설명하는 바에 따르면 :

Windows OS는 해당 서비스가 TCB 권한을 보유하지 않고 Service Control Manager (SCM) 서비스가 아닌 경우, PAC validation 메시지를 DC의 NetLogon 서비스로 보냅니다. Local Security Authority Subsystem Service (LSASS) 프로세스는 LSA 클라이언트(애플리케이션 서버)가 로컬 시스템, 네트워크 서비스 또는 로컬 서비스의 컨텍스트에서 실행되지 않거나, SeTCBprivilege(운영 체제의 일부로 작동)를 보유하지 않은 경우 DC로 PAC validation 메시지를 보냅니다.

즉, PAC 유효성 검사는 공격자가 Silver 및 Golden Tickets를 실행하는 것을 막지 못합니다. 제 테스트에서는 PAC 유효성 검사 여부와 관계없이 대상 시스템에 대해 Silver 및 Golden Tickets를 활용할 수 있었습니다. 

사용자 PAC 살펴보기

사용자에 대한 PAC를 확인해 보고 싶다면, Impacket에 포함된 스크립트 getPAC.py, 는 시작하기에 좋은 방법입니다.

Windows에서 이 테스트를 하려면, CommandoVM를 확인해 보세요. 이 도구는 getPAC.py 스크립트(그리고 그 외 여러 가지)를 실행 파일로 패키징하므로 Python 의존성에 대해 걱정할 필요가 없습니다.

getPAC.py 스크립트를 사용하면 특별한 권한 없이도 어떤 사용자든 대상으로 삼아 해당 사용자의 PAC 설정과 정보를 반환할 수 있습니다:

Terminal output of Impacket's getPac.exe displaying Kerberos validation information for user michael.bluth, with GroupIds 512 and 513 highlighted.

보시다시피 이 스크립트는 단순한 그룹 멤버십 그 이상을 반환합니다. 이러한 결과에 대해 더 알아보려면 그룹 키 정보와 Kerberos 그룹 멤버십을 확인하고, Microsoft의 다음 문서를 참고하세요: Privilege Attribute Certificate data structure.

Netwrix가 도와드릴 수 있는 방법

PAC 클라이언트 검증과 getPAC.py 같은 스크립트는 무단 액세스로부터 사용자와 데이터를 보호할 수 있습니다. 하지만 안타깝게도 충분한 보호를 제공하지 못하는데, 특히 공격자가 Golden 및 Silver Tickets를 사용해 PAC 공격을 위조하는 경우 더욱 그렇습니다.

바로 여기서 Netwrix의 엔드-투-엔드 Active Directory security solution가 역할을 합니다. 포괄적이고 사용하기 쉬우며 안전한 이 위협 탐지 도구는 다음을 도와줄 수 있습니다:

  • 보안 평가를 통해 보안 위험을 식별하고 즉시 조치합니다.
  • 강력한 비밀번호 정책을 활성화하고 고급 위협으로부터 자격 증명을 보호하세요.
  • 상시 권한 계정을 just-in-time, just-enough 액세스로 대체하세요.
  • 침해를 예방하기 위해 정교한 위협을 제때 감지하세요.
  • 보안 프로토콜을 확인하고 수립하며 강화하세요.
  • 준수 감사에 필요한 보안 보고서를 생성하세요.
  • 예상되는 위협에 대한 대응을 자동화합니다.
  • 원치 않는 Active Directory 삭제 및 변경을 되돌립니다.
  • 전체 도메인 복구를 간소화하여 연속성을 보장합니다.

FAQ

Kerberos에서 PAC란 무엇인가요?

Privileged Attribute Certificate (PAC)는 Kerberos 티켓의 일부입니다. 사용자 권한에 대한 정보를 포함하며, 사용자가 인증을 수행할 때마다 Active Directory 도메인에서 사용됩니다.

PAC 검증이란 무엇인가요?

Windows 시스템에서 PAC 검증을 사용하도록 설정하면, Active Directory와 비교하여 인증하는 사용자의 PAC 유효성을 확인합니다. 안타깝게도 PAC 검증을 활성화해도 예방하지는 Golden Ticket 및 Silver Ticket 공격을 막지 못합니다.

공유하기

더 알아보기

저자 소개

Asset Not Found

Joe Dibley

보안 연구원

Netwrix의 보안 연구원이며 Netwrix Security Research Team의 일원입니다. Joe는 Active Directory, Windows 및 다양한 엔터프라이즈 소프트웨어 플랫폼과 기술 분야의 전문가로, 새로운 보안 위험, 복잡한 공격 기법, 그리고 이에 대한 대응(완화)과 탐지 방법을 연구합니다.