NOTICE


  오늘은 문서 취약점 파일을 살펴보겠습니다.


  ‘invbdr.doc’는 .doc 확장자를 취하고 있지만 RTF 문서 파일입니다. CVE-2015-1641 취약점을 사용해서 Microsoft Office 서버의 메모리를 손상시킵니다. 이로 인해 악성코드가 Drop 및 실행 됩니다. 해당 취약점은 문서에 포함된 Embedded Object에 의해 발생됩니다. 다음은 CVE-2015-1641 취약점 파일의 구성 방식입니다.



  MS Office 제품군 중에서 취약한 버전 정보입니다. MS15-022 패치를 하지 않았을 경우, MS Office에서 지원하고 있는 모든 버전에 취약할 수 있습니다.





1. ASLR 우회


  ‘invbdr.doc’에는 ShellCode와 함께 악성 파일 데이터가 포함되어 있습니다. ShellCode는 악성 파일을 Drop 및 실행하는 코드고 구성되어 있습니다. 이러한 ShellCode가 재대로 동작하기 위해서는 ASLR(Address Space Layout Randomization) 우회가 선행되어야 합니다. 그 방법으로 non-ASLR module을 사용합니다.

  1st Embedded Object는 ProgID가 otkloadr.WRAssembly.1로 식별되는 “COM Object”를 로드합니다. 그 결과 “C:\Program Files\Microsoft Office\Office14\ADDINS\OTKLOADR.DLL”이 로드됩니다. 

 


  OTKLOADR.DLL은 기본적으로 Non ASLR 모듈인 MSVRC71.dll을 같이 로드하기 때문에 손쉽게 ASLR을 우회할 수 있습니다.



 


2. HEAP Spray


  2st Embedded Object는 Object Data로 .docx 파일 데이터를 가지고 있습니다. Object Data가 PK 시그니처로 시작하지만 .docx 파일 포멧입니다.



  그리고 그 안에는 총 40개의 .xml과 .bin 파일 데이터가 포함되어 있습니다. .xml의 경우 파일명만 다를 뿐 코드는 모두 동일합니다. 즉 ‘invbdr.doc’를 실행하면 .xml 코드가 40번 동작하게 되는 것입니다. 



  다음은 .xml 파일 코드입니다. 이로 인해 ‘activeX1.bin’ 파일 데이터가 Microsoft Office 서버의 메모리에 올라갑니다.



  ‘activeX1.bin’ 파일을 이루고 있는 코드의 역할과 구성, 동작 흐름에 대해서 살펴보겠습니다. ‘activeX1.bin’ 파일 코드의 주된 역할은 Main Shell Code를 메모리에 로드 및 실행 시키는 것입니다. 그 과정에서 다양한 기법들이 사용됩니다. ‘activeX1.bin’ 파일 코드는 다음과 같이 RETN Sled / ROP Chain / NOP Sled / ShellCode로 구성되어 있습니다.

 


  동작 흐름을 살펴보면 다음과 같습니다.






3. Main Shell code


  Main Shell Code는 암호화되어 있습니다.

 


  그리고 시작 지점에는 43 Byte 크기의 암호화 해제 코드가 있습니다.

 


  암호화된 코드의 복호화가 완료되면 복호화된 코드가 실행됩니다. 그 과정에서 ‘invbdr.doc’는 Malware File Data를 Temp 폴더 경로에 ‘winsvchost.exe’라는 파일명으로 Drop하고 하위 프로세스로 실행시킵니다. 

 




  ‘winsvchost.exe’ 실행이 완료되면 레지스트리를 이용해서 문서 복구 기능을 해제합니다.



  마지막으로 사용자를 속이기 위해 ‘invbdr.doc’를 다시 실행한 뒤에 종료됩니다.  ‘winsvchost.exe’ 악성코드 정보는 다음 링크를 참고하시면 됩니다.


[2016.08.02] Email & Web 계정 정보를 탈취하는 AutoIt 악성코드 정보: http://securityfactory.tistory.com/361


  이상으로 '[DOC] CVE-2015-1641 취약점 파일 정보'에 대한 포스팅을 마치겠습니다.


  1. no picture 2016.11.07 15:39

    비밀댓글입니다