banner
홈페이지 / 소식 / 새로운 공격 경로? AS 요청 서비스 티켓
소식

새로운 공격 경로? AS 요청 서비스 티켓

Jul 18, 2023Jul 18, 2023

홈 » 사이버 보안 » SBN 뉴스 » 새로운 공격 경로? AS 요청 서비스 티켓

Andrew Schwartz의 Kerberos FAST 게시물(FAST가 무엇인지, 어떻게 작동하는지에 대한 자세한 정보가 포함되어 있으므로 읽어 보십시오)을 작성하는 동안 흥미로운 점을 발견했습니다. 컴퓨터 계정에 대한 AS-REQ는 보호되지 않습니다. 이에 대한 Microsoft의 설명은 다음과 같습니다.

Kerberos armoring은 장치에 대해 TGT(Ticket-Granting Ticket)를 사용하여 KDC와의 인증 서비스 교환을 보호하므로 컴퓨터의 인증 서비스 교환은 Armoring되지 않습니다. 사용자의 TGT는 KDC와의 TGS 교환을 보호하는 데 사용됩니다.

이에 인증서비스(AS)로부터 서비스티켓(ST)을 요청하는 것이 가능한지 궁금했습니다. AS에서 ST를 요청하는 기능은 새로운 공격 경로, 탐지 우회, 잠재적인 보안 제어 약화 등 여러 가지 결과를 초래합니다. 이 게시물에서 논의된 모든 문제는 Microsoft에 보고되었으며 "설계에 따른 것으로 간주"되었습니다(그림 1).

먼저, 다음은 일반적인 Kerberos 흐름에 대한 높은 수준의 개요입니다(그림 2, ADSecurity에서 제공).

티켓마다 세션키가 발급된다는 점은 다음 연구에서 중요한 특징이다. 이 세션 키는 응답의 암호화된 섹션 내에서 요청 계정으로 다시 전달됩니다. 암호화 키는 요청자에게 이미 알려져 있습니다.

예를 들어, TGT 세션 키는 TGT를 요청할 때 요청자의 신원을 증명하는 데 사용되는 키로 암호화된 섹션 내에 저장됩니다. 이 키는 일반적으로 계정의 장기 키(비밀번호 해시)입니다. 그러나 Kerberos 프로토콜의 PKINIT(초기 인증을 위한 공개 키 암호화)의 경우 키는 인증서에서 파생됩니다. ST 세션 키는 TGT 세션 키로 암호화된 섹션 내에 저장됩니다.

Kerberos 흐름의 다음 단계에서 티켓을 사용하려면 티켓 세션 키가 필요합니다.

Kerberos 요청에는 두 가지 주요 섹션이 있습니다.

req-body는 대부분 일반 텍스트로 전송되며 여러 정보를 포함합니다.

Kerberos 응답에는 여러 섹션이 있으며 암호화된 부분이 포함되어 있습니다.

이 게시물에서 중점을 두는 Kerberos 흐름 부분은 일반적으로 TGT를 요청하는 데 사용되는 AS-REQ/AS-REP입니다. 일반 작업에서 AS-REQ는 해당 값 내에 두 값 중 하나를 갖습니다.이륙req-body 내부 필드:

Kerberos FAST(Flexible Authentication Secure Tunneling)를 적용한 경우 시스템 계정이 여전히 AS-REQ를 보호되지 않은 상태로 보낸 것으로 나타났습니다. AS-REQ를 사용하여 TGT가 아닌 ST를 직접 요청할 수 있는지 궁금합니다. 이로 인해 Rubeus를 수정하여 다른 SPN을 지정할지 여부를 결정하게 되었습니다.이륙 AS-REQ로 인해 DC는 해당 SPN에 대한 ST로 응답하게 됩니다. 결과적으로 대답은 "예"였습니다(그림 3).

머신 계정을 사용하면 FAST가 적용될 때 아머링을 사용하지 않고 ST를 요청할 수 있습니다. 또 무엇이 가능합니까?

Tim Medin이 발견한 Kerberoasting은 서비스 계정(일반적으로 SPN이 있는 사용자 계정)의 일반 텍스트 암호 또는 NT 해시를 복구하는 방법입니다. Kerberoasting은 ST의 일부가 서비스 계정의 장기 키(비밀번호 해시)로 암호화되기 때문에 가능합니다. 티켓의 암호화된 부분을 추출함으로써 다양한 일반 텍스트 비밀번호로부터 해시를 형성하고 암호화된 부분의 암호 해독을 시도할 수 있습니다. 암호 해독이 성공하면 사용되는 해시는 티켓을 암호화하는 데 사용되는 장기 키입니다. 그러면 해당 키는 궁극적으로 서비스 계정으로 인증하는 데 사용될 수 있습니다.

또한 모든 계정은 모든 서비스에 대해 ST를 요청할 수 있습니다. 따라서 공격을 수행하려면 AD(Active Directory)에 인증하는 기능이 필요합니다. 적어도 그것은 사실이었습니다.

먼저 사전인증이 필요하지 않은 계정(DONT_REQ_PREAUTH)을 이용하여 ST를 요청해 보았습니다. 계정이 인증을 위해 사전 인증을 필요로 하지 않는 경우 사전 인증 데이터를 요구하지 않고 TGT를 요청할 수 있습니다. 이 데이터는 일종의 자격 증명(예: 비밀번호 해시, 인증서)으로 암호화됩니다. 공격자가 계정에 대한 유효한 자격 증명을 얻지 못한 경우 유효한 사전 인증을 생성할 수 없습니다. 사전 인증이 필요하지 않은 경우에는 문제가 되지 않습니다.