Microsoft Word - GOM-StackOverFlow.doc

Similar documents
Deok9_Exploit Technique

1.hwp

취약점분석보고서 [Photodex ProShow Producer v ] RedAlert Team 안상환

!K_InDesginCS_NFH

Microsoft Word - MSOffice_WPS_analysis.doc

how_2_write_Exploit_4_the_MSF_v3.x.hwp

목차 1. 소개... 3 가. BOF란?... 3 나. 윈도우 BOF 개발환경및사용툴 Shellcode 작성하기... 4 가. cmd 쉘 ) 소스코드작성 ) 디스어셈블리 ) 어셈블리코드편집 간단

본문서는 Syngress 의 Writing Security Tools and Exploits Chap11 을요약정리한 것입니다. 참고로 Chap 10 ~ 12 까지가 Metasploit 에대한설명입니다. Metasploit Framework 활용법 1. Metasplo

PowerPoint Template

ActFax 4.31 Local Privilege Escalation Exploit

취약점분석보고서 [CyberLink Power2Go name attribute (p2g) Stack Buffer Overflow Exploit] RedAlert Team_ 강동우

IDA 5.x Manual hwp

hlogin2

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

Eureka Mail Client_v2.2.q를이용하여오믈렛에그헌팅에대하여알아볼것이다. 익스플로잇을위해구성된환경은아래와같다. - Windows XP Professional SP3 KOR - Python Ollydbg 1.x, Immunity Debugg

Linux Binary Hardening with Glibc Hyeonho Seo

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

Computer Security Chapter 08. Format String 김동진 1 Secure Software Lab.

Microsoft PowerPoint 웹 연동 기술.pptx

목 차 1. 개요 취약점분석추진배경 취약점요약 취약점정보 취약점대상시스템목록 분석 공격기법및기본개념 시나리오 공격코드

취약점분석보고서 [Elecard AVC_HD/MPEG Player 5.7 Buffer Overflow] RedAlert Team 봉용균

Microsoft Word - Heap_Spray.doc

Chapter 4. LISTS

Basic of Real World Exploit on Windows Author

Microsoft Word - Exploit writing tutorial part 1.doc

INTRO Basic architecture of modern computers Basic and most used assembly instructions on x86 Installing an assembly compiler and RE tools Practice co

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

금오공대 컴퓨터공학전공 강의자료

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Microsoft Word - ANI 취약점.doc

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

목 차 1. 개 요 배경 요약 정보 대상시스템 원리 공격 기법 및 기본 개념 Heap Spray Font 공 격..

Adobe Flash 취약점 분석 (CVE )

11장 포인터

Microsoft PowerPoint APUE(Intro).ppt

Eureka Mail Client_v2.2.q를이용하여에그헌팅에대하여알아볼것이다. 익스플로잇을위해구성된환경은아래와같다. - Windows XP Professional SP3 KOR - Python Ollydbg 1.x, Immunity Debugger

BMP 파일 처리

CKKeyPro 적용가이드

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

슬라이드 1

Return-to-libc

Evernote Export

Microsoft Word - Static analysis of Shellcode.doc

hlogin7

No Slide Title

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

Microsoft PowerPoint - ch07 - 포인터 pm0415

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

로거 자료실

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

Microsoft Word - building the win32 shellcode 01.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

설계란 무엇인가?

PowerPoint 프레젠테이션

Secure Programming Lecture1 : Introduction

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

금오공대 컴퓨터공학전공 강의자료

목차 개요... 3 CVE /CVE 요약... 3 CVE /CVE 분석 취약점발생원인 CVE 와 CVE 의연관성및차이점... 7 C

Microsoft Word - FunctionCall

Reusing Dynamic Linker For Exploitation Author : Date : 2012 / 05 / 13 Contact : Facebook : fb.me/kwonpwn

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

문서개정이력 개정번호개정사유및내용개정일자 1.0 최초작성 본문서는원문작성자 (Peter Van Eeckhoutte) 의허가하에번역및배포하는문서로, 원문과관련된모든내용의저작권은 Corelan에있으며, 추가된내용에대해서는 ( 주 ) 한국정보보호교육센터에

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

Microsoft PowerPoint - secu10.pptx

