Download presentation
Presentation is loading. Please wait.
1
스크립트 SWF 파일 Exploit Drive by Download 분석
2
I N D E X 1 악성 스크립트 분석 2 SWF 파일 Exploit 분석 3 쉘코드 실행 과정 분석
3
1. 악성 스크립트 분석
4
1-1 악성 링크 구조 Compress Site Gate/Redirect Site Rig Landing Page
5
1-2 Compress Site
6
1.3 Gate/Redirect Site
7
1.4 Rig Landing Page 인코딩된 코드 디코딩 코드 인코딩된 코드 디코딩 코드
8
1.4 Rig Landing Page(첫 번째 인코딩된 코드)
9
1.4 Rig Landing Page(두 번째 인코딩된 코드)
10
2. SWF 파일 Exploit 분석
11
1 2 2-1 CVE-2015-5122 이태리 소재의 Hacking Team사의 데이터유출로 인해 알려지게 된 취약점
DisplayObject class의 opaqueBackground 속성 Setter에서 발생하는 UAF 취약점
12
2-2 악성 SWF 파일 개요(파일 구조) Encrypt Data ROP+Shellcode Exploit code
Exploiter Decrypter Main Start <Sample>
13
2-2 악성 SWF 파일 개요(안티 디버깅) <난해한 변수명> <암호화된 데이터>
<push+pop 난독화>
14
2-3 Exploit 과정 분석 New Vector.<int>(8) 호출 Vector<uint>
TextLine createTextLine() 호출 클래스.prototype.valueOf = 함수
15
2-3 Exploit 과정 분석 textLine 개체.opaqueBackground = 클래스 객체
Vector<uint> Vector<uint>(Free) 사용자 정의 valueOf() 호출 TextLine TextLine(Free) Vector<uint> (TextLine(F) OverWrite) recreateTextLine() 호출 Vector<uint> 길이 변경(증가)
16
2-3 Exploit 과정 분석 사용자 정의 valueOf() return Vector<uint>(Free)
opaqueBackground속성에 반환값 저장 TextLine(Free) 반환값 저장 Vector<uint> (TextLine(F) OverWrite) 확대(Vector<uint> 일부) 반환값 저장 Vector 길이 더미값 배열
17
2-3 Exploit 과정 분석(Exploit 원인 분석)
textLine 객체 주소 반환 ESI에 객체 주소 저장 사용자 정의 valueOf 함수호출 Vector<uint> 반환값 저장
18
2-3 Exploit 과정 분석(코드 분석) 객체 생성 메소드 재정의 재정의 함수 호출
19
Vector<uint> .length=0x62
2-3 Exploit 과정 분석(코드 분석) textLine Free Vector<uint> .length=0x62 0x6a Return
20
2-3 Exploit 과정 분석(코드 분석) Vector<Object> Vector<uint> 저장
Length==0x6a Next Vector<uint> length=0x Current Vector<uint> length=0x -0x66 Next Vector<uint> length=0x62 -0x2
21
3. 쉘코드 실행 과정 분석
22
3-1 주소값 구하기 Current Current Vector+1 Current Vector+2
Current+1(+0x190) Vector Free Current+2(+0x320) Current Vector+1 주소 Current Vector 배열주소 Flash 모듈 주소 Base주소 (ByteArray)
23
3-2 ByteArray 생성 ByteArray 생성 0x8000 To search
24
3-3 ByteArray 주소값 구하기 ByteArray 객체일 경우 ByteArray 배열일 경우 ByteArray 배열주소
Base 주소 (toString)
25
3-4 ROP 가젯 검색 Code Section 0xFFFFF000 Flash 모듈 영역 주소 MZP
26
3-5 Payload 구성 ByteArray 주소영역 ROP 가젯+Shellcode
27
3-6 쉘코드 실행 ByteArray toString 주소 위치 함수 주소 후킹 ByteArray에 저장된 주소실행
28
Q & A Any question?
29
THANK YOU For your attention
Similar presentations