Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2017-0199-Fix — OLE2가 .hta를 통해 코드를 실행하는 문제에 대한 간편한 임시 수정 | Kitploit
도구/GitHubGitHub/notawful/cve-2017-0199-fix
Vulnerability AnalysisExploitationConfiguration AuditingLearning & EducationIncident ResponseArchived
GitHubnotawful/cve-2017-0199-fix

CVE-2017-0199-Fix

OLE2가 .hta를 통해 코드를 실행하는 문제에 대한 간편한 임시 수정

저장소 보기
1329년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2017-0199 수정

.hta 파일의 기본 핸들러를 변경하여 CVE-2017-0199의 코드 실행 기능을 제거합니다. OLE2(COM 개체)를 통해 호출되는 파일의 기본 핸들러는 로컬 시스템의 기본 애플리케이션과 별도로 저장되며 레지스트리를 통해서만 변경할 수 있습니다.

기본 익스플로잇 논리

이는 이 익스플로잇의 한 가지 실제 예시이며, 제가 이해한 대로 설명합니다. 모든 사례가 이 패턴을 따르는 것은 아니며, 제 평가가 정확하지 않을 수 있습니다. 그러나 다음 섹션에서 제시하는 수정은 제가 테스트한 상황에서는 실제로 작동합니다.

  1. 웹 서버에 호스팅된 RTF 문서의 끝에 악성 HTA(하이퍼텍스트 애플리케이션) 페이로드가 'cat'으로 추가됩니다.
  2. 호스팅 서버는 해당 파일에 대한 GET 요청에 콘텐츠가 HTA 파일임을 명시하는 헤더로 응답합니다.
  3. Microsoft Word는 OLE2 개체를 실행하여 웹 서버에서 RTF 문서를 가져옵니다.
  4. Microsoft Word는 확장자 .rtf가 콘텐츠 유형 HTA와 일치하지 않으므로 파일 형식을 검증해야 합니다.
  5. Microsoft Word는 파일 끝에서 인식 가능한 데이터 구조를 확인하고 HTA 데이터 구조를 HTA 콘텐츠 유형과 일치시킵니다.
  6. Microsoft Word는 파일 형식을 자동 수정하고 HTA 파일의 COM 핸들러(mshta.exe)로 전달합니다.
  7. Mshta.exe가 파일 끝에 있는 악성 HTA 코드를 실행합니다.

COM 핸들러는 레지스트리에서 시스템 핸들러와 별도로 저장되어 파일 형식 검증 과정의 오류를 방지합니다.

기본 수정

  1. RegEdit.exe에서 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon으로 이동
  2. DefaultIcon의 고급 사용 권한 열기
  3. 소유자를 Administrators (그룹)로 변경
  4. 현재 사용자 계정을 보안 주체 목록에 추가하고 "모든 권한" 할당
  5. (기본값) 키를 C:\Windows\System32\notepad.exe,1로 편집
  6. DefaultIcon의 고급 사용 권한에서 사용자 제거, 소유자를 SYSTEM으로 재할당
  7. HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32에 대해 1~6단계 반복, (기본값) 키 값을 C:\Windows\System32\notepad.exe로 변경

이렇게 하면 OLE2를 통해 호출되는 .hta 개체의 기본 핸들러를 notepad로 변경하여 CVE-2017-0199의 코드 실행 기능을 제거합니다. 이는 OLE2가 .hta 파일을 호출하는 모든 인스턴스에 적용됩니다. 메모장이 열리고 오류가 발생하지만 코드는 실행되지 않습니다.

원본 레지스트리 키

root@kitploit:~
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

수정된 레지스트리 키

root@kitploit:~
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

환경

  • LAMP 스택 및 SSH 서버를 갖춘 Ubuntu 16.04.2 LTS 서버 1대
  • Office 365 (2016)가 설치된 Windows 10 클라이언트 1대

참고 자료

  • 익스플로잇 개념 증명: https://rewtin.blogspot.ca/2017/04/cve-2017-0199-practical-exploitation-poc.html (2017-04-17 접속)
  • CVE-2017-0199 분석: https://www.fireeye.com/blog/threat-research/2017/04/cve-2017-0199-hta-handler.html (2017-04-17 접속)

교훈

  • HKCR을 직접 편집하지 마십시오. HKCU 또는 HKLM의 관련 키를 편집하십시오.
  • 레지스트리 키의 소유권을 가져온 후 다시 SYSTEM 또는 다른 사용자에게 반환할 수 있습니다.
  • 레지스트리를 건드리지 마십시오. 변경한 후에는 원래 상태로 두십시오.
  • Process Monitor에는 강력한 오른쪽 클릭 필터링 기능이 있어 노이즈를 줄입니다.
  • Process Monitor의 찾기 기능은 모든 필드에서 문자열을 검색합니다.
  • pscp.exe (PuTTY)는 명령줄 SSH 파일 전송 도구입니다.
  • Linux는 여전히 큰 골칫거리입니다.

마무리 말씀

이 완화 조치로 인한 손상이나 문제, 또는 메모장과 많은 오류로 인한 사용자 혼란에 대해 저는 어떤 책임도 지지 않습니다. 이는 임시 방편이며, 프로덕션 환경에서 더 큰 문제를 일으킬지 여부는 알 수 없습니다. 항상 그렇듯이 특정 환경과 요구 사항을 고려하여 완화 조치를 평가하십시오.

이 완화 조치의 전후 효과를 보여주기 위해 나중에 스크린샷을 추가하겠습니다. 또한 스크립트로 수행할 수 있지만, 레지스트리 키의 사용 권한 변경에 어려움이 있어 나중에 처리하겠습니다.

도구 다운로드