보안을 공부하면서 Active Directory(이하 AD)는 꼭 짚고 넘어가야 할 핵심 인프라라는 걸 느꼈습니다. AD는 단순히 로그인만 처리하는 시스템이 아니라, 도메인 기반 인증, 정책 적용, 권한 관리, 그리고 인증서 발급 시스템까지 모두 통합되어 있는 구조입니다. 기업이나 조직의 규모가 커질수록 AD의 중요성은 더 커지고, 동시에 공격자 입장에서는 가장 먼저 노리고 싶은 자산이 되기도 합니다.
이 글은 보안 공부를 하면서 AD의 구조와 인증 방식, 내부 탐색 구조(LDAP), 인증서 기반 보안, 그리고 krbtgt 계정과 Golden Ticket까지 보안 관점에서 알아야 할 요소들을 정리한 내용입니다.
1. Active Directory란?
Active Directory(이하 AD)는 Microsoft에서 개발한 중앙 집중식 디렉터리 서비스입니다. 말이 좀 어려운데, 쉽게 설명하면 회사의 수많은 사용자 계정, 컴퓨터, 서버 같은 IT 자원들을 하나의 중앙 시스템에서 등록하고 관리할 수 있게 해주는 서비스라고 보면 됩니다.
왜 필요할까요?
- 효율적인 관리: 수백, 수천 명의 직원이 사용하는 컴퓨터와 계정을 일일이 관리하는 것은 불가능합니다. AD는 이를 통합하여 관리 부담을 줄여줍니다.
- 보안 강화: 누가 어떤 자원에 접근할 수 있는지 명확히 통제하여 정보 유출이나 시스템 침해를 방지합니다.
- 일관된 정책 적용: 모든 컴퓨터에 동일한 보안 정책, 소프트웨어 설치 등을 중앙에서 적용할 수 있습니다.
예를 들어, 직원이 PC에 로그인할 때, 그 계정이 맞는지, 어떤 권한을 갖고 있는지, 회사 내부 파일 서버에 접근할 수 있는지 여부 등을 모드 AD가 판단하고 허가합니다.
1.1. Active Directory 구성 요소
AD는 몇 가지 중요한 논리적, 물리적 단위로 구성되어 있습니다.
도메인 (Domain)
AD의 가장 기본적인 논리적 단위입니다. 보통 회사이름.local 과 같은 형태로 구성되며, 이 안에 여러 사용자 계정과 컴퓨터, 서버가 등록되어 관리됩니다.
포리스트(Forest) & 트리(Tree) 구조
조직 규모가 커지면서 여러 도메인을 계층적으로 관리하게 될 때, 그 중심에 있는 관리자 서버를 도메인 컨트롤러(Domain Controller, DC)라 하고, 여기에 연결된 여러 직원용 PC를 도메인 클라이언트(Domain Client)라고 합니다. 이런 클라이언트들은 하나의 도메인(Domain) 단위로 묶여 관리되며, 회사의 규모가 커지면 여러 도메인의 구조가 계층 구조로 나뉘게 되는데 , 이렇게 독립적인 여러 도메인들을 하나로 묶는 최상위 논리적 구조를 포리스트라고 합니다.

루트 도메인 장악의 위험성
포리스트 내의 루트 도메인을 장악하게 되면 해당 조직 전체의 IT 인프라를 사실상 통제할 수 있는 최고 권한을 가지게 됩니다. 이는 공격자가 AD 도메인 탈취를 하려는 가장 큰 목표가 되는 핵심적인 이유입니다.
도메인 컨트롤러 (Domain Controller, DC)
도메인의 모든 인증과 권한 부여를 책임지는 마스터 서버입니다. 직원이 로그인하거나 파일 서버에 접근할 때마다 DC가 이를 확인하고 허가합니다.
OU (Organizational Unit)
도메인 내에서 부서별, 기능별로 계정이나 컴퓨터를 세분화하여 관리하는 조직 단위입니다. 예를 들어 '영업팀', '인사팀' 등으로 OU를 나누고 각 팀에 맞는 정책을 적용할 수 있습니다.
GPO (Group Policy Object)
AD 환경에서 특정 사용자나 컴퓨터 그룹에 보안 정책, 소프트웨어 배포, 스크립트 실행 등 다양한 설정을 중앙에서 일괄 적용하는 강력한 도구입니다. 예를 들어, '영업팀 PC에는 USB 사용을 차단'하거나, '모든 직원 PC는 부팅 시 자동으로 백신 검사'를 실행하도록 설정할 수 있습니다.
2. Kerberos (커버로스)
Active Directory의 인증 체계는 Kerberos라는 프로토콜을 기반으로 구성되어 있습니다. Kerberos는 티켓 기반 인증 시스템인데, 한 번 로그인만 하면 이후에는 각 시스템에 다시 비밀번호를 입력하지 않아도 되는 SSO(Single Sign-On) 환경을 가능하게 해줍니다.
2.1. Kerberos 작동 원리

