
OLE2가 .hta를 통해 코드를 실행하는 문제에 대한 간편한 임시 수정
.hta 파일의 기본 핸들러를 변경하여 CVE-2017-0199의 코드 실행 기능을 제거합니다. OLE2(COM 개체)를 통해 호출되는 파일의 기본 핸들러는 로컬 시스템의 기본 애플리케이션과 별도로 저장되며 레지스트리를 통해서만 변경할 수 있습니다.
이는 이 익스플로잇의 한 가지 실제 예시이며, 제가 이해한 대로 설명합니다. 모든 사례가 이 패턴을 따르는 것은 아니며, 제 평가가 정확하지 않을 수 있습니다. 그러나 다음 섹션에서 제시하는 수정은 제가 테스트한 상황에서는 실제로 작동합니다.
COM 핸들러는 레지스트리에서 시스템 핸들러와 별도로 저장되어 파일 형식 검증 과정의 오류를 방지합니다.
이렇게 하면 OLE2를 통해 호출되는 .hta 개체의 기본 핸들러를 notepad로 변경하여 CVE-2017-0199의 코드 실행 기능을 제거합니다. 이는 OLE2가 .hta 파일을 호출하는 모든 인스턴스에 적용됩니다. 메모장이 열리고 오류가 발생하지만 코드는 실행되지 않습니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon\(Default)
C:\Windows\SysWOW64\mshta.exe,1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32\(Default)
C:\Windows\SysWOW64\mshta.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon\(Default)
C:\Windows\System32\notepad.exe,1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32\(Default)
C:\Windows\System32\notepad.exe
이 완화 조치로 인한 손상이나 문제, 또는 메모장과 많은 오류로 인한 사용자 혼란에 대해 저는 어떤 책임도 지지 않습니다. 이는 임시 방편이며, 프로덕션 환경에서 더 큰 문제를 일으킬지 여부는 알 수 없습니다. 항상 그렇듯이 특정 환경과 요구 사항을 고려하여 완화 조치를 평가하십시오.
이 완화 조치의 전후 효과를 보여주기 위해 나중에 스크린샷을 추가하겠습니다. 또한 스크립트로 수행할 수 있지만, 레지스트리 키의 사용 권한 변경에 어려움이 있어 나중에 처리하겠습니다.