KOROMOON

착한 사마리아인이 되고 싶습니다.

10/30/2018

Microsoft Office 온라인 비디오 기능을 악용한 악성코드 삽입


( 1 ) 버그 설명




2018년 10월 25일 Cymulate 연구팀에서 Microsoft Office 온라인 비디오 기능을 악용한 악성코드 삽입을 공개함.
해당 버그를 확인하고 Microsoft 사에 통지하였으며 Microsoft Office 온라인 비디오 기능에서 JavaScript 코드 실행이 가능한 것으로 확인됨.
2016 및 이전 버전에서도 실행할 수 있으며 PoC 를 재현하였을 시 자체 프로그램의 보안 경고가 표시되지 않음을 확인함.



( 2 ) PoC 실행 방법


1. Word 문서를 하나 생성함.



2. 삽입 -> 온라인 비디오 클릭한 후 YouTube 주소를 삽입함.

3. Word 문서를 저장함.



4. Word 문서를 압축 해제함.
docx 파일은 실제 docx 파일에서 볼수 있는 모든 미디어 파일 패키지로 여러 개의 파일과 디렉토리가 있음.

5. word 폴더 안에 document.xml 파일을 편집함.



6. xml 파일에서 YouTube iframe 코드가 포함된 embeddedHtml 매개 변수를 찾음. (webVideoP 아래 있음)
해당 iframe 코드를 Internet Explorer 에서 렌더링할 악의적인 HTML 코드나 자바스크립트 코드로 바꿈.


EmbeddedHTML["string"]
HTML 컨텐츠 "문자열" 을 포함하는 웹 프레임 형식을 지정하는 객체임.

EmbeddedHTML[CloudObject[…]]
지정된 클라우드 객체의 웹 렌더링 형식임.

EmbeddedHTML에 주어진 문자열은 <html> ... </ html> 형식으로 제공된 전체 HTML 페이지의 HTML 일 수도 있고 HTML 태그 시퀀스일 수도 있음.

7. 변경된 document.xml 파일를 저장한 후 docx 패키지로 만든 후 실행시킴.

실행되면 코드는 msSaveOrPenBlob 메소드를 사용하여 파일을 실행하거나 저장하는 옵션이 있는 Internet Explorer Download Manager를 열어 실행 파일 다운로드를 시작함.
참고로 이 문서를 Microsoft Word 에서 열 때 보안 경고가 표시되지 않음.


msSaveOrPenBlob 메소드
파일 또는 Blob(불변 원시 데이터 파일과 같은 개체)에 대한 관련 응용 프로그램을 시작함.

기본 형식 :
var retVal = navigator.msSaveOrOpenBlob(blob, defaultName);

파라미터 :
blob [in]
Type: any

defaultName [in, optional]
Type: DOMString

retVal [out, retval]
Type: boolean

반환값 :
유형 - boolean
거짓 - 실패가 발생함.
 - 알림 표시 줄이 표시되어있는 한 참을 반환함.



( 3 ) 방어책


Word 문서의 Document.xml 파일에 "embeddedHtml" 태그가 포함 된 Word 문서를 차단해야 함.




참고 사이트 : 

https://blog.cymulate.com/abusing-microsoft-office-online-video
https://reference.wolfram.com/language/ref/EmbeddedHTML.html
https://msdn.microsoft.com/en-us/library/hh772332(v=vs.85).aspx



============================================================
본 게시물은 KOROMOON 님께서 작성하였으며 CCL (Creative Commons License) 에서 "저작자표시-비영리-동일조건변경허락" 이용조건으로 자료를 이용하셔야 합니다.

댓글 없음:

댓글 쓰기