본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Kerberos Exploitation; 커버로스 공격(커버로스 악용)
커버로스 티켓과 그 티켓을 암호화하는 계정 키(비밀번호 해시)를 훔치거나 위조해 액티브 디렉터리 안에서 다른 사용자·서비스로 행세하는 공격의 묶음

커버로스는 비밀번호를 네트워크로 보내지 않고 티켓으로 인증하는 프로토콜이다. 사용자는 인증 서버(AS)에서 티켓 부여 티켓(TGT, Ticket Granting Ticket)을 받고, 그 TGT로 티켓 부여 서비스(TGS)에서 서비스 티켓을 받아 서버에 제시한다. TGT는 KDC 서비스 계정인 KRBTGT의 키로, 서비스 티켓은 해당 서비스 계정의 키로 암호화된다. 결국 키를 가진 자가 티켓을 만들 수 있고, 티켓을 가진 자는 그 사용자로 인정받는다. 커버로스 공격은 이 두 사실을 노린다.

윈도우 액티브 디렉터리 환경에서 도메인 컨트롤러가 KDC 역할을 하므로, 대부분의 사례는 AD 침해 이후 권한 상승과 지속성 확보 단계에서 나온다. CISSP 시험 개요 3.7은 이 주제를 "Kerberos exploitation"으로, 바로 앞에 패스 더 해시를 나란히 둔다. MITRE ATT&CK에서는 T1558(커버로스 티켓 탈취·위조)과 T1550.003(패스 더 티켓)에 해당한다.

공격 공격자가 가진 것(조건) 하는 일 영향 탐지 단서 대책
골든 티켓 KRBTGT 계정의 비밀번호 해시 TGT를 위조 도메인의 아무 계정으로나 행세, 장기 지속성 비정상적인 티켓 수명, 현대 도메인에서의 RC4 사용, TGT 요청 없이 나타나는 TGS 요청 KRBTGT 비밀번호 두 번 재설정, 도메인 컨트롤러 보호
실버 티켓 특정 서비스 계정의 해시 그 서비스용 서비스 티켓을 위조 해당 서비스와 호스트에 한정된 접근, KDC를 거치지 않아 탐지가 어려움 KDC 기록 없이 나타나는 서비스 로그온, 예상 밖 호스트에서의 서비스 계정 사용 서비스 계정 비밀번호 강화·교체, AES 강제
커버로스팅 아무 도메인 사용자 계정(유효한 TGT) SPN이 있는 서비스 계정의 서비스 티켓을 요청해 오프라인으로 크래킹 서비스 계정 비밀번호 획득, 권한 상승 이벤트 ID 4769에서 RC4(0x17) 암호화 요청, 짧은 시간의 대량 요청 긴 무작위 비밀번호, gMSA, RC4 비활성화
AS-REP 로스팅 사전 인증이 꺼진 계정 목록 사전 인증 없이 AS-REQ를 보내 받은 AS-REP를 오프라인 크래킹 해당 사용자 비밀번호 획득 이벤트 ID 4768에서 사전 인증 유형 0 모든 계정에 사전 인증 사용, 설정 변경 감사
패스 더 티켓 메모리에서 훔친 TGT나 서비스 티켓 훔친 티켓을 자기 세션에 주입 비밀번호 없이 측면 이동 4769가 있는데 대응하는 4768·4624 기록이 없음 특권 계정 사용 범위 제한, 자격 증명 보호
오버패스 더 해시 사용자의 NTLM 해시나 AES 키 해시를 키로 써서 정상 TGT를 받아 냄 NTLM 해시를 커버로스 티켓으로 바꿔 사용 평소와 다른 암호화 유형의 TGT 요청 NTLM 해시 탈취 방지, RC4 비활성화

이벤트 ID 4768은 "커버로스 인증 티켓(TGT)이 요청됨", 4769는 "커버로스 서비스 티켓이 요청됨"으로, 둘 다 도메인 컨트롤러의 보안 로그에 남는다.

골든 티켓(golden ticket)은 KRBTGT 계정의 비밀번호 해시로 TGT 자체를 위조하는 공격이다. KRBTGT는 도메인의 모든 커버로스 티켓을 암호화·서명하는 계정이므로, 그 키를 가진 공격자는 존재하는 어떤 계정으로든, 원하는 그룹 소속과 유효 기간을 담은 TGT를 만들 수 있다. KRBTGT 해시는 도메인 컨트롤러에 대한 특권 접근과 자격 증명 덤프로 얻는다. 즉 골든 티켓은 침투의 시작이 아니라 도메인을 이미 장악한 공격자가 지속성을 확보하는 수단이다.

대응은 KRBTGT 비밀번호를 두 번 재설정하는 것이다. KRBTGT의 비밀번호 기록은 최근 두 개를 유지하므로 한 번만 바꾸면 이전 키로 만든 티켓이 여전히 통한다. 마이크로소프트 포리스트 복구 지침은 두 번의 재설정 사이에 최대 티켓 수명(기본 10시간) 이상을 기다리라고 안내한다. MITRE는 KRBTGT 비밀번호를 180일마다 바꾸는 것도 고려하라고 권한다.