리눅스 취약점대응방안권고 / KISA 취약점점검팀 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE 지정, 도메인네임을

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Heap Overflow By WraithOfGhost

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

PowerPoint Template

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

일반적인 네트워크의 구성은 다음과 같다

simple ROP Exploit

[Brochure] KOR_TunA

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - chap10-함수의활용.pptx

11장 포인터

설계란 무엇인가?

Microsoft PowerPoint - ch04_코드 보안 [호환 모드]

키사 최종보고서 v1.0 .hwp

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft Word - Reverse Engineering Code with IDA Pro-2-1.doc

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

POC "Power of Community" 이민우 (lwmr)

Microsoft Word - MS_rshd_exploit.doc

목 차 1. 개요 취약점분석추진배경 CVE 취약점요약 CVE 분석 CVE 취약점개요 CVE 대상시스템목록...

PowerPoint 프레젠테이션

ISP and CodeVisionAVR C Compiler.hwp

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

Microsoft PowerPoint - chap06-5 [호환 모드]

PowerPoint 프레젠테이션

Microsoft Word - SEH_Overwrites_Simplified.doc

Microsoft PowerPoint - System Programming Lab Week1.ppt [호환 모드]

슬라이드 1

Transcription:

GOM Player 2.0.12 (.ASX) Stack Overflow Exploit Document V0.2 HACKING GROUP OVERTIME OVERTIME mrboo< bsh7983@gmail.com > 2009.01.10

이문서는 2009.01.08일자로 milw0rm에 DATA_SNIPER께서등록한곰플레이어관련 exploit을분석한문서이다. Study를목적으로만들었고잘못된분석일가능성이너무많기때문에서로공유는하되잘못된부분은메일로지적바란다.^^ < 목차 > 1. execute exploit 2. analyze exploit 3. analyze asx file 4. summary

1. execute exploit 우선분석하기전에 milw0rm에올라온 exploit 을한번실행해본다. 이취약점은이전에 Parvez Anwar 께서 2007 년 2 월초에 GOM Player ASX Playlist Buffer Overflow라는이름으로발표를한적이있다. ref href 태그를이용해서 URI 링크를시키는데 length 체크를하지않아긴 URI를넣음으로써스택기반의버퍼오버플로우가발생된다. 1.1 실행환경 OS : Microsoft Windows XP Pro V2002 SP2 GOM Version : 2.0.12.3375.3375 1.2 exploit 컴파일 exploit download : http://milw0rm.com/exploits/7702 compiler : Visual Studio.NET 2003 1.3 바이너리실행 해당 exploit 을컴파일하고실행을한다.

같은위치에 GAZA.asx GAZA.asx 파일이생성된다. < 생성된악성 asx 파일 > GAZA.asx GAZA.asx 파일을실행시키면곰플레이어가실행되면서계산기가실행된다. < 악성코드로인해실행된계산기 >

2. analyze exploit 다음으로 milw0rm에등록된 expolit 을분석해보자 2.1 exploit 분석 Header1[] : asx 파일포멧의헤더부분. Header2[] : asx 파일포멧의끝부분. Shell[] : windows cale( 계신기 ) code. RET_ T_Univ[] : 0x00464577 00464577, 스택오버플로우로 EIP 덮어씌울주소 Nop[] : Nops 8Bytes Payload : 메모리 copy 및파일생성위배열을 Header1+junk(0x41)+RET_Univ+Nop+Shell+Header2 순으로 payload 를생성후 GAZA.asx 파일에 write 함.

3. analyze asx file 생성된 GAZA.asx 파일을분석해보자 3.1 ASX 란? ASF Stream Redirector 실제동영상데이터가아닌텍스트정보만을가지고있는메타파일임. 메모장등에서열어보면 HTML 과유사한형식으로이루어져있음. 이파일에는실제동영상이위치하고있는 URL 정보와그외의기타정보 ( 저작권, 만든이, 제목 ) 등을표기할수있고배너광고를삽입하여자사의동영상컨텐츠를보호및홍보할수있는기능을제공함. 3.2 ASX 의기초 <asx version = "3.0" > <entry> <ref href = "mms://overtimes overtimes.com.kr/test.asf"/> </entry> </asx> 3.2 GAZA.asx 분석 위에서설명했듯이 GAZA.asx 파일을메모장으로열어보자