Kerberos의 작동 원리를 간단히 설명하자면 이렇습니다.
- 사용자 로그인 (인증 요청) : 사용자가 회사 컴퓨터에 로그인하면, AD에 있는 KDC(Key Distribution Center)라는 서비스에 인증을 요청합니다.
- TGT 발급 : KDC는 사용자의 정보를 확인하고 일종의 '입장권' 같은 것을 발급해줍니다. 이게 바로 TGT(Ticket Granting Ticket)입니다. 이 티켓은 일정 시간 동안 유효하며, 사용자는 이걸 들고 다른 서비스에 접근할 수 있는 '서비스 티켓'을 요청할 수 있는 권한을 얻습니다.
- 서비스 티켓 요청 : 사용자는 TGT를 이용해 특정 서비스(ex. 파일 서버, 프린터, 내부 웹서비스 등)에 접근할 수 있는 서비스 티켓(TGS)을 KDC에 요청합니다.
- 서비스 접근 : 서비스 티켓을 받은 후에는 해당 서비스에 이를 제시함으로써 추가 인증 없이도 자원을 사용할 수 있게 됩니다.
모든 티켓은 암호화되어 있으며, 내부적으로 krbtgt라는 특별한 계정이 이를 암호화하는 데 사용합니다.
krbtgt 계정
krbtgt 계정은 Kerberos 인증의 핵심 열쇠 같은 존재입니다. 이 계정의 해시 정보가 노출되면 공격자는 임의의 티켓을 만들어 누구든지 가장할 수 있는 골든 티켓(Golden Ticket) 공격이 가능해집니다.
3. LDAP