실버 티켓(silver ticket)은 특정 서비스 계정(예: SQL 서버, SharePoint)의 해시로 서비스 티켓을 위조하는 공격이다. 범위는 그 서비스와 서비스가 실행되는 호스트로 좁지만, 위조한 티켓을 서비스에 바로 내밀기 때문에 KDC와 통신하지 않는다. 그래서 도메인 컨트롤러 로그에는 흔적이 남지 않고, 대상 서버의 로그온 기록에서만 이상을 찾을 수 있다. 서비스 계정 해시는 자격 증명 덤프나 커버로스팅으로 얻는다.

커버로스팅(Kerberoasting)은 일반 도메인 사용자 권한만으로 서비스 계정 비밀번호를 노리는 공격이다. 서비스 주체 이름(SPN, Service Principal Name)은 서비스 인스턴스를 식별하는 이름으로 서비스 계정에 연결된다. 유효한 TGT를 가진 사용자는 어떤 SPN에 대해서든 서비스 티켓을 요청할 수 있고, 그 티켓의 일부는 서비스 계정의 키로 암호화되어 있다. 공격자는 티켓을 받아 네트워크 밖으로 가져가 오프라인으로 비밀번호를 대입한다. RC4(etype 23)로 암호화된 티켓은 비밀번호 해시가 곧 키이므로 특히 취약하다.

사람이 만든 서비스 계정 비밀번호는 짧고 오래 바뀌지 않는 경우가 많고, 서비스 계정은 권한이 높은 경우가 많아 피해가 크다. MITRE는 서비스 계정 비밀번호를 충분히 길고(이상적으로 25자 이상) 복잡하게 하고 주기적으로 바꾸며, 그룹 관리 서비스 계정(gMSA)이나 비밀번호 금고를 고려하라고 권한다. gMSA는 윈도우가 서비스 계정 비밀번호를 자동으로 관리하므로 사람이 정한 약한 비밀번호 문제를 없앤다. 탐지는 이벤트 ID 4769에서 RC4(0x17) 암호화 요청이나 한 계정의 짧은 시간 대량 요청을 본다.

AS-REP 로스팅(AS-REP Roasting)은 커버로스 사전 인증이 꺼진 계정을 노린다. 사전 인증이 켜져 있으면 사용자는 자기 비밀번호 해시로 암호화한 타임스탬프를 AS-REQ에 담아 보내야 하고, KDC가 이를 확인한 뒤에만 AS-REP를 돌려준다. 사전 인증이 꺼진 계정은 누구든 AS-REQ만 보내면 사용자 키로 암호화된 데이터가 담긴 AS-REP를 받을 수 있어, 커버로스팅처럼 오프라인 크래킹이 가능하다. 사전 인증은 기본으로 켜져 있지만 오래된 프로토콜 호환을 위해 "Kerberos 사전 인증을 요구하지 않음"을 설정한 계정이 남아 있는 경우가 있다. 대책은 그런 계정을 찾아 사전 인증을 켜고 설정 변경을 감사하는 것이다.

패스 더 티켓과 오버패스 더 해시

편집 원본 편집

패스 더 티켓(Pass the Ticket)은 메모리(LSASS)에서 훔친 TGT나 서비스 티켓을 공격자 세션에 주입해 비밀번호 없이 인증하는 측면 이동 기법이다. TGT를 훔치면 그 사용자가 가진 모든 권한으로 서비스 티켓을 받을 수 있다. 오버패스 더 해시(Overpass the Hash)는 사용자의 NTLM 해시로 패스 더 해시를 하면서 동시에 그 해시를 키로 써 정상 커버로스 TGT를 받아 내는 방식이다. NTLM 인증을 막아 둔 환경에서도 해시만 있으면 커버로스로 넘어갈 수 있다는 점이 핵심이다.

  • 도메인 컨트롤러와 도메인 관리자 계정을 최상위 자산으로 보고 사용 범위를 제한한다(관리 계층 분리, 특권 계정 관리).
  • 커버로스 암호화에 AES를 강제하고 RC4를 비활성화한다.
  • 서비스 계정은 gMSA로 전환하거나 긴 무작위 비밀번호를 쓰고, 최소 권한 원칙에 따라 도메인 관리자 그룹에 넣지 않는다.
  • 모든 계정에서 커버로스 사전 인증을 켜 둔다.
  • 4768·4769 같은 커버로스 이벤트를 SIEM으로 모아 RC4 사용, 비정상 티켓 수명, 대량 요청을 탐지한다.
  • 침해가 확인되면 KRBTGT를 두 번 재설정하고 관련 서비스 계정 비밀번호를 모두 바꾼다.
  • 골든 티켓은 KRBTGT 해시로 TGT를 위조(도메인 전체), 실버 티켓은 서비스 계정 해시로 서비스 티켓을 위조(서비스 하나)한다. 범위와 필요한 키로 구분한다.
  • 커버로스팅은 일반 사용자 권한으로 서비스 티켓을 받아 오프라인 크래킹한다. 근본 대책은 강한 서비스 계정 비밀번호와 gMSA이다.
  • AS-REP 로스팅의 조건은 사전 인증 비활성 계정이다. "사전 인증을 켠다"가 정답이다.
  • 골든 티켓 사후 대응은 "KRBTGT 비밀번호를 두 번 재설정"이다. 한 번만 바꾸면 이전 키가 남는다.
  • 흔한 오답: 커버로스가 비밀번호를 평문으로 보내서 생기는 문제라고 보는 것. 커버로스는 비밀번호를 보내지 않으며, 문제는 약한 키(비밀번호)와 탈취된 키이다.