[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KOGangSeok Lee
2014 CodeEngn Conference 11
IE 원데이로 시작하는 실전 익스플로잇!
BOF, FSB, UAF 등의 메모리 커럽션 취약점을 워게임, CTF 통해서 배우게 되지만 비교적 더 낮은 난이도에도 불구하고 실제 상용 프로그램에 대해서는 막연한 느낌뿐인 학생들이 많은 것 같다. 웹브라우저에서 발견되는 취약점 중 가장 흔한 UAF에 대해 설명하고 비교적 최신에 발견된 CVE-2014-0322, CVE-2014-1776 두가지 전형적인 IE 브라우저 UAF 취약점을 익스플로잇하는 방법을 설명하려고 한다. 추후 사례로 소개되는 두 가지 취약점에 대해 직접 학습이 가능하도록 단계별 튜토리얼을 별도 제공하고자한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론GangSeok Lee
2013 CodeEngn Conference 09
MS 윈도우의 원데이 패치에 대해서 분석 및 접근 방법을 살펴본다. 또한, 최근에 나온 원데이 취약점 패치 분석을 진행하며 필요한 팁에 대해서 알아보고자 한다.
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기GangSeok Lee
2014 CodeEngn Conference 10
MS 에게 속았어요
Windows 운영체제가 지원하는 디버거 지원 기능들과 브랜치 트레이서를 구현하기 위한 몇 가지 방법들을 소개하고, Windows 커널에 이미 구현되어있는 하드웨어 기반 브랜치 트레이서 코드 분석과 여기에 존재하는 의도된(?) 버그를 살펴본다.
http://codeengn.com/conference/10
http://codeengn.com/conference/archive
[2012 CodeEngn Conference 07] singi - NFC, Play on real worldGangSeok Lee
2012 CodeEngn Conference 07
최근 스마트폰의 보급율이 높아지면서 NFC에 대한 관심이 많아졌다. NFC는 10cm 거리에서 기기간의 통신을 가능하게 해주는 근거리 통신 프로토콜이다. NFC에 대한 기본 개념과 통신원리, 국제/국내 표준을 알아보고, 국내 스마트폰에서 NFC가 들어간 장치의 스펙을 알아 본다. 그리고, 어떤 환경에서 NFC서비스가 사용될 수 있는지와 현재 사용되고 있는 서비스들도 간단하게 볼 예정이며 NFC를 이용하여 교통카드를 위조했던 해킹사례를 간단하게 알아본다. 마지막으로, 실제 NFC기기를 프로그래밍하여 이용, 조작을 해보도록 한다.
http://codeengn.com/conference/07
[2007 CodeEngn Conference 01] amesianx - Art of HookingGangSeok Lee
2007 CodeEngn Conference 01
ActiveX Binary 조작 및 후킹 ActiveX Binary 조작을 하지않는 범용적 COM 후킹 키보드 후킹은 크래커가 가장 직관적으로 접근하는 해킹수단 등에 대해서 설명하고 ActiveX의 COM에 대해 알아본다. (키보드 후킹의 한계는 사용자 입력을 예상하기 힘들고 정확히 어떤 행동 중인지 포착하는 인공지능적 해킹이 어려운 점이 있다.)
http://codeengn.com/conference/01
2007 CodeEngn Conference 01
Stack 의 기본적인 개념 설명과 NASM 어셈블러 사용법 설명, 다양한 Calling Convention에 대해 예제를 통해 설명한다.
http://codeengn.com/conference/01
The document discusses analyzing crashes using WinDbg. It provides tips on reconstructing crashed call stacks and investigating what thread or lock is causing a hang. The debugging commands discussed include !analyze, !locks, .cxr, kb to find the crashing function and stuck thread.
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석GangSeok Lee
2014 CodeEngn Conference 11
DTrace를 보안 관점에서 활용해보자!
DTrace 프레임워크는 솔라리스 기반으로 개발된 동적 추적 프레임워크로 현재 Solaris, Mac OS X, BSD 등에 적용되고 있다. 프레임워크는 운영체제 개발 시점에 커널에 통합된 프레임워크로 사용자 및 커널 레벨의 다양한 정보(메모리나 CPU, 파일시스템, 네트워크 자원의 모니터링이나 특정 함수의 인자 추적 등)를 동적으로 분석할 수 있게 하여 애플리케이션 테스팅에 주로 활용되고 있다. 이러한 장점을 활용하여 최근에는 보안 관점에서 프레임워크를 사용하는 경우가 늘어나고 있다. 퍼징 모니터링이나, 바이너리 동적 분석과 같은 취약점 분석, 악성코드 동적 분석, 루트킷 개발이 한 예이다. 본 발표에서는 DTrace가 무엇인지 살펴보고, 윈도우의 filemon의 기능을 구현해보도록 한다. 이 발표를 통해 분석가에게 생소할 수 있는 Mac OS X의 바이너리 분석에 도움이 될 것이라 생각한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 FuzzingGangSeok Lee
2014 CodeEngn Conference 11
모바일환경에서 Borwser Fuzzing을 하고 싶었고, 나만의 Fuzzing시스템을 만들고 싶었다.
iOS(Jailbreak환경)에서 MobileSafari를 대상으로 24시간/7일, Fuzzing 도중 Crash가 발생하여 MobileSafari가 종료되더라도 MobileSafari를 재시작시켜서 Fuzzing을 시도하는 시스템을 제작하였다. 어떻게 구성했고, ASLR을 어떻게 극복하였는지 공유하고자 한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 08] manGoo - Windows 8 ExploitGangSeok Lee
2013 CodeEngn Conference 08
Exploit으로 인한 보안 위협은 어제 오늘만의 문제가 아니다. 그에 따라서, Windows Version이 Update 되면서 다양한 Memory Protection 기능으로 Exploiting 으로 인한 공격을 방어하게 되었다. Exploiting Technique에 대한 History를 살펴 보며, Windows 8에서 Memory 관리 하는 방법 및 Memory Protection 방법에 대해서 살펴 볼 것이다. 이러한 변화로 인해 Exploiting 공격에 있어 어떤 방법으로 접근해야 될 지 알아보도록 하자.
http://codeengn.com/conference/08
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study ENGangSeok Lee
2014 CodeEngn Conference 11
IE 원데이로 시작하는 실전 익스플로잇!
BOF, FSB, UAF 등의 메모리 커럽션 취약점을 워게임, CTF 통해서 배우게 되지만 비교적 더 낮은 난이도에도 불구하고 실제 상용 프로그램에 대해서는 막연한 느낌뿐인 학생들이 많은 것 같다. 웹브라우저에서 발견되는 취약점 중 가장 흔한 UAF에 대해 설명하고 비교적 최신에 발견된 CVE-2014-0322, CVE-2014-1776 두가지 전형적인 IE 브라우저 UAF 취약점을 익스플로잇하는 방법을 설명하려고 한다. 추후 사례로 소개되는 두 가지 취약점에 대해 직접 학습이 가능하도록 단계별 튜토리얼을 별도 제공하고자한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 08] pwn3r - Pwning multiplayer game - case Starcraf...GangSeok Lee
2013 CodeEngn Conference 08
최근 국내/외에서는 멀티플레이어 게임이 유명세를 타고 있다. 이에 맞게 멀티플레이어 게임에 대한 보안 기술 역시 발전하고 있지만, 일반적으로 게임 보안은 게임의 룰을 깨버릴 수 있는 어뷰징(Abusing) 버그를 막는 데 주력하고 있다. 많은 멀티플레이어 게임들이 어뷰징 버그를 막는데 주력하느라, 게임 클라이언트의 취약성에 대한 보안을 놓치고 있다. 게임 클라이언트의 보안의 중요성을 강조하기 위해 BoB 1기에서 진행한 '멀티플레이어 게임 취약점 점검' 프로젝트의 결과물인 Starcraft-Broodwar remote code execution취약점을 설명하고, 취약점을 발견하기 위해 진행한 과정과 Exploit 과정들을 소개한다.
http://codeengn.com/conference/08
Autonomous drive robot for smart factory. This project is just prototype. We used Turtlebot3, RaspberryRi3. Used software & tools are TensorFlow, openCV, etc..
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기GangSeok Lee
2014 CodeEngn Conference 10
MS 에게 속았어요
Windows 운영체제가 지원하는 디버거 지원 기능들과 브랜치 트레이서를 구현하기 위한 몇 가지 방법들을 소개하고, Windows 커널에 이미 구현되어있는 하드웨어 기반 브랜치 트레이서 코드 분석과 여기에 존재하는 의도된(?) 버그를 살펴본다.
http://codeengn.com/conference/10
http://codeengn.com/conference/archive
[2012 CodeEngn Conference 07] singi - NFC, Play on real worldGangSeok Lee
2012 CodeEngn Conference 07
최근 스마트폰의 보급율이 높아지면서 NFC에 대한 관심이 많아졌다. NFC는 10cm 거리에서 기기간의 통신을 가능하게 해주는 근거리 통신 프로토콜이다. NFC에 대한 기본 개념과 통신원리, 국제/국내 표준을 알아보고, 국내 스마트폰에서 NFC가 들어간 장치의 스펙을 알아 본다. 그리고, 어떤 환경에서 NFC서비스가 사용될 수 있는지와 현재 사용되고 있는 서비스들도 간단하게 볼 예정이며 NFC를 이용하여 교통카드를 위조했던 해킹사례를 간단하게 알아본다. 마지막으로, 실제 NFC기기를 프로그래밍하여 이용, 조작을 해보도록 한다.
http://codeengn.com/conference/07
[2007 CodeEngn Conference 01] amesianx - Art of HookingGangSeok Lee
2007 CodeEngn Conference 01
ActiveX Binary 조작 및 후킹 ActiveX Binary 조작을 하지않는 범용적 COM 후킹 키보드 후킹은 크래커가 가장 직관적으로 접근하는 해킹수단 등에 대해서 설명하고 ActiveX의 COM에 대해 알아본다. (키보드 후킹의 한계는 사용자 입력을 예상하기 힘들고 정확히 어떤 행동 중인지 포착하는 인공지능적 해킹이 어려운 점이 있다.)
http://codeengn.com/conference/01
2007 CodeEngn Conference 01
Stack 의 기본적인 개념 설명과 NASM 어셈블러 사용법 설명, 다양한 Calling Convention에 대해 예제를 통해 설명한다.
http://codeengn.com/conference/01
The document discusses analyzing crashes using WinDbg. It provides tips on reconstructing crashed call stacks and investigating what thread or lock is causing a hang. The debugging commands discussed include !analyze, !locks, .cxr, kb to find the crashing function and stuck thread.
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석GangSeok Lee
2014 CodeEngn Conference 11
DTrace를 보안 관점에서 활용해보자!
DTrace 프레임워크는 솔라리스 기반으로 개발된 동적 추적 프레임워크로 현재 Solaris, Mac OS X, BSD 등에 적용되고 있다. 프레임워크는 운영체제 개발 시점에 커널에 통합된 프레임워크로 사용자 및 커널 레벨의 다양한 정보(메모리나 CPU, 파일시스템, 네트워크 자원의 모니터링이나 특정 함수의 인자 추적 등)를 동적으로 분석할 수 있게 하여 애플리케이션 테스팅에 주로 활용되고 있다. 이러한 장점을 활용하여 최근에는 보안 관점에서 프레임워크를 사용하는 경우가 늘어나고 있다. 퍼징 모니터링이나, 바이너리 동적 분석과 같은 취약점 분석, 악성코드 동적 분석, 루트킷 개발이 한 예이다. 본 발표에서는 DTrace가 무엇인지 살펴보고, 윈도우의 filemon의 기능을 구현해보도록 한다. 이 발표를 통해 분석가에게 생소할 수 있는 Mac OS X의 바이너리 분석에 도움이 될 것이라 생각한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 FuzzingGangSeok Lee
2014 CodeEngn Conference 11
모바일환경에서 Borwser Fuzzing을 하고 싶었고, 나만의 Fuzzing시스템을 만들고 싶었다.
iOS(Jailbreak환경)에서 MobileSafari를 대상으로 24시간/7일, Fuzzing 도중 Crash가 발생하여 MobileSafari가 종료되더라도 MobileSafari를 재시작시켜서 Fuzzing을 시도하는 시스템을 제작하였다. 어떻게 구성했고, ASLR을 어떻게 극복하였는지 공유하고자 한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 08] manGoo - Windows 8 ExploitGangSeok Lee
2013 CodeEngn Conference 08
Exploit으로 인한 보안 위협은 어제 오늘만의 문제가 아니다. 그에 따라서, Windows Version이 Update 되면서 다양한 Memory Protection 기능으로 Exploiting 으로 인한 공격을 방어하게 되었다. Exploiting Technique에 대한 History를 살펴 보며, Windows 8에서 Memory 관리 하는 방법 및 Memory Protection 방법에 대해서 살펴 볼 것이다. 이러한 변화로 인해 Exploiting 공격에 있어 어떤 방법으로 접근해야 될 지 알아보도록 하자.
http://codeengn.com/conference/08
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study ENGangSeok Lee
2014 CodeEngn Conference 11
IE 원데이로 시작하는 실전 익스플로잇!
BOF, FSB, UAF 등의 메모리 커럽션 취약점을 워게임, CTF 통해서 배우게 되지만 비교적 더 낮은 난이도에도 불구하고 실제 상용 프로그램에 대해서는 막연한 느낌뿐인 학생들이 많은 것 같다. 웹브라우저에서 발견되는 취약점 중 가장 흔한 UAF에 대해 설명하고 비교적 최신에 발견된 CVE-2014-0322, CVE-2014-1776 두가지 전형적인 IE 브라우저 UAF 취약점을 익스플로잇하는 방법을 설명하려고 한다. 추후 사례로 소개되는 두 가지 취약점에 대해 직접 학습이 가능하도록 단계별 튜토리얼을 별도 제공하고자한다.
http://codeengn.com/conference/11
http://codeengn.com/conference/archive
[2013 CodeEngn Conference 08] pwn3r - Pwning multiplayer game - case Starcraf...GangSeok Lee
2013 CodeEngn Conference 08
최근 국내/외에서는 멀티플레이어 게임이 유명세를 타고 있다. 이에 맞게 멀티플레이어 게임에 대한 보안 기술 역시 발전하고 있지만, 일반적으로 게임 보안은 게임의 룰을 깨버릴 수 있는 어뷰징(Abusing) 버그를 막는 데 주력하고 있다. 많은 멀티플레이어 게임들이 어뷰징 버그를 막는데 주력하느라, 게임 클라이언트의 취약성에 대한 보안을 놓치고 있다. 게임 클라이언트의 보안의 중요성을 강조하기 위해 BoB 1기에서 진행한 '멀티플레이어 게임 취약점 점검' 프로젝트의 결과물인 Starcraft-Broodwar remote code execution취약점을 설명하고, 취약점을 발견하기 위해 진행한 과정과 Exploit 과정들을 소개한다.
http://codeengn.com/conference/08
Autonomous drive robot for smart factory. This project is just prototype. We used Turtlebot3, RaspberryRi3. Used software & tools are TensorFlow, openCV, etc..
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었지만
많은 분들의 도움으로 좋은 결과를 얻을 수 있었답니다!
이에 다른 분들에게 조금이나마 도움이 되었으면 좋겠다는 마음으로 공유합니다 : )
커빙의 Django, Celery, Azure Cloud, SNS 연동, 컨텐츠 수집 기술을 한눈에 볼 수 있도록 소개한 자료 입니다.
커빙을 처음 개발하면서 많은 어려움이 있었고,
또 많은 분들의 도움으로 좋은 결과를 얻을 수 있었습니다.
조금 더 깊은 내용을 다뤘으면 하는 아쉬움이 있지만,
다른 분들에게 조금이나마 도움이 되었으면 좋겠네요!
2. PPT
PPT는 발표시작 15분 이후부터 받을 수 있습니다.
발표 시간 이후엔 CODEGATE 공식 웹사이트!
http://cloud.sweetchip.kr/codegate/
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
3. 목차
소개
프로젝트
프로젝트 소개
프로젝트 목표
프로젝트 진행방법
작성한 구조
발견한 Crash 구조
분석
결론
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
4. 프로젝트 팀원 소개
심준보 (passket)
BOB 2기 멘토
BlackPerl Security 연구원
현성원 (sweetchip)
세종대학교 정보보호학과
HackerSchool - Wiseguys
CODEGATE 2014 - Track 1
심준보, 임정원, 최재승, 현성원
임정원 (setuid0)
선린 인터넷 고등학교
CodeRed 소속
최재승
서울대학교 정보보안 연구 동아
리 Guardian 소속
CTF팀 Alternatives 소속
5. 프로젝트 소개
프로젝트 명 : 국내외 소프트웨어의 0-day 취약점 발견 및 연구
기간 : BOB 2기 경연단계 (1월 ~ 2월 28일)
목표 : IE, Chrome, Java, Flash 등 세계적으로 많이 사용되는 프로그램의 취약
점 발견
목적 : 비교적 국내 프로그램보다 매우 높은 보안 수준을 가진 프로그램의 취
약점을 발견할 수 있는 능력과 경험
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
6. 프로젝트 진행 방법
프로젝트 진행 방법
처음 프로젝트 계획 당시 브라우저의 경우 UAF 취약점을 발견을 목표로 함.
UAF 버그가 발생하는 원리를 공부하기 위하여 프로젝트 이전에 발표되었던 Internet
Explorer의 UAF 취약점 Proof Of Concept Code를 다시 분석하고 보고서를 작성.
브라우저를 공격할 수 있는 방법을 배우기 위하여 오류를 유발할 만한 코드를 손으로 직
접 작성.
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
7. DOM
단순히 DOM Tree 구조를 복잡하게 한 뒤, 구조를 바꾸는 과정에서 발생하는
버그가 여전히 보고되는 것을 확인.
잘 알려지지 않고 DOM Tree 구조에 영향을 줄 수 있는 함수 탐색.
DOM 트리 구조가 삭제될 때 하위 Element들을 모두 삭제하는 함수에서 중
복 삭제 오류가 있을 것으로 추측.
Element들의 상속 구조를 순환하도록 제작 하여 use-after-free 또는 double-
free 류의 버그가 발생할 수 있을 것으로 추측.
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
8. Event Handler
HTML 파일에서 복잡한 구조의 Element들을 생성
생성한 복잡한 구조에 있는 값을 참조할 만한 이벤트 핸들러를 다수 등록
이벤트 핸들러에는 구조를 바꾸거나 삭제하는 등 구조에 직접적인 영향을 주도록 한다.
참조할 만한 이벤트 핸들러 외에도 트리 구조가 바뀔 때 발생하는 이벤트, etc
등록된 이벤트 핸들러가 작동 될 수 있도록 이벤트를 트리거 시킨다.
Example : DOMNodeInserted, etc . . .
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
9. WebWorker
웹 브라우저의 JavaScript 엔진은 Race-Condition 취약점이 발생하지 않도록
싱글 쓰레드로 동작하지만 최신 기술인 web worker로 쓰레드를 추가로 생
성하여 작업을 시킬 수 있다.
DOM은 멀티 쓰레드에 적합하게 설계되지 않았기 때문에 여러 쓰레드를 생
성하고 DOM Tree에 변화를 주는 등 다양한 방법을 이용하여 접근하면 취약
점을 발견할 수 있을 것이라고 기대하고 접근하였다.
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
10. Html5
최근 Pwn2Own 대회에서 공격된 Mozilla FireFox에서 IndexedDB의 IDBkey
취약점이 발견되었음.
최근에 개발되어 비교적 예전부터 있던 기능보다 안정성 검증이 부족할 것으
로 추정되는 html5에서 새롭게 추가된 기능들을 이용하면 취약점을 찾을 수
있을 것으로 기대.
Example : IndexedDB, Canvas, LocalStorage, etc . . .
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
11. Iframe
Iframe의 하위접근이 가능하다는 점을 확인.
A, B라는 html이 있다면 A.html에 다수의 컨텐츠를 삽입.
일정 주기마다 html 요소 전체에 대해 select() 함수를 호출.
B.html에서 A.html을 로딩하는 Iframe 태그 삽입.
B.html에서 A.html에 있는 document 전체를 unselect() method를 호출.
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
12. Stack Overflow
프로젝트 중 발견된 Crash
Document Body에 Element 상속 반복
Exploitable 하지 않은 Crash로 잠정 결론
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
14. Use-After-Free
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
취약점 발견 아이디어
프로젝트 기간 중 나온 iframe 아이디어를 적용하여 UAF 로 추정되는 Crash를
발견
취약점이 발생하는 원인
부모 문서에서 iframe의 DOM tree를 접근할 수 있다는 점을 이용.
DOM 트리가 삭제될 때 DOM 트리에는 다양한 객체들이 올 수 있음
부모 문서에서 iframe에 접근하면서 iframe 내부에서는 selectAll 함수를 이용하
여 삭제 과정을 혼란을 주면 삭제할 객체 목록에 잘못된 객체가 들어감
15. Use-After-Free
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
취약점 트리거 방법
다른 페이지로 이동할 때 브라우저는 DOM의 모든 객체를 삭제한다.
그 과정에서 모든 Element를 참조하게 되는데 그 순간 Free된 객체의
vtable을 참조하게 되어서 크래시가 발생한다.
16. 분석
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
Windbg Script를 이용하여 Memory의 Allocate와 Free 상황을 모니터링
jscript9.dll의 math 함수에 브레이크 포인트를 설정.
javascript 코드에서 math 함수를 사용하여 어느 부분에서 Crash가 발생하
는지 알 수 있음.
Example
bu jscript9!Js::Math::Atan2 ".printf "%mu", poi(poi(esp+14)+c);.echo;g“ // windbg script
bu101 ntdll!RtlFreeHeap "j (poi(esp+c)!=0) '.printf "free(0x%p) from (%p)", poi(esp+c), poi(esp); .echo; g'; 'g';
#####################################################################################
Math.atan2(0xbadc0de,"LOG : going to call setInterval()"); // javascript code
Math.atan2(0xbadc0de,"LOG : finshed loading another page");
19. 프로젝트 결론
프로젝트 기간 중 진행 한 과정
windbg를 이용하여 PageHeap을 설정하고 Free된 메모리의 크기를 조사한다.
Free된 크기만큼 다시 문자열 또는 페이로드를 할당.
조작된 vtable를 참조하게 되어서 흐름 변경 가능.
완전한 Exploit을 위해선
적용된 SandBox 를 깰 수 있는 취약점 1개와 ASLR을 우회할 수 있는 Information Leak
이 가능한 취약점 1건이 추가로 필요.
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
20. 프로젝트 결론
프로젝트 기간 중 진행 한 과정
[사진] 조작된 Vtable 을 참조한 사진
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
22. 프로젝트 결론
프로젝트 결과
IE, Chrome, Firefox, Safari 에 대한 Stack Overflow, Access violation 유발 Bug 발견
IE11에 대한 Use-After-Free Bug 발견
버그를 이용하여 EIP Control을 하는 Proof of concept Code 작성 성공.
프로젝트 기간 중 발견한 Internet Explorer 11 취약점 분석 보고서 작성 완료
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
23. 프로젝트 결론
프로젝트 결과
현재 EIP 컨트롤 POC코드로는 Remote Code Execution이 불가능 하다.
ASLR에 의하여 exploit 성공률이 현저하게 떨어진다.
Sandbox 우회를 위한 Sandbox Escape 취약점 1개가 추가 적으로 필요하다.
위를 보완할 경우 실제 사이버 공격에 이용 할 수 있는 무기 형태로 만들 수 있다.
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원
24. 프로젝트 결론
결론
프로젝트를 진행하면서 실제로 브라우저의 취약점을 발견 해볼 수 있었음.
브라우저에서 오작동을 발생 시킬 수 있을 만한 코드를 작성 할 능력을 기를 수 있는 기
회가 되었음.
CODEGATE 2014 - Track 1
심준보(멘토), 임정원, 최재승, 현성원