
Microsoft Office Onenote 2007 (CVE-2014-2815) ".ONEPKG" 파일 디렉토리 트래버설 취약점으로 인한 임의 코드 실행
Microsoft Office Onenote 2007 (CVE-2014-2815) ".ONEPKG" 파일 디렉터리 트래버설 취약점으로 인한 임의 코드 실행 Microsoft Office Onenote 2007 (CVE-2014-2815) ".ONEPKG" 파일 디렉터리 트래버설 취약점으로 인한 임의 코드 실행
OneNote 2007은 ".onepkg" 파일(MS CAB 형식 사용)에 포함된 파일을 시스템의 임의 위치로 추출하도록 하는 취약점에 노출되어 있습니다.
이 취약점은 파일 이름에 상위 디렉터리 ".."를 사용하여 발생합니다.
OneNote가 파일 확장자를 확인하지 않기 때문에 안전하지 않은 파일을 임의의 위치에 추출할 수 있습니다.
Windows XP에서는 표준 사용자가 시스템의 대부분 위치에 쓰기 권한을 가지고 있으므로, 공격자는 DLL 파일(ntshrui.dll)을 Microsoft Office 설치 디렉터리로 추출할 수 있습니다.
이 DLL은 OneNote가 ".onepkg" 파일을 처리한 직후 로드됩니다:
c:\program files\microsoft office\office12\ntshrui.dll
Windows Vista 이상에서는 "UAC" 기능으로 인해 표준 사용자가 현재 사용자 프로필 하위 디렉터리로만 파일을 추출할 수 있습니다.
시작 폴더에 실행 파일을 추출할 수 있으며, 컴퓨터가 다시 시작될 때 임의 코드 실행으로 이어집니다.
이를 재현하려면 Cab 아카이버 소프트웨어(예: 'makecab.exe') 또는 MS CAB 형식을 지원하는 프로그래밍 언어의 IDE를 사용하고, 긴 이름을 가진 파일을 새 cab 아카이브에 삽입하세요.
그런 다음 파일 이름의 문자를 상위 디렉터리 ".."로 대체하여 편집합니다.
생성된 cab 아카이브의 이름을 ".onepkg"로 변경합니다.
이 PoC에서는 Windows Write 앱을 사용했으며, 시작 폴더에 드롭되도록 다음과 같이 이름을 지정했습니다:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWrite.exe
그런 다음 트래버설 기법을 사용하여 CAB 아카이브 내부의 파일 이름은 다음과 같이 됩니다:
......\roaming\microsoft\windows\start menu\programs\startup\Write.exe
취약한 버전: MS Office 2007 SP3 테스트 환경: Windows XP SP3, Vista SP2, 7 SP1 + Office 2007 SP3 (패치 미적용) (다른 OS도 취약할 가능성이 높습니다.)