작성자 : 김태훈 책임컨설턴트
▷ 편집자 : 니키 (ngnicky@a3sc.co.kr)
[A3AID06-15]

Microsoft Office Excel(hlink) Stack 오버플로우 취약점


문서 작성일 : 2006. 7. 28

취약점 발표일 : 2006. 6. 19

위험등급:

현재 상태(패치 여부) : 패치

벤더: Microsoft Windows


대상 시스템 :

해당 취약점에 영향을 받는 시스템 목록은 아래와 같으며, 영문 버전 및 한글 버전에서도 악성 코드 실행 취약점이 확인 되었다.

- Microsoft Office Excel 2000 on Windows XP SP1
- Microsoft Office Excel 2000 on Windows 2000 SP4
- Microsoft Office Excel XP on Windows XP SP2
- Microsoft Office Excel XP SP1 on Windows XP SP2
- Microsoft Office Excel XP SP2 on Windows XP SP2
- Microsoft Office Excel XP SP3 on Windows XP SP2
- Microsoft Office Excel 2003 on Windows XP SP2
- Microsoft Office Excel 2003 SP1 on Windows XP SP2
- Microsoft Office Excel 2003 SP2 on Windows XP SP2
- Microsoft Office Hyperlink 라이브러리를 사용하는 Excel 버전


취약점 개요:

2006년 6월 19일, Microsoft Office Excel 에서 하이퍼링크(Hyperlink)를 처리하는 hlink.dll 라이브러리에서 stack overflow 취약점이 존재하는 것을 확인 하였다.
Microsoft Hyperlink Library(hlink.dll)은 하이퍼링크의 기본 동작인 하이퍼링크를 만들고, 바인딩하고, 이동하는 작업을 처리하기 위한 공통 프레임워크로 Microsoft Office 응용 프로그램에서 사용한다.
Hyperlink Library(hlink.dll) stack overflow 취약점은 Microsoft Office 문서에서 하이퍼링크 입력 데이터를 처리 시 바운더리(boundary) 체크 미흡으로 발생한 것으로, 입력 데이터로 사용된 악성 코드가 실행될 수 있다.
이 취약점은 Microsoft사에서 공식적인 패치를 내 놓지 않은 일명 제로데이 취약점으로 공격코드가 공개된 상태이며, Microsoft Office 응용 프로그램에서 Hyperlink 취약점이 보고 되어 있다.
본 보안 권고는 Microsoft Office 응용 프로그램 중에서 Excel 프로그램을 대상으로 분석하였다.


취약점 개요:

취약점 영향

Microsoft Office Hyperlink Library

원격 코드 실행

긴급



취약점 세부 분석 :

1. 취약점 내용
Microsoft Hyperlink Library(hlink.dll)은 하이퍼링크의 기본 동작인 하이퍼링크를 만들고, 바인딩 하고, 이동하는 작업을 처리하기 위한 공통 프레임워크로 Microsoft Office응용 프로그램에서 사용한다.

이 취약점은 MICROSOFT Excel 에서 사용자가 악의적으로 조작된 비정상적인 긴 문자열로 이루어진 하이퍼링크를 여는 순간 이를 hlink.dll 모듈에서 처리할 때 경계 처리 미흡으로 인해 Stack / SEH 버퍼 오버플로우가 발생한다. 이를 이용하여 MICROSOFT Excel에 DoS 공격을 할 수 있고, 로컬 사용자의 권한으로 임의의 코드를 실행시킬 수 있으며, 또한 개인정보 유출을 노리는 악성프로그램을 설치할 수 있다.

* 참고 : SEH(Structured Exceptions Handle)는 윈도우 자체에서 제공하는 예외처리 방식이다.

다음 그림은 MICROSOFT Excel 에서 사용자가 하이퍼링크를 열 때 hlink 모듈이 올라온 후 경계처리 미흡 취약점으로 인해 비정상적으로 긴 문자열을 스택 부분에 쓸 때 버퍼 오버플로우가 발생하여 SEH를 덮어쓴 화면이다. SHE를 덮어 쓴 주소는 MICROSOFT Office 한글 버전 쉘 코드 주소 영역인 관계로 외부 노출이 될 경우 악용될 수 있기 때문에 노출되지 않도록 처리하였다.

 



다음 그림은 오버플로우된 SEH 를 사용하여 EIP를 변경하여 쉘 코드를 실행시키기 위해 고의적으로 예외처리 오류를 발생시키는 화면이다.

 



현재 이 취약점을 이용하여 메일, 배너, 링크 등의 방법을 이용하여 사용자로 하여금 악의적으로 조작된 문서를 다운로드 받아 하이퍼링크를 클릭하게 유도하여 개인정보를 유출하게 하는 등의 악성 프로그램을 실행하는 공격이 보고되었다.