Ollydbg 로분석해보자취약한곰플레이어파일을올리로로드한다. 그리고 GAZA.asx 파일을파일열기로한상태에서브레이크포인트걸리게한다. 그럼메모리에 GAZA.asx 파일이로딩됨을알수있다.( 메모리서칭기능으로쉘코드의연속된부분을검색어로서칭하면찾을수있다 ) 그리고해당메모리에 memory bp 를걸어놔서이부분을건드는코드를선별한다. 우선이런식으로접근해보자. step over(f8) 로계속 call 문을지나쳐보면계산기가뜨는시점을찾을수있다. 그럼해당 call 문을 step into(f7) 로자세히분석해보자. 수상한것 (??) 는혹시몰라캡쳐를해놨으며이문서에도그냥덧붙였다. 별도설명이없으면그냥넘어가도될듯하다.

위그림중아래와같은 CALL 문이눈에보인다. 우선해당함수가무슨일을하는지확인해보자

루프문이다. 해당 DS:[ESI] 부분을 dump 해보니아래와같다. 메모리에있는 asx 파일내용을메인스레드의 Stack 영역으로복사하는것을볼수있다. 복사하는내용은 asx 파일내용중 <ref href = = 태그다음에오는실제동영상파일의주소이다. 현재는쉘코드이다. IDA 에서분석을하면 wcscpy 라는심볼명을가진함수임을알수있다. <IDA 로해당심볼확인, wcscpy> wcscpy 는어떤함수일까? strcpy 의유니코드버전이라고보면된다고한다. 파일 I/O 나문자열처리시기본적으로 2Bytes 로처리를해버리게되서사용한다고한다. 그런데이함수는보안에취약하다. 복사할사이즈를정해주는파라미터가없으며, wcscpy(dst, src) 중 src 가 null 로종료를하지않으면그대로복사가되고버퍼가플로우가되게된다. 즉 href= href= 다음의주소를 length 체크를하지않고복사하기때문에우리의쉘코드가오버플로우되면서로딩될수있었던거다. 이함수대신사용할수있는 wcscpy_s(dst, dst_size, src) 함수가있다고한다. 암튼우리는양껏쉘코드를스택에넣을수있게됬다. 이제우리는스택의쉘코드를실행시켜줄 EIP 를변조시키면된다. 계속분석해보면위 wcscpy 를해놓고 EAX 에 SS:[EBP+1098] 이가리키는값을 EAX 에넣는다. 여기서는 FFFFFFFF 가되겠다. 이값을 201,202,203,102,103,401,303,601,311,312, 01,311,312,901,701,702,101,301,501,801 01,701,702,101,301,501,801 값과비교를하고는아래그림부분에가게된다. 위값을잘은모르겠르겠으나정상적인파일을올리면 202 가됨을볼수있다. 아마에러처리부분?? 꼭웹에러번호러번호처럼.

그럼계속분석해보자. 위 FFFFFFFF 값으로어느것하나일치가안되고는아래그림으로넘어가게된다. RET_Univ 가기억날것이다. 기억이안나면위 2. analyze exploit 를참고 즉위그림에설명처럼 RETN4 를함으로써 RET_Univ 의주소 (0x00464577) 4577) 가 EIP 에저장되고실행된다. 해당주소번지에는 JMP ESP opcode 가있다. 그럼 ESP 로점프하게되고 ESP 에있는우리의 NOP 코드를확인할수있다. 짧은 NOP 슬레이드를타시고바로 calc 코드를실행하여계산기가실행이된다.

4. summary 간단하게버퍼오버플로우에취약한함수로생기는홀이있었으며곰플레이어가이런함수를사용함으로써 exploit 이생겨난것임. 내생각엔 언제봐도이런취약점을발견하신분은참대단한거같다. 어떻게이런생각을하지??????? 아니어떻게이렇게짜고치는고스톱처럼서로상관없을듯한, 서로멀리떨어진듯한코드들이이렇게연관성있게실행되게끔하는건지참 대단한거같다. 암튼오늘도그냥고수분들대단하단거느끼며문서를마칠까한다 ;; 작성한문서내용은제지식위주로하여틀린부분이많을수있다는위험이있단사실을명심하시고지적바란다. 마지막으로패치후에코드가어떻게변했는지한번확인해보자. 감사합니다.