Network Access Account Credentials

Windows SCCM 서버에서 배포한 소프트웨어/애플리케이션 등은 Software Distribution Points(SDPs)에 저장되어 있습니다. 클라이언트 지점에서 SDPs(일반적으로 SMB에 공유)에 접근하여 소프트웨어를 다운받으려고 할 때 Windows의 통합 인증(Kerberos/NTLM)을 사용하게 됩니다. 이러한 인증 과정에서 도메인 유저임이 인증되어야 정상적으로 접근할 수 있는데, 관리하는 객체 중에는 도메인에 포함되지 않은 객체가 있거나, 신뢰할 수 없는 도메인에 있는 경우가 있을 수 있습니다. 이렇게 도메인에 포함되지 않은 머신들은 SDPs에 접근 시 도메인 사용자 인증이 불가능하여 이를 지원하기 위해 Network Access Account(NAA)이 존재합니다.

NAA는 도메인 자격 증명으로, 객체 로컬에 DPAPI로 암호화되어 저장됩니다. 객체를 장악했을 때 로컬에 대한 높은 권한이 있다면 복호화하여 평문 자격 증명을 획득할 수 있습니다.

S4U2Self는 TGT의 사본을 위임한 머신에게 전달하지 못하는 경우를 위한 기능으로, 머신의 TGT를 이용하여 클라이언트의 서비스 티켓을 발급하는 역할을 합니다. NAA 역시 도메인 사용자 인증을 하지 못하는 클라이언트를 위해 SCCM에 인증하여 접속할 수 있는 공통 계정에 대한 자격 증명입니다. 보안 정책을 준수하는 조직이라면 NAA의 권한을 SPNs에 대한 읽기 권한(오직 다운로드만 가능한 권한)만 할당하는 것이 정상이지만, 실제로는 과도한 권한을 부여하는 경우가 많기 때문에 이를 통한 측면 이동 및 권한 상승도 가능합니다.

# NAA 자격 증명 확인
Get-WmiObject -namespace "root\ccm\policy\Machine\ActualConfig" -class "CCM_NetworkAccessAccount"

# 관리자 권한 세션에서 도구를 사용한 자격 증명 복호화
.\SharpSCCM.exe local naa -m wmi --no-banner

Microsoft는 NAA 대신 안전한 Enhanced HTTP를 사용하라고 알리지만, 그럼에도 NAA를 사용하는 서버들은 많습니다.

NAA를 사용하던 환경에서 Enhanced HTTP 환경으로 전환한다면 WMI를 통해 암호화된 NAA를 검색할 수 없습니다. 하지만 C:\Windows\System32\wbem\Repository\OBJECTS.DATA 저장소는 모든 CIM 엔티티를 포함하는 파일입니다. NAA 정보가 장치로 전송되어 WMI 클래스에 저장될 때, 실제로 암호화된 데이터는 해당 파일에 저장되기 때문에 Enhanced HTTP로 전환한다고 하더라도 이곳에 자격 증명이 남아있을 수 있습니다.

# 디스크에 저장된 NAA 덤프
\SharpSCCM.exe local secrets -m disk

References

Last updated

Was this helpful?