Windows10과 Windows11은 낮은 권한을 가진 사용자가 민감한 레지스트리 데이터베이스 파일에 액세스할 수 있는 로컬 권한상승 취약점에 노출되었다.
Windows 레지스트리는 Windows 운영체제의 구성 레포지토리 역할을 하며 해시 암호, 사용자 지정, 응용 프로그램의 구성 옵션, 시스템 암호 해독 키 등을 포함한다.
Windows 레지스트리와 관련된 데이터베이스 파일은 C:\Windows\system32\config 폴더에 저장되며 SYSTEM, SECURITY, SAM, DEFAULT 및 SOFTWARE와 같은 여러 파일로 나눠져 있다. 이러한 파일에는 장치의 모든 사용자 계정과 Windows 기능에서 사용하는 보안 토큰에 대한 민감한 정보가 포함되어 있으므로 상승된 권한이 없는 일반 사용자가 이러한 파일을 볼 수 없도록 제한해야 한다. 특히 보안 계정 관리자(SAM) 파일에는 시스템의 모든 사용자에 대한 해시된 암호가 포함되어 있어 공격자가 시스템의 정상 사용자로 위장할 수 있기 때문에 더욱 중요하다.
최근에 공개된 CVE-2021-36934인 HiveNightmare(SeriousSAM) 취약점을 통해 지난 2년 동안 출시된 모든 Windows10 버전(1809 및 이후 릴리즈 버전) 및 Windows11에서 SAM 및 모든 레지스트리 데이터베이스와 관련된 레지스트리 파일이 장치에 대한 낮은 권한을 가진 사용자(Users) 그룹에 액세스할 수 있다는 사실이 밝혀졌다.
[그림 1] SAM 파일에 대한 권한 (출처 : Bleepingcomputer)
HiveNightmare(SeriousSAM)은 SAM 데이터베이스 내부의 여러 시스템 파일에 대한 ACL 권한 유실로 인해 발생하는 권한 상승 취약점이며 잘못된 구성을 통해 권한이 낮은 사용자가 호스트의 SAM, 시스템 및 보안 Windows 레지스트리 하이브 파일을 읽을 수 있다.
해당 취약점을 악용할 경우 로컬 공격자가 SYSTEM 권한으로 임의의 코드를 실행할 수 있고 결과적으로 공격자는 피해자에게 악성 소프트웨어 감염 및 민감한 데이터 액세스, 새 관리자 계정 생성 등의 악의적인 행동이 가능하다. 그리고 제한된 권한을 가진 공격자는 장치의 모든 계정에 대한 NTLM 해시 암호를 추출하고 이러한 해시를 pass-the-hash 공격을 통해 상승된 권한을 얻을 수 있다. 그러나 공격을 지속하기 위해 공격 대상 장치에서 코드를 실행할 수 있어야 한다는 전제 조건이 필요하다.
SAM 파일과 같은 레지스트리 파일은 운영 체제에서 항상 사용하기 때문에 파일에 액세스하려고 하면 파일이 열려 있고 다른 프로그램에 의해 잠겨 있으므로 액세스 위반이 발생한다.
[그림 2] 열려 있는 SAM 파일 액세스 실패
그러나 SAM을 포함한 레지스트리 파일은 일반적으로 Windows 쉐도우 볼륨 복사본에 의해 백업되므로 액세스 위반 없이 쉐도우 볼륨을 통해 파일에 액세스할 수 있다.
예를 들어, 공격자는 컴퓨터의 모든 사용자가 SAM 파일에 액세스하기 위해 아래의 쉐도우 볼륨 복사본에 대해 다음 Win32 장치 네임스페이스 경로를 사용할 수 있다.
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM
보안 연구원이자 Mimikatz 제작자인 Benjamin Delpy는 파일의 쉐도우 볼륨 복사본과 함께 낮고 잘못된 파일 권한을 사용하여 높은 권한을 얻기 위해 상승된 계정의 NTLM 해시 암호를 쉽게 훔칠 수 있고 이 공격으로 Mimikatz가 NTLM해시를 사용하여 디버그 권한을 얻을 수도 있으며 NTLM 해시를 훔치고 권한을 높이는 것 외에도 낮은 권한이 부여된 액세스가 Silver Ticket 공격과 같은 추가 공격을 허용할 수 있다고 말했다.
Windows10 또는 Windows11 설치가 영향을 받는지 확인하려면 명령 프롬프트(cmd.exe)를 열고 다음 명령을 입력해 본다.
icacls c:\windows\system32\config\sam
해당 명령 수행 후 출력된 메시지에 다음 권한이 표시된다면 설치된 Windows가 취약점에 영향을 받는다.
BUILTIN\Users:(I)(RX)
Microsoft는 공식적인 패치 발표 이전에 아래와 같은 임시 조치방법을 공유했다.
%windir%\system32\config 요소 액세스 제한
관리자 권한의 명령 프롬프트(cmd.exe) 또는 파워쉘(powershell.exe) 실행
“icacls %windir%\system32\config\*.* /inheritance:e” 명령어를 실행
Volume Shadow Copy Service(VSS) 볼륨 쉐도우 복사본 삭제
%windir%\system32\config에 대한 액세스를 제한하기 전에 존재했던 모든 시스템 복원 지점 및 쉐도우 볼륨 삭제
새 시스템 복원 지점 생성(원하는 경우)
* 볼륨 쉐도우 복사본 삭제는 복원 작업에 영향을 미칠 수 있기에 주의가 필요합니다.
[참고자료]
https://www.bleepingcomputer.com/news/microsoft/new-windows-10-vulnerability-allows-anyone-to-get-admin-privileges/
https://socprime.com/blog/detect-hivenightmare-cve-2021-36934-exploitation-attempts/
보안관제센터 Team MIR