2. 공격 분석
본 취약점은 현재 실제 동작하는 HyperLink가 조작된 공격 문서 생성코드가 이미 공개된 상태이다. 이를 이용하여 사용자가 해당 문서에 포함된 하이퍼링크를 클릭하였을 때 4444 포트를 Bind 하여 해당 포트에 접속하여 로컬 사용자의 권한으로 쉘을 획득하는 테스트를 해보았다.

다음 그림은 HyperLink 라이브러리 취약점에 대한 공격 문서 생성 코드이다. MICROSOFT Office 한글 버전에서 쉘 코드 실행 여부를 확인하기 위하여 해당 한글 버전 별 쉘 코드 리턴 주소를 분석하여 공격 문서를 생성하여 테스트 하였다.
 


이 공격 문서는 사용자가 이를 Excel에서 열어 하이퍼링크를 클릭하였을 때 Stack / SEH 버퍼 오버플로우를 일으켜 4444번 포트를 Bind 한다.

공격문서는 조작된 긴 HpyerLink가 포함되어 있으며, 이 HyperLink에서 버퍼오버플로우가 일어나는 부분에 4444 포트를 Bind하는 쉘코드가 포함 되어있다.

다음 그림은 이 생성된 공격 문서의 내용을 살펴보았다.


다음은 공격문서를 임의의 사용자가 열어 하이퍼 링크를 클릭하여 4444 포트를 Bind 후 외부에서 대상시스템에 대하여 로컬 사용자의 권한으로 Bind된 포트에 연결하여 쉘을 획득하는 테스트를 해보았다.

해당 공격문서를 열면 조작된 긴 HyperLink가 존재하고 있다. HyperLink 처리되어 있는 문자열에 마우스 포인터를 갖다 놓으면, HyperLink 정보를 출력해 준다. HyperLink 정보를 출력하는 라이브러리는 linkinfo.dll로 취약점이 보고되지 않았다. 즉, HyperLink 처리되어 있는 문자열에 대한 단순 링크정보 확인 시에는 악성 코드가 실행되지 않는다.




다음 그림은 HyperLink 처리되어 있는 문자열을 클릭하였을 때 악성 코드가 실행되고 Excel는 Crash 되어 응답을 멈추게 된다.


SHE 조작으로 악성 쉘 코드가 실행되어 대상 시스템의 4444 port가 Bind 되어 있음을 확인할 수 있다.


해당포트에 대한 프로세스를 확인한 결과 MICROSOFT Excel에서 해당 포트를 Open하고 있음을 확인할 수 있다.


해당 4444 포트를 외부에서 접근하여 쉘 획득에 성공하여 명령어를 실행하고 결과를 확인할 수 있다. 또한 해당 문서를 열람한 사용자의 계정으로 쉘이 연결됨을 확인할 수 있다.



3. 위험 분석
상기 취약점을 이용한 실제 동작하는 공격 코드가 이미 공개된 상태이므로, 이를 응용한 많은 해킹 피해가 예상된다. 특히 이를 이용한 악성프로그램을 설치하는 Malware로 인해 개인정보 노출 등의 악의적인 공격에 피해를 입을 수 있으며, 공격에 성공하였을 경우 시스템에 대한 완전한 권한을 얻게 되어 치명적인 위험에 놓일 수 있다.

해당 취약점은 단지 MICROSOFT Excel 에만 국한 된 것이 아닌 hlink.dll 모듈을 사용하는 어플리케이션 전체 취약점이다. 따라서 본 취약점 분석에서 해당되었던 버전이 외(MICROSOFT Office 2003)에도 아래 보안대책을 적용하길 권고한다.


대응 방안:
인터넷 및 전자우편으로 통해 전달받은 Excel 문서는 가급적 열람해서는 안되며, 열람할 경우에 확인되지 않는 하이퍼링크는 클릭해서는 안된다.
안티바이러스 솔루션 업체에서 해당 취약점을 이용한 악성 코드 공격 대한 점검 룰이 업데이트 되었는지 확인하고, 악성 코드 공격에 대해서 실시간 대응을 하도록 한다.


관련 사이트 :

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-3086
http://www.microsoft.com/technet/security/advisory/921365.Microsoftpx
http://blogs.technet.com/Microsoftrc/archive/2006/06/20/437826.aspx
http://Microsoftdn.microsoft.com/library/default.asp? url=/workshop/misc/hlink/reference/ifaces/ihlink/ihlink.asp

Copyright(c) 1998-2006 A3 Security Consulting.,LTD

Disclaimer

* 현재 (주)에이쓰리시큐리티컨설팅에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트 될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 (주)에이쓰리시큐리티컨설팅에서는 일체의 책임을 지지 아니합니다.