[하루한줄] CVE-2020-17049: Kerberos Bronze Bit Attack

URL

CVE-2020-17049: Kerberos Bronze Bit Attack – Practical Exploitation

Target

standard Windows versions since 2000

Explain

Kerberos는 Windows Active Directory 도메인 내에서 사용자, 서버 및 기타 리소스를 서로 인증하는 데 사용되는 프로토콜입니다.
Kerberos의 기존 공격 방법인 Golden Ticket 및 Silver Ticket 공격의 변형인 Bronze Bit 공격이 공개되었습니다.

Golden/Silver Ticket 공격
내부 네트워크에 침입한 이후 동일한 네트워크의 Kerberos 인증시스템을 사용하는 다른 시스템의 자격 증명을 위조하는 공격기법


Bronze Bit는 Microsoft가 Kerberos 프로토콜에 추가 한 S4U2selfS4U2proxy 프로토콜을 악용하며 Kerberos 프로세스가 변조된 서비스 티켓을 감지할 수 없어 발생합니다. 공격을 위해서는 다음 조건이 만족되어야 합니다.

  1. 해커는 내부 네트워크의 시스템 하나(Service1)를 장악해 Active Directory 내에 접근 권한이 있어야 합니다.
  2. 침입한 시스템인 Service1에 대한 암호 해시가 필요합니다.
  3. Service1에는 다른 시스템(Service2)에 대한 제한된 신뢰 관계가 있습니다.

위 조건이 만족되면 해커는 다음과 같은 공격이 가능합니다.

  1. 사용자를 식별하고 티켓을 반환하는 S4U2self 에서 User2의 Service1 서비스 티켓을 가져옵니다. 이때 force-forwardable 옵션을 사용하면 반환하는 서비스 티켓이 전달 가능한 티켓으로 변환됩니다.
  2. Service1의 해시로 티켓을 복호화하고 플래그 값의 두 번째 비트를 0→1 로 변경한 뒤 다시 암호화합니다.
  3. 조작된 티켓은 S4U2proxy 에서 전송되고 Service2에 대한 서비스 티켓이 User2로 반환되어 User2.ccache의 디스크에 기록됩니다.
  4. 해커는 Service1 유저(User1) 권한으로 Service2 유저(User2)의 Kerberos 서비스 티켓을 얻을 수 있어 User2 권한으로 Service2에 액세스가 가능합니다.

이는 Golden/Silver Ticket과 유사한 공격 방법이지만 단일 비트 플립을 이용했기 때문에 Bronze Bit로 명명되었습니다.

Reference

https://blog.netspi.com/cve-2020-17049-kerberos-bronze-bit-theory/