위임 허용

설명

소스 보안 주체가 대상 컴퓨터에서 프로토콜 전환을 사용하여 Kerberos 제한 위임(KCD)을 수행할 수 있습니다. 이것은 이 주체가 대상 컴퓨터에서 실행 중인 모든 서비스에 대하여 Kerberos를 사용하여 인증하면 어느 사용자로든 가장할 수 있다는 의미입니다.

따라서 이렇게 하면 대상 컴퓨터 전체를 침해하는 결과를 초래하는 경우가 많습니다.

악용

소스 보안 주체를 침해하는 공격자는 Rubeus와 같은 전용 해커 도구를 사용하여 적법한 Kerberos 프로토콜 확장자(S4U2self 및 S4U2proxy)를 악용해 Kerberos 서비스 티켓을 위조하고 표적 사용자로 가장할 수 있습니다. 공격자는 권한 있는 액세스를 얻기 위해 권한 있는 사용자로 가장할 가능성이 큽니다.

공격자는 서비스 티켓을 위조한 다음, Kerberos와 호환되는 각종 네이티브 관리 도구나 전문 해커 도구를 사용하여 원격으로 임의의 명령을 실행할 수 있습니다.

악용 시도가 성공하려면 다음과 같은 제약을 충족해야 합니다.

  • 소스 보안 주체가 프로토콜 전환에 대해 사용으로 설정되어야 합니다(UserAccountControl의 ADS_UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION/위임 GUI의 "모든 인증 프로토콜 사용"). 좀 더 정확히 말하자면, 공격은 프로토콜 전환 없이도(위임 GUI의 "Kerberos만 사용") 작동할 수 있지만 공격자가 우선 대상 사용자에게서 소스 보안 주체로 Kerberos 인증을 강제해야 하므로 공격이 더 어려워집니다. 따라서 이 경우 Tenable Identity Exposure에서는 공격 관계를 만들지 않습니다.

  • 소스와 대상 보안 주체에 ServicePrincipalName이 있어야 합니다. Tenable Identity Exposure는 이 조건 없이 이 공격 관계를 만들지 않습니다.

  • 스푸핑 표적인 계정이 "중요하며 위임할 수 없음"(UserAccountControl의 ADS_UF_NOT_DELEGATED)으로 표시되어서도, "보호된 사용자" 그룹의 멤버여서도 안 됩니다. 이러한 계정은 Active Directory가 위임 공격으로부터 보호하기 때문입니다.

반대로, 위임이 허용된 대상 컴퓨터는 SPN(Service Principal Name)이 지정되므로 특정 서비스를 포함합니다(예: SMB의 경우 "cifs/host.example.net", HTTP의 경우 "http/host.example.net" 등). 단, 공격자는 실제로 "sname 대체 공격"을 사용하여 동일한 대상 계정 아래에서 실행되는 다른 모든 SPN과 서비스를 표적으로 삼을 수 있습니다. 따라서 이것은 제한 사항이 아닙니다.

수정

소스 보안 주체에게 대상 컴퓨터에서 Kerberos 제한 위임(KCD)을 수행할 권한이 필요하지 않은 경우, 제거해야 합니다. 수정은 소스 쪽에서 수행해야 합니다("작업 허용" 위임 공격 관계와는 다름).

소스 보안 주체를 제거하는 방법:

  1. "Active Directory 사용자 및 컴퓨터" 관리 GUI에서 소스 개체의 속성 > 위임 탭으로 이동합니다.

  2. 대상에 해당하는 서비스 주체 이름을 제거합니다.

  1. 이 소스에서 위임을 원하지 않으면 모든 SPN을 제거하고 "이 컴퓨터를 위임에 대해 신뢰하지 않음"을 선택합니다.

또는 PowerShell을 사용하여 소스의 "msDS-AllowedToDelegateTo" 특성을 수정할 수 있습니다.

  • 예를 들어, PowerShell에서 이 명령을 실행하여 모든 값을 바꿉니다.

복사
Set-ADObject -Identity "CN=Source,OU=corp,DC=example,DC=net" -Replace @{ "msDS-AllowedToDelegateTo" = @("cifs/desiredTarget.example.net") }
  • 이 소스에서 위임을 원하지 않는 경우, 다음 명령을 실행하여 특성을 지웁니다.

복사
Set-ADObject -Identity "CN=Source,OU=corp,DC=example,DC=net" -Clear "msDS-AllowedToDelegateTo"

프로토콜 전환을 사용 중지하여 위험을 완화하면서도 이 공격 경로를 완전히 닫지는 않을 수도 있습니다. 이렇게 하려면 모든 보안 주체가 소스에 NTLM이 아니라 Kerberos만 사용하여 연결해야 합니다.

프로토콜 전환을 사용 중지하는 방법:

  1. "Active Directory 사용자 및 컴퓨터" 관리 GUI에서 소스 개체의 속성 > 위임 탭으로 이동합니다.

  2. "모든 인증 프로토콜 사용" 대신 "Kerberos만 사용"을 선택합니다.

아니면 PowerShell에서 다음 명령을 실행하여 프로토콜 전환을 사용 중지할 수 있습니다.

복사
Set-ADAccountControl -Identity "CN=Source,OU=corp,DC=example,DC=net" -TrustedToAuthForDelegation $false

마지막으로, 중요한 권한 있는 계정이 그러한 위임 공격에 노출되는 정도를 제한하기 위한 일반적인 권장 사항으로, Tenable Identity Exposure에서는 관련된 운영상 영향을 주의하여 확인한 후에 "중요하고 위임할 수 없음"(ADS_UF_NOT_DELEGATED)으로 표시하거나 "보호된 사용자" 그룹에 추가하는 것을 권장합니다.

참고 항목