보안동향

최신 보안정보를 신속하게 전해드립니다.

[보안취약점] PrintNightmare (CVE-2021-1675) PoC Exploit 공개

2021-07-05


☐ 개요

인쇄 작업을 관리하는 Windows 프로그램인 Print Spooler (spoolsv.exe)의 취약점 (CVE-2021-1675)에 대한 POC 코드가 2021년 6월 29일 Github에 공개되었다. 해당 취약점을 이용하면 원격으로 인증된 모든 사용자가 SYSTEM 권한으로 임의의 코드를 실행할 수 있다. 이는 spooler service가 동작하는 윈도우 서버에서 동작하며, 도메인 컨트롤러 서버의 경우 디폴트로 spooler service가 동작하기 때문에 더욱 각별한 주의가 요구된다.

마이크로소프트는 2021년 6월 8일, CVE-2021-1675에 대한 패치를 발표하면서 처음에는 이 취약점을 심각도가 낮은 권한 취약점이라고 설명하였으나, 6월 21일 심각한 심각도로 업데이트하고 원격 코드 실행 (RCE) 가능성이 있다고 밝혔다.

 


☐ 영향받는 버전

- 윈도우즈 서버 : 2008(R2 포함), 2012(R2 포함), 2016, 2019, 2004, 20H2

- 윈도우즈 7, 8.1, RT 8.1, 10(1607, 1809, 1909, 2004, 20H2)

 


☐ 패치가 완료된 일부 시스템에서 여전히 CVE-2021-1675가 동작

2021년 6월 8일 마이크로소프트가 CVE-2021-1675에 대한 패치를 발표하였지만,

일부 보안 연구원들은 패치가 적용된 일부 시스템(Windows Server 2019 등)에서 여전히 CVE-2021-1675가 동작함을 발견하였다. 따라서, CVE-2021-1675에 대한 추가 보안 패치가 발표되기 전까지 아래와 같은 임시 조치가 필요할 것으로 보인다.

 

 

☐ 보안 권고 사항

1. spooler service 비활성화 (spooler service를 필요로 하지 않는 시스템의 경우)

PowerShell에서 아래 명령어를 통해 spooler service를 비활성화한다.

Stop-Service Spooler -F


REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\Spooler" /v "Start" /t REG_DWORD /d "4" /f

[ Powershell을 통한 spooler service 비활성화 ]

 

[ spooler service 비활성화 확인 ]

 

 

 

2. ACL 설정 (spooler service가 필요한 시스템의 경우)

CVE-2021-1675 취약점 공격이 특정 경로("C:\Windows\System32\spool\drivers")의 하위 경로에 악성 DLL을 드롭한다는 점에 착안하여 해당 경로의 ACL 정책을 아래와 같이 설정한다.

$Path = "C:\Windows\System32\spool\drivers"


$ACL = Get-Acl $Path


$NewRule = New-Object System.Security.AccessControl.FileSystemAccessRule("System", "Modify", "ContainerInherit, ObjectInherit", "None", "Deny")

 

$ACL.AddAccessRule($NewRule)


Set-Acl $Path $ACL

[ Powershell을 통한 ACL 설정 ]

 


[ ACL 설정 확인 ]


3. AD GPO 정책 설정 (spooler service가 필요한 AD 시스템인 경우)

AD GPO 정책에서 spooler에 대한 클라이언트 연결을 거부하도록 설정한다.

Computer Configuration -> Administrative Templates -> Printers -> Allow Print Spooler to accept client connections -> Disabled

 

[ AD GPO 정책 설정 ]


4. printservice 이벤트 로그 활성화를 통한 모니터링 강화

Powershell에서 아래 명령어를 통해 printservice 이벤트 로그를 활성화하여 모니터링을 강화한다.

$log = Get-WinEvent -ListLog 'microsoft-windows-printservice/operational'


$log.IsEnabled = $True


$log.SaveChanges()

[ Powershell을 통한 이벤트 로그 활성화 ]

 

 

☐ 참고자료

https://www.blumira.com/cve-2021-1675/

https://blog.truesec.com/2021/06/30/fix-for-printnightmare-cve-2021-1675-exploit-to-keep-your-print-servers-running-while-a-patch-is-not-available/

https://www.marketscreener.com/quote/stock/RAPID7-INC-23055722/news/Rapid7-nbsp-CVE-2021-1675-PrintNightmare-Patch-Does-Not-Remediate-Vulnerability-35758975/

https://www.huntress.com/blog/critical-vulnerability-printnightmare-exposes-windows-servers-to-remote-code-execution

 

 

보안관제센터 Team MIR

목록