LDAP(Lightweight Directory Access Protocol)은 Active Directory 내에 저장된 사용자, 그룹, 장비, 정책 등 구조화된 정보를 열람하거나 수정할 수 있도록 설계된 프로토콜입니다. 이를 통해, 보안 담당자나 침투 테스터는 AD 내부 정보를 수집합니다. 예를 들어, 어떤 사용자가 있는지, 어떤 컴퓨터가 있는지, 특정 서비스 계정은 무엇인지 등을 확인할 수 있습니다. LDAP는 기본적으로 389 포트를 사용하고, SSL을 사용할 경우 636 포트를 사용합니다.
중요한 점은, 일부 AD 설정에서 LDAP에 익명으로 접근 가능하도록 허용되어 있는 경우가 있습니다. 이럴 경우 인증 없이도 상당히 많은 정보를 열람할 수 있으며, 공격자가 초기 정보 수집 단계에서 매우 유용하게 활용됩니다. 또한 LDAP는 Kerberosting 공격 대상이 되는 서비스 계정(SPN)을 식별할 때도 사용됩니다.
4. AD CS
AD는 Kerberos 외에도 인증서 기반 인증 기능을 제공합니다. 이를 위한 시스템이 바로 AD CS(Active Directory Certificate Services)입니다. AD CS는 조직 내 사용자, 서버, 장비에 대해 디지털 인증서를 발급하고 관리하는 역할을 하며, 이를 통해 인증서 기반 로그인이나 암호화 통신을 설정할 수 있습니다.
4.1. 인증서 템플릿의 중요성
하지만 이 과정에서 사용되는 인증서 템플릿(Certificate Template)이 잘못 구성되어 있을 경우, 심각한 보안 취약점이 발생할 수 있습니다. 대표적으로 알려진 것이 ESC1부터 ESC8까지 분류되는 취약점들입니다.
ESC1 취약점 예시)
- 문제점 : 템플릿에 "Supply in the request" 옵션이 활성화되어 있을 때 발생합니다.
- 공격 시나리오 : 공격자는 인증서를 요청하면서 관리자 계정의 이름을 요청 정보에 포함시켜 인증서를 받아낼 수 있습니다.
- 결과 : 공격자가 본인의 계정으로 요청을 하더라도 인증서는 관리자 권한을 가진 인증서로 발급됩니다.
이렇게 획득한 인증서를 기반으로 공격자는 인증서 기반 로그인 또는 Kerberos 인증 우회를 통해 도메인 관리자 권한을 획득할 수 있게 됩니다.
5. krbtgt 계정과 Golden Ticket
krbtgt 계정은 Active Directory를 처음 설정할 때 자동으로 생성되는 매우 특별한 계정입니다. 이 계정은 모든 Kerberos 티켓, 특히 TGT(Ticket Granting Ticket)를 암호화하는 데 사용됩니다.
5.1. Golden Ticket 공격의 작동 원리
만약 이 krbtgt 계정의 해시가 공격자에게 유출된다면, 공격자는 자신이 원하는 사용자로 가장한 위조된 티켓 (Golden Ticket)을 생성할 수 있습니다. 이 티켓은 실제 DC에서 발급한 것처럼 보이기 때문에, 모든 도메인 자원에 접근할 수 있게 됩니다.
- krbtgt 해시 탈취: 공격자가 krbtgt 계정의 NTLM 해시 값을 획득합니다.
- Golden Ticket 생성: 탈취한 해시와 도메인 SID를 이용해 위조된 TGT를 생성합니다.
- 전체 도메인 제어: 생성된 Golden Ticket을 통해 공격자는 도메인 내 모든 자원에 대한 인증을 우회하고 최고 권한을 행사할 수 있습니다.
Golden Ticket 공격은 탐지하기 매우 어렵고, 한 번 발급된 티켓은 유효 기간을 공격자가 설정할 수 있기 때문에 장기간 백도어처럼 사용될 수 있습니다. 이러한 이유로 krbtgt 계정의 해시 노출은 도메인 전체가 침해되었다고 판단해야 하는 수준의 치명적인 위협입니다.
6. 주요 AD 보안 취약점 요약
Active Directory는 편리하지만, 잘못된 설정은 치명적인 보안 취약점이 될 수 있습니다. 다음은 주요 취약점과 이에 대한 방어 방안입니다.
| 취약점 유형 | 설명 | 방어 방안 |
| krbtgt 해시 노출 | Golden Ticket 생성을 허용하여 도메인 전체 통제 가능성 제공 | 주기적인 해시 재설정 (최소 180일 권장)을 통해 탈취된 해시 무력화 |
| LDAP 정보 과다 노출 | 사용자, 그룹, 조직 구조 등 민감 정보 유출 및 공격 경로 식별에 악용 | LDAP Anonymous 바인딩을 차단하고, 익명 접근 시 노출되는 정보 최소화 |
| 인증서 템플릿 오용 | ESC1~8 취약점을 통한 인증서 위조로 관리자 권한 탈취 가능 | 인증서 템플릿 권한을 최소화하고, 자동 발급 템플릿 설정 정기적으로 검토 |
| Kerberoasting 대상 노출 | 서비스 계정의 SPN 해시 크랙을 통해 서비스 계정 비밀번호 탈취 가능 | 서비스 계정에 강력하고 복잡한 비밀번호를 적용하고 주기적으로 변경 |
| DCSync 권한 노출 | 모든 도메인 계정의 해시 정보를 조회할 수 있는 권한 탈취 가능 | AdminSDHolder ACL을 주기적으로 점검하여 민감 그룹에 대한 권한 남용 방지 |
이번 글에서는 Active Directory의 기본 개념부터 인증 체계(Kerberos), 내부 탐색 프로토콜(LDAP), 인증서 서비스(AD CS), 그리고 krbtgt 계정과 Golden Ticket 공격까지 보안 관점에서 정리해봤습니다.
AD는 구조가 복잡한 만큼 한 번에 다 이해하기 어렵지만, 핵심만 잘 짚어두면 이후 침투 시나리오나 실습을 할 때 훨씬 수월하게 분석할 수 있습니다.