COMMENTS (0)
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
Active Directory 인증의 3가지 핵심 프로토콜(NTLM, Kerberos, LDAP)의 내부 동작을 분석하고, 각 프로토콜에서 공격자가 노리는 약점과 탐지 쿼리를 매핑합니다.
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
Frost & Sullivan 분석에 따르면 Fortune 1000 기업의 95%가 Active Directory를 사용한다. 그런데 랜섬웨어 피해 조직 10곳 중 9곳에서 AD가 공격 경로에 포함되었다. AD가 뚫리면 도메인 전체가 넘어간다. 문제는 AD 인증의 세 기둥(NTLM, Kerberos, LDAP)각각에 공격자가 노릴 수 있는 구조적 약점이 존재한다는 것이다.
도메인에 참여한 Windows 시스템에서 사용자가 비밀번호를 입력하는 순간, 눈에 보이지 않는 인증 체인이 시작된다.
Winlogon.exe가 자격증명을 수집해 LSA에 전달한다LSASS 메모리 하나에 Kerberos TGT, 서비스 티켓, NT 해시가 모두 모인다. 44개 APT 그룹이 LSASS 메모리 덤프(T1003.001)를 노리는 이유다. 금고 하나에 모든 열쇠가 들어 있는 셈이다.
NTLM은 독자적인 네트워크 포트가 없다. SMB, HTTP, LDAP, RPC 안에 내장되어 동작하는 Challenge-Response 프로토콜이다.
서버가 8바이트 난수를 보내면, 클라이언트는 비밀번호의 NT 해시로 응답을 계산한다. NT 해시 생성 공식은 MD4(UTF-16LE(비밀번호)). 솔트가 없다.
여기서 치명적인 설계 결함이 드러난다. NT 해시 자체가 인증 키이므로, 해시를 알면 비밀번호를 몰라도 인증할 수 있다. Pass-the-Hash 공격의 원리다. SAM 파일(T1003.002)이나 LSA Secrets(T1003.004)에서 해시를 추출하면, 크래킹 없이 바로 횡이동이 가능하다.
Kerberos가 있는데 왜 NTLM이 아직 살아있을까.
| 상황 | 이유 |
|---|---|
| IP 주소로 접속 | Kerberos는 호스트명 기반 SPN이 필요하다. \\192.168.1.10\share는 NTLM으로 폴백 |
| 로컬 계정 인증 | KDC가 없으므로 Kerberos 불가 |
| 비도메인 장비 | TGT를 받을 수 없다 |
| 시간 차이 5분 초과 | Kerberos가 인증을 거부한다 |
| 레거시 소프트웨어 | NTLM을 하드코딩한 구형 애플리케이션 |
Microsoft는 2024년 NTLM을 공식 폐기했고, 3단계 제거 계획을 발표했다. 1단계(감사 강화)는 Windows 11 24H2와 Server 2025에 적용 중이다. 그러나 3단계(기본 비활성화)는 "다음 주요 릴리스"로, 아직 구체적 일정이 없다.
그 사이 공격은 계속된다. APT28(Fancy Bear)은 로 Outlook 캘린더 이벤트만으로 NTLM 해시를 탈취했다. 피해자가 클릭하지 않아도 Outlook이 UNC 경로를 처리하는 순간 NT 해시가 공격자 서버로 전송된다. 2022~2023년 NATO 14개국 30개 이상 조직이 이 공격을 받았다.
Kerberos는 AD의 기본 인증 프로토콜이다. 한 번 인증하면 티켓을 받고, 이후 서비스마다 티켓을 제시한다.
공격자가 주목하는 설계 특성이 있다. KDC는 인증된 사용자라면 어떤 SPN에 대해서든서비스 티켓을 발급한다. 접근 권한이 있는지는 확인하지 않는다. 권한 검증은 서비스의 몫이다.
이 특성이 Kerberoasting(T1558.003)의 근본 원인이다. 일반 도메인 사용자가 모든 서비스 계정의 티켓을 요청할 수 있고, 그 티켓은 서비스 계정의 비밀번호로 암호화되어 있다. RC4-HMAC으로 암호화된 티켓은 AES 대비 약 5배 빠르게 크래킹된다. APT29(SolarWinds), FIN7, Wizard Spider가 이 방식으로 AD를 장악했다.
Microsoft는 2026년 하반기까지 RC4를 DC 기본 지원 암호화에서 제거할 계획이다. Server 2025에서는 이미 RC4 TGT 발급이 중단되었다.
모든 Kerberos 티켓에는 PAC(Privilege Attribute Certificate)가 포함된다. 사용자 SID, 그룹 멤버십, 계정 정보를 담고 있다.
PAC에는 두 개의 서명이 있다. 하나는 서비스 계정 키로, 다른 하나는 krbtgt 계정 키로 서명된다. krbtgt 해시를 탈취하면 PAC를 위조할 수 있다. 자신을 Domain Admins로 설정한 가짜 TGT를 만드는 것이 Golden Ticket(T1558.001)이고, 서비스 계정 키만으로 특정 서비스에 접근하는 위조 티켓이 Silver Ticket(T1558.002)이다.
PAC 위조가 krbtgt 해시를 요구하는 고난도 공격이라면, Kerberos 위임은 정상 기능을 남용하는 저비용 경로다. 서비스가 사용자를 대신해 다른 서비스에 접근하는 기능인데, 세 가지 유형이 각각 다른 위험을 만든다.
Unconstrained Delegation — 사용자의 TGT 사본이 서비스 서버의 LSASS에 저장된다. 이 서버를 장악한 뒤 Print Spooler 버그로 DC를 강제 인증시키면, DC의 TGT까지 탈취하여 도메인 전체를 장악할 수 있다.
Constrained Delegation — msDS-AllowedToDelegateTo에 지정된 SPN에만 위임이 가능하다. 그러나 S4U2Self/S4U2Proxy 확장을 통해 사용자가 직접 인증하지 않아도 대리 티켓을 발급받을 수 있다.
RBCD — 대상의 msDS-AllowedToActOnBehalfOfOtherIdentity 속성을 수정할 수 있으면, 공격자가 만든 컴퓨터 계정으로 Administrator 서비스 티켓을 획득할 수 있다. NTLM Relay → LDAP 쓰기 → RBCD 설정이 하나의 킬체인을 형성한다.
LDAP(포트 389/636)는 인증 프로토콜이 아니라 디렉터리 접근 프로토콜이다. 그러나 AD 공격 체인에서 LDAP의 역할은 결정적이다. Kerberoasting을 하려면 SPN이 설정된 계정을 알아야 하고, RBCD를 남용하려면 쓰기 가능한 객체를 찾아야 한다. 이 정보를 제공하는 것이 LDAP다.
LDAP 세션은 Bind 연산으로 시작된다. Bind 유형에 따라 공격 표면이 달라진다.
Anonymous Bind — 빈 DN과 빈 비밀번호로 접속한다. Windows 2003 이전에는 전체 디렉터리를 읽을 수 있었다. 현재는 기본적으로 제한되지만, 잘못된 설정으로 사용자 열거와 비밀번호 정책이 노출되는 환경이 여전히 존재한다.
Simple Bind — DN과 비밀번호를 평문으로 전송한다. TLS(LDAPS) 없이 사용하면 네트워크에서 자격증명을 스니핑할 수 있다.
SASL Bind — 도메인 환경의 표준 방식이다. GSSAPI(Kerberos)나 GSS-SPNEGO(Kerberos/NTLM 협상)를 통해 인증한다. BloodHound, ADRecon 같은 공격 도구도 이 경로를 사용한다.
| 쿼리 필터 | 대상 |
|---|---|
servicePrincipalName=* | Kerberoasting |
userAccountControl:..4194304 | AS-REP Roasting |
adminCount=1 | 관리자 계정 |
msDS-Allowed...Identity | RBCD 설정 |
원본 필터: msDS-AllowedToActOnBehalfOfOtherIdentity
이 4가지 쿼리만으로 공격자는 Kerberoasting 대상, 사전 인증이 비활성화된 계정, 관리자 그룹, RBCD 남용 가능 객체를 한 번에 파악할 수 있다. 도메인에 인증된 일반 사용자 계정이면 충분하다.
Palo Alto Unit 42에 따르면, Stately Taurus는 AdFind를 a.logs로 위장해 동남아 정부기관을 정찰했고, ALPHV/BlackCat 그룹은 ADRecon으로 전체 AD 환경을 매핑했다.
BloodHound의 SharpHound 수집기는 LDAP와 Kerberos 열거를 결합하여, 도메인 내 모든 사용자·그룹·컴퓨터·GPO·신뢰 관계를 그래프 데이터로 변환한다. 단순 쿼리 목록이 아니라 공격 경로를 자동으로 계산하는 것이 핵심이다.
SharpHound 수집의 특징적 패턴:
samAccountType, objectClass, memberOf 등 속성을 반복 조회NetSessionEnum)이 패턴은 정상 관리 도구와 구별할 수 있어 탐지 근거가 된다.
LDAP 서명과 채널 바인딩이 없는 환경에서, NTLM 인증을 가로채 LDAP에 릴레이하면 AD 객체를 직접 수정할 수 있다. 컴퓨터 계정 추가, RBCD 속성 설정, Shadow Credentials 설정(msDS-KeyCredentialLink 수정), AdminSDHolder 조작까지 가능하다.
Windows Server 2025부터 LDAP 채널 바인딩이 기본 활성화되어 이 경로가 차단된다. 그러나 이전 버전 DC가 남아 있는 환경에서는 여전히 유효하다.
Five Eyes 동맹이 2024년 9월 발표한 보고서는 AD에서 가장 빈번하게 관찰되는 공격 17가지를 지정했다. 아래는 인증 구조를 기준으로, 블로그의 기존 분석 글과 아직 다루지 않은 공격을 매핑한 트리다.
✅ 표시는 블로그에서 이미 심층 분석한 주제다:
나머지—Pass-the-Hash, NTLM Relay, AS-REP Roasting, Delegation 남용, RBCD, AD CS 공격—는 이 글에서 원리를 설명했으며, 각각 독립된 심층 분석 글로 확장할 수 있는 주제다.
Authentication Package = NTLM 필터. Kerberos 환경에서 NTLM 인증은 비정상 신호다Splunk에서 NTLM 폴백을 탐지하는 쿼리:
index=wineventlog EventCode=4624 Authentication_Package=NTLM
| stats count by src_ip, user, dest
| where count > 5
| sort -count
Kerberos 환경에서 특정 IP가 반복적으로 NTLM 인증을 시도하면, IP 기반 접속(SPN 미등록) 또는 Relay 도구의 징후다.
0x17(RC4)이면 비정상Kerberoasting을 탐지하는 Sigma 룰의 핵심 로직:
detection:
selection:
EventID: 4769
# RC4 암호화 티켓만 필터
TicketEncryptionType: '0x17'
# 머신 계정($) 제외
ServiceName: '*$'
filter:
ServiceName:
- 'krbtgt'
- '*$'
condition: selection and not filter
단일 사용자가 짧은 시간 내에 다수의 RC4 서비스 티켓을 요청하면, Rubeus나 Invoke-Kerberoast 실행을 의심할 수 있다.
servicePrincipalName=*, adminCount=1 등 정찰용 필터 패턴 모니터링SharpHound 수집을 탐지하는 접근:
index=wineventlog EventCode=5145 Share_Name="\\\\*\\IPC$"
| stats dc(dest) as unique_targets by src_ip
| where unique_targets > 20
| sort -unique_targets
단일 IP에서 20대 이상의 호스트에 IPC$ 연결을 시도하면, SharpHound의 세션 열거 단계일 가능성이 높다. Event ID 1644와 결합하면 LDAP 정찰과 세션 수집을 동시에 포착할 수 있다.
세 프로토콜의 약점을 정리하면 하나의 패턴이 보인다.
NTLM은 해시가 곧 비밀번호이고, Kerberos는 누구에게나 티켓을 발급하며, LDAP는 공격 대상 목록을 제공한다. 세 프로토콜이 LSASS라는 하나의 메모리 공간에서 만나기 때문에, 하나가 뚫리면 나머지 둘도 위험해진다.
Microsoft는 NTLM 폐기, RC4 제거, LDAP 채널 바인딩 강제화를 진행 중이다. 그러나 레거시 호환성이라는 현실 앞에서 완전한 전환까지는 시간이 걸린다. 그 사이 방어자가 할 수 있는 일은 명확하다. NTLM 사용을 감사하고, RC4를 차단하고, LDAP 쿼리를 모니터링하는 것—위에서 다룬 Event ID와 탐지 쿼리가 그 시작점이다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.