티스토리 뷰

[Malware analtsis] CVE-2017-11882 Microsoft Office EQENDT32 취약점


  1. CVE-2017-11882 

  • Microsoft Office 2007, 2010, 2013 등으로 현재 시중에서 이용되고 있는 대다수의 MS Office 제품군이 해당된다. 이에 따라 취약점의 심각도 또한 높음(HIGH)”으로 분류되어 있다.

  •   

  1. CVE-2017-11882 분석    

파일명 

CVE-2017-11882/OLE 

파일크기 

50.1 KB 

MD5 

89E36574ECE95178C511705A999A4E6E 

SHA-256 

c63ccc5c08c3863d7eb330b69f96c1bcf1e031201721754132a4c4d0baff36f8 

표 1  CVE-2017-11882 

 취약점 발생 원인 

Microsoft Office의 수식 편집기(EQNEDT32) 이용 취약점으로 수식이 포함된 문서를 열 때 수식 처리와 관련 OLE 객체를 처리하기 위해 수식편집기(EQNEDT32)가 실행된다. 다수의 OLE 객체 중 해당 POC 예제에는 Equation Native 객체에 계산기를 실행하는 쉘코드가 있는데 구조를 살펴보게 되면 Equation Native 헤더 뒤에 MTEF 데이터가 있다. MTEF 데이터 내부엔 다수의 레코드를 가지고 있는데, 살펴보게 되면 MTEF 헤더 뒤에 MTEF 레코드의 시작 부분에 0x08이면 폰트 레코드로 처리가 된다. CVE-2017-11882의 취약점과 관련 부분은 해당 부분에 폰트 레코드 내부의 폰트명 데이터 부분이 취약점과 관련이 있다. 


취약점 및 쉘 코드 예시


 

실행 화면  


상세 분석 

   취약점 발생 원인 부분을 살펴보면 Microsoft Office의 수식 편집기(EQNEDT32)을 이용하여 쉘 코드를 실행하는 한다는 사실을 알 수       있다. Cve-2017-11882.rtf을 실행 시 수식 편집기가 실행 되면서 취약점이 발생하는 걸 확인하였다.


EQENDT32.EXE 디버깅 방법



정보 검색을 통해 EQNEDT32.EXE의 SUB_41160F 내의 스택 오버플로우에 취약한 함수인 strcpy(사용으로 인해 쉘 코드가 실행되는 걸

  확인 할 수 있다. 본 보고서에서는 SUB_41160F() 함수의 디버깅을 진행하였다.

  0x41160F 내의 스택 오버플로우에 취약한 strcpy() 함수 부분을 확인 할 수 있다. IDA을 이용하여 strcpy() 함수에는 0x41160F의 첫번째    인자가 들어가는 걸 확인하였다. 디버깅을 통해 해당 0x41160F 첫 번째 호출 정상적인 호출로 확인 할 수 있었으며, 두 번째 호출      시 해당 인자 값을 살펴보면 계산기를 실행하는 쉘 코드를 확인 할 수 있었다.  


SUB_41160F  


    첫 번째 호출 시 RET 주소가 정상적일 때와 두 번째 호출 시 취약점을 이용하여 RET 주소가 변경되는 스택을 살펴보자.

0x10, 0x30 각각 복사한 부분을 살펴보게 되면 각 복사된 값의 마지막은 null(0x00)으로 끝나는 걸 확인 할 수 있다. 이를 통해 strcpy() 사용 시 버퍼 경계 체크가 없어 취약점이 확인되었다는 것을 알 수 있다.  

Cve-2017-11882 취약점은 스택 오버플로우에 취약한 함수인 strcpy() 함수을 이용하여 발생한 취약점이다. 이후 버퍼 크기를 확인하는 코드가 추가되었지만, CVE-2018-0802 취약점이 발견되었다. 


파일첨부

댓글
공지사항
«   2020/01   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Total
137,274
Today
0