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

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

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

ActFax 4.31 Local Privilege Escalation Exploit

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

how_2_write_Exploit_4_the_MSF_v3.x.hwp

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

!K_InDesginCS_NFH

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Deok9_Exploit Technique

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

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

Microsoft Word - Armjtag_문서1.doc

자연언어처리

Install stm32cubemx and st-link utility

1.hwp

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름

Windows Server 2012

MF3010 MF Driver Installation Guide

Microsoft Word - MSOffice_WPS_analysis.doc

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

MF5900 Series MF Driver Installation Guide

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

BY-FDP-4-70.hwp

IRISCard Anywhere 5

MF Driver Installation Guide

EDB 분석보고서 (04.06) ~ Exploit-DB( 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time-

hlogin7

PowerPoint Template

2 Journal of Disaster Prevention

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Adobe Flash 취약점 분석 (CVE )

ìœ€íŁ´IP( _0219).xlsx

슬라이드 1

EDB 분석보고서 (04.03) ~ Exploit-DB( 에공개된별로분류한정보입니다. ** 5개이상발생한주요소프트웨어별상세 EDB 번호 종류 공격난이도 공격위험도 이름 소프트웨어이름 3037 SQL Inj

11장 포인터

Android Master Key Vulnerability

© Rohde & Schwarz; R&S®CDS Campus Dashboard Software


ISP and CodeVisionAVR C Compiler.hwp

ÀÎÅÍ³Ý ÁøÈï¿ø 3¿ù ÀúÇØ»ó

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Visual Studio online Limited preview 간략하게살펴보기

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

<C7D1BBF3C1F85FBFDC28B5B5B7CEB1B3C5EBBBE7B0ED20BABBB9AE5FB1B3C1A4292E687770>

Windows 8에서 BioStar 1 설치하기

ActFax 4.31 Local Privilege Escalation Exploit

PowerPoint 프레젠테이션

목차 1. 개요 USB 드라이버 설치 (FTDI DRIVER) FTDI DRIVER 실행파일 USB 드라이버 확인방법 DEVICE-PROGRAMMER 설치 DEVICE-PROGRAMMER

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

chap 5: Trees

Chapter 4. LISTS

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Microsoft Word - SEH_Overwrites_Simplified.doc

hlogin2

API 매뉴얼

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

6(final)

76 XSS 하 Huge-IT Slider admin.php XSS

Microsoft PowerPoint - o8.pptx

서현수

1 법적 고지 사항 SK hynix Inc.는 사전 통보 없이 제품, 정보 및 사양을 변경할 권리를 보유합니다. 본 문서의 제품 및 사양은 참조용입니다. 본 문서의 모든 정보는 어떠한 형태의 보증 없이 있는 그대로 제공됩니다. 본 문서와 여기 포함된 모든 정보는 SK

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

PowerPoint 프레젠테이션

C# Programming Guide - Types

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

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

메뉴얼41페이지-2


SMB_ICMP_UDP(huichang).PDF

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

untitled

인켈(국문)pdf.pdf

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Microsoft PowerPoint - e pptx

PowerPoint Template

MLB 2K9_PS3_MN

Microsoft PowerPoint - chap01-C언어개요.pptx

UDP Flooding Attack 공격과 방어

Title Here

Exploit writing tutorials

Heap Overflow By WraithOfGhost

슬라이드 1

Frequently Asked Question 버전 변경 날짜 변경 내용 v /07/22 최초 작성

로거 자료실

2

슬라이드 1

*****

SBR-100S User Manual

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

Microsoft PowerPoint - chap05-제어문.pptx

화판_미용성형시술 정보집.0305

C 언어 강의노트

C++ Programming

인터넷 비즈니스의 필수 요소, 트랜잭션 시큐리티 서비스 인터넷 비즈니스는 기업 영리 활동에 있어서 부가적인 서비스가 아닌 사업을 영위해 가는데 중요한 역할을 하고 있습니다. 특히, 인터넷 쇼핑몰, 인터 넷 뱅킹, 사이버 트레이딩, 전자정부서비스, 온라인 게임, 인터넷

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

PowerPoint 프레젠테이션

Transcription:

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

목 차 1. 개요... 1 1.1. 배경... 1 1.2. 요약... 1 1.3. 정보... 1 1.4. 대상시스템... 1 2. 공격... 2 2.1. 시나리오... 2 2.2. 대상프로그램... 2 2.3. Exploit Code... 3 2.4. 공격테스트... 4 3. 분석... 8 3.1. 디버깅도구를이용한분석... 8 3.2. Payload 삽입확인... 10 3.3. 대안... 12 4. 결론... 13 5. 대응방안... 13 6. 참고자료... 13

1. 개요 1.1. 배경 미디어재생프로그램인 MpegPlayer 는 Buffer Overflow 취약점입니다. Payload 가삽입된위장파일을실행시킬때악의적인코드가동작하는비교적간단한방식의 Exploit 입니다. 기존에는계산기를실행하는 Shell Code 였지만, 저는 Reverse Shell 이동작하는 Shell Code 로바꾸어보려고시도했고, 결과는실패였습니다. 실패한이유를자세히살펴보면서, Buffer Overflow 취약점에대한상세한이해와, 대응방법을고민해보겠습니다. 1.2. 요약 MpegPlayer 는할당크기이상의데이터를삽입해서, 악의적인코드의동작을유도합니다. 이때오류가발생하면서, Windows 의오류처리메커니즘인 SE Handler 가동작하고, 오류처리를시도합니다. 그렇지만, Buffer Overflow 기법을이용해오류처리메커니즘을조작할수있기때문에 Shell Code 를실행할수있습니다. 해당프로그램은일정크기이상의데이터는일부만삽입되고, 일부는제거됩니다. 1.3. 정보 취약점이름 Elecard AVC_HD/MPEG Player 5.7 Buffer Overflow 최초발표일 2011 년 2 월 27 일 문서작성일 2012 년 8 월 02 일 Version 5.7 상태 업데이트 Vender Elecard Author sickness 공격범위 Local 공격유형 Buffer overflow 표 1. 취약점정보 1.4. 대상시스템 해당문서는 Windows XP SP3 를대상으로테스트를수행했습니다. Microsoft Windows XP SP3 표 2. 대상시스템 1

2. 공격 2.1. 시나리오 1 Exploit Code 를동작시켜서, Payload 가삽입된 Play List 파일을생성합니다. 2 MpegPlayer 를실행시키고, 생성된 Play List 파일을불러옵니다. 만일운영체제에 DEP 기능이동작한다면, 해당프로그램을 DEP 대상목록에서제외시킵니다. 3 공격성공여부를확인하고, Shell Code 를 Reverse Shell Code 로변환하기위해 Metasploit 을이용해, Shell Code 를생성합니다. 4 생성된 Shell Code 를 Exploit Code 에삽입한후동작시켜서, Play List 파일을생성합니다. 5 마찬가지로 MpegPlayer 를실행시키고, Play List 파일을불러옵니다. 하지만, 공격은반드시실패합니다. 6 실패한이유를분석해보고, 성공시킬수있는방법을모색합니다. 2.2. 대상프로그램 1 MpegPlayer [ 그림 1] MpegPlayer 2

2.3. Exploit Code 1 SE Handler 를이용하고, 계산기를동작시키는 Shell Code 가삽입된, Exploit Code 입니다. [ 그림 2] Exploit Code JUNK 값이후 SE Handler 를 Overwrite 할값을삽입합니다. Shell Code 부분으로현재는계산기를실행하는 Code 입니다. Shell Code 실행후프로그램의흐름을원활하게하기위해 nop 를다량삽입합니다. Payload 를구성합니다. 각변수의데이터가 Stack 에순서대로삽입될것입니다. 구성된 Payload 가삽입된 Play List 파일을생성합니다. 3

2.4. 공격테스트 1 Exploit Code 를실행시키면, Payload 가삽입된, Play List 파일이생성됩니다. [ 그림 3] Simple Web Server 정보 2 생성된 Play List 파일을피해자시스템의 MpegPlayer 로불러옵니다. [ 그림 4] Payload 가삽입된 Play List 파일불러오기 4

3 Play List 파일을불러왔는데, Shell Code 가실행되지않는다면, Windows DEP 기능을확인해보고, 해당프로그램을제외시켜야합니다. [ 그림 5] 공격진행과정과확인 4 결과적으로 Shell Code 가실행되면서, 계산기가동작합니다. [ 그림 6] Shell Code 실행확인 5

5 기존의 Shell Code 대신 Reverse Shell Code 로변환하기위해, Shell Code 를 생성합니다. [ 그림 7] Reverse Shell Code 생성 Metasploit 의 Payload 제작도구를이용합니다. 생성할 Shell Code 의종류와 Shell Code 에따른 옵션값을설정하고, Metasploit 의 Encoding 도구를이용해 Encoding 합니다. 생성된 Shell Code 의간략한정보를볼수있습니다. 주목할부분은 Size 입니다. 생성된 Shell Code 입니다. 이부분만복사해서, 사용합니다. 6 Reverse Shell 연결에대기하기위해 ReverSE Handler 모듈을동작시킵니다. [ 그림 8] Reverse Shell Code 생성 ReverSE Handler 모듈을불러오고, Payload 정보및연결될주소를지정합니다. 연결될주소는공격자시스템의주소이며, 연결될 Port 는기본값 4444 입니다. 피해자시스템이 Reverse Shell 연결을위주소와 Port 로시도할경우공격자시스템은 Meterpreter Shell 을 획득하게됩니다. 6

7 피해자시스템에서 Payload 가변환된 Play List 파일을불러옵니다. 기존의 Exploit Code 에서바뀐부분은 Shell Code 부분외에없습니다. 나머지부분은 이전과동일하기때문에, 성공할것으로예상됩니다. [ 그림 9] Reverse Shell Code 생성 8 결과는실패입니다. 실패이유를분석해보겠습니다. 7

3. 분석 3.1. 디버깅도구를이용한분석 1 SE Handler 부분에삽입된 POP/POP/RET 구문에 Break Point 를설정해, Stack 에삽입된 Payload 를확인합니다. [ 그림 10] shell code 실행직전 POP/POP/RET 주소로이동한후 Break Point 를설정합니다. Break Point 가제대로설정되었는지, 확인합니다. 2 POP/POP/RET 가실행되기직전실행흐름이일시정지했습니다. 여기서부터한 단계씩확인합니다. [ 그림 11] SE Handler 실행직전 8

3 SE Handler 부분이실행되고, next SE Handler 의 \xeb\x06 부분으로실행순서가이동됩니다. 이 Code 는 6Byte 를이동해서, 0x0013C9C4 위치의 Code 가실행되도록합니다. [ 그림 12] next SE Handler 실행직전 next SE Handler 의 \xeb\x06 Code 입니다. +6Byte 위치인 0x0013C9C4 로이동됩니다. next SE Handler 가실행되면서, 이동되는위치로, nop 값이위치합니다. 프로그램흐름은연속된 nop 값을실행하면서이동될것입니다. 4 연속된 nop 값의흐름을따라가다보면, Shell Code 의시작부분에도달합니다. Shell Code 를 Reverse Shell 로변환해서, 확인해봐도마찬가지의순서로 Shell Code 시작부분에도달합니다. 그러나기존의 Shell Code 는실행이되고, Reverse Shell Code 는실행이안됩니다. [ 그림 13] Shell Code 시작부분 9

3.2. Payload 삽입확인 1 Reverse Shell Code 가실패하는이유를알기위해 Payload 가삽입된 Stack 을확인했습니다. Shell Code 부분이끝까지삽입되지않고중간에누락된것을확인할수있습니다. 즉, Shell Code 가일정크기만큼만삽입되었습니다. 이후 rest 변수의 nop 값일부가삽입됩니다. rest 변수의나머지부분중일부는 Buffer 이후에삽입됩니다. Shell Code 가일부만삽입되고, rest 변수의 nop 값이 위치합니다. [ 그림 14] Reverse Shell Payload 의 Stack 구조 Payload 에서 Shell Code 이후에실행흐름을원활히하기위해삽입했던 nop 값입니다. Payload 의시작부분입니다. 순서대로 JUNK + next SE Handler + SE Handler + nops 입니다. 계산기실행 Shell Code 전체가삽입되었고, 이후 rest 변수의 nops 가삽입된다. 10

2 기존의계산기실행 Shell Code 는어떻게삽입되어있을지확인합니다. Shell Code 전체가누락없이삽입되어있는것을확인할수있고, Payload 전체가같은구조로계속해서반복되어삽입되어있습니다. [ 그림 15] Calc Shell Code Payload 의 Stack 구조 계산기의 Shell code 는누락없이전체가삽입되었습니다. 이후 rest 변수의 nop 값이누락되고, Payload 의처음부분부터다시삽입되어있습니다. 계산기실행 Shell Code 입니다. 11

3.3. 대안 1 기존의 Stack 구조와예상한 Stack 구조입니다. 왼쪽은 Shell Code 이후에 rest 변수의 nop 값이삽입되다가, 이후데이터가 Buffer 위쪽으로쌓이게됩니다. 이후 next SE Handler 로 Shell Code 에접근합니다. 하지만 Shell Code 의길이제한이있기때문에다른위치에삽입해야합니다. 오른쪽처럼 rest 의 nop 값이어느위치부터 Buffer 위쪽으로쌓이는지확인하고그부분부터 Shell Code 를삽입한단다음 next SE Handler 를이용해접근하게된다면, Shell Code 의크기가조금더커도문제없이삽입될수있을것입니다. [ 그림 16] 기존 Stack 구조와대안예시 12

4. 결론 해당프로그램은 Buffer Overflow 취약점이있었고, 이에대한 Exploit 이가능했습니다. 하지만 Shell Code 의길이에따라 Exploit 이안될수있기때문에, 이를가능하게하기위한분석을시도했습니다. 결과적으로조금더큰사이즈의 Shell Code 도실행이가능할것이라고확인됩니다. 또한 Omelet Egg Hunting 기법을이용하는방법도가능할수있습니다. 5. 대응방안 메모리보호기법이추가된다면, 우회가가능할지라도, Payload 의길이가상당히길어질수있기때문에현상태에서메모리보호기법만추가되도, 공격난이도가어려워집니다. 하지만근본적인보호를위해서는취약점자체를업데이트해야합니다. Buffer Overflow 취약점은삽입될데이터에대한검증절차만거치더라도간단히보호가가능합니다. 6. 참고자료 본취약점본문 http://www.exploit-db.com/exploits/16253/ 13