SlideShare a Scribd company logo
꺄륵><
시스템 해킹을 해볼까요?
꺄르르륵><
꺄륵><
#whoami
조우석
 (OneTwo)
세종대학교
 정보보호학과
 2학년
 
SSG
 (Sejong
 Security
 Group)
 부원
 
Inc0ginto
 운영진
 
차세대보안리더양성프로그램
 BoB
 5기
 교육생
 
blog.asdfasdf.kr
 
원래
 개발했었지만....
 어느순간
 보안
 공부하고
 있네요
OneTwo
꺄륵
• 시스템해킹
• BOF란?
• BOF의 원리
• BOF를 활용해보자
• RTL
• Fake EBP
• 실습해볼까요?
CONTENTS
꺄륵
시스템 해킹
OS 또는 프로그램의 취약점
(관리자 권한 등 획득)
나쁜짓 하는 것!
뭐하는 것들일까...
펭귄 카와이
꺄륵
Stack OverFlow
Heap OverFlow
Integer OverFlow
Type Confusion
Use Afer Free
Format String Bug
…
존나 많죠?ㅋ
시스템 해킹
OS 또는 프로그램의 취약점
(관리자 권한 등 획득)
나쁜짓 하는 것!
꺄륵
시스템 해킹
Buffer Overflow!!
버퍼를 넘치게
하면 됩니다.
참 쉽죠?
(stack)
꺄륵
BOF란?
Buffer?
데이터를 일시적으로

메모리 상에 저장하는 임시기억공간
꺄륵
BOF란?
Buffer?
데이터를 일시적으로

메모리 상에 저장하는 임시기억공간
꺄륵
BOF란?
꺄륵
BOF란?
A를 1만번이나!!
꺄륵
BOF란?
꺄륵
BOF의 원리 프로그램 구동
꺄륵
BOF의 원리 프로그램 구동
꺄륵
BOF의 원리 프로그램 구동
스택입니다...
0xffffffff
0x00000000
꺄륵
BOF의 원리 프로그램 구동
ret
ebp
0x1
0x2
…
…
4byte
4byte
8byte
0xffffffff
0x00000000
꺄륵
BOF의 원리 프로그램 구동
ret
ebp
buf1
buf2
…
…
4byte
4byte
8byte
Buffer에 16byte의
값을 넣어주면?
buffer가 사용자로부터
값을 입력 받을 때...
꺄륵
BOF의 원리 BOF!!
ret
ebp
buf1
buf2
…
…
4byte
4byte
8byte A x 16
꺄륵
BOF의 원리
0x41414141
0x41414141
0x41414141
0x41414141
…
…
4byte
4byte
8byte Buffer Overflow!!
BOF!!
꺄륵
BOF의 원리
0x41414141
0x41414141
0x41414141
0x41414141
…
…
4byte
4byte
8byte
특정 영역에 쉘코드 삽입
쉘코드의 주소를 ret에 덮여씌움
Buffer Overflow!!
쉘코드를 수행
Exploit!!
BOF!!
꺄륵
BOF의 원리 조건!!
SetUID
파일이 실행되는 동안에 잠깐 파일 소유자의 권한을 빌려오고,
작업을 마친후에 다시 권한을 반한
passwd
꺄륵
BOF의 원리 조건!!
gremlin(상위 상위 레벨 계정)
프로그램 실행시 gremlin 계정 기반으로 프로세스 엑세스 권한 부여
꺄륵
BOF의 원리 BOF!!
간단한 Buffer Overflow
꺄륵
BOF의 원리 BOF!!
더미 X
꺄륵
BOF의 원리 BOF!!
ret
sfp
buffer
…
…
4byte
4byte
256byte
260byte의 값
4byte의 return주소
꺄륵
BOF의 원리 BOF!!
ret
sfp
buffer
…
…
4byte
260byte
“x90”*100+”쉘코드”(25)+”x90”*135 buffer의 주소
꺄륵
BOF의 원리 BOF!!
buffer
0x90909090
0x90909090
0x90909090
0x90909090
0x90909090
…
ShellCode
…
0x90909090
0x90909090
0x90909090
0x90909090
buffer (256)
ebp (4byte)
ret (4byte)
꺄륵
BOF의 원리 BOF!!
0xbffff8c8
꺄륵
BOF의 원리 BOF!!
./gremlin `python -c 'print x90*100+x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6e
x89xe3x50x53x89xe1x89xc2xb0x0bxcdx80+x90*135+xc8xf8xffxbf'`
꺄륵
BOF의 원리 BOF!!
꺄륵
BOF를 활용해보자
과연 이것만으로 해킹 가능?
물론 가능하기는 합니다.
??!!!
꺄륵
BOF를 활용해보자
보호기법ㅋ
꺄륵
BOF를 활용해보자
특정 메모리 영역을 필터링
DEP / NX
스택, 힙 같은 영역의 코드가 실행되지 않도록 차단
버퍼 초기화, argv검사 등등
그 외, ASLR, Stack Cookie, ASCII-Armor, Canary 등등
꺄륵
BOF를 활용해보자
RTL Fake EBPReturn to Library(Libc)
DEP
특정영역
 필터링
ret까지만
 오버플로우
 가능
꺄륵
RTL
Return to Library(Libc)
DEP
 우회
libc - 스택상에 있는 것이 아님
꺄륵
RTL
Return to Library(Libc)
쉘코드 없이 Exploit 가능
system, exec
ㄱㅇㄷ
꺄륵
RTL
Return to Library(Libc)
system() system
나는 쓰레기에요..ㅠㅠ(4byte)
/bin/sh
ebp+8참조
꺄륵
RTL
Return to Library(Libc)
system() system
나는 쓰레기에요..ㅠㅠ(4byte)
/bin/sh
ebp+8참조
ret 또는 eip
꺄륵
RTL
Return to Library(Libc)
system, /bin/sh
?
꺄륵
RTL
Return to Library(Libc)
gdb coding
꺄륵
RTL
system
ebp
buffer
쓰레기..에요 ㅠ
/bin/sh
ret (4byte)
쓰레기에요 ㅠ.ㅠ (4byte)
bin/sh(4byte)

More Related Content

What's hot

파이선 실전공략-1
파이선 실전공략-1파이선 실전공략-1
파이선 실전공략-1
Nomota Hiongun KIM
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Joongi Kim
 
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
Tae Young Lee
 
포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전
주항 박
 
20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영
Tae Young Lee
 
Exp manager
Exp managerExp manager
Exp manager
Yoonjae Park
 
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
YunWon Jeong
 
파이썬(Python) 소개
파이썬(Python) 소개파이썬(Python) 소개
파이썬(Python) 소개
Jin wook
 
Pwnable study basic_1
Pwnable study basic_1Pwnable study basic_1
Pwnable study basic_1
Jinkyoung Kim
 
System+os study 7
System+os study 7System+os study 7
System+os study 7
Jinkyoung Kim
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
정명훈 Jerry Jeong
 
System+os study 5
System+os study 5System+os study 5
System+os study 5
Jinkyoung Kim
 
Windows reversing study_basic_8
Windows reversing study_basic_8Windows reversing study_basic_8
Windows reversing study_basic_8
Jinkyoung Kim
 
Python 생태계의 이해
Python 생태계의 이해Python 생태계의 이해
Python 생태계의 이해
용 최
 
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
Tae Young Lee
 
Python machine learning Chapter 06 - PART1
Python machine learning Chapter 06 - PART1Python machine learning Chapter 06 - PART1
Python machine learning Chapter 06 - PART1
Young Oh Jeong
 
Asynchronous 101 - (1)
Asynchronous 101 - (1)Asynchronous 101 - (1)
Asynchronous 101 - (1)
MinChul Lee
 
파이썬 스터디 15장
파이썬 스터디 15장파이썬 스터디 15장
파이썬 스터디 15장SeongHyun Ahn
 
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
GangSeok Lee
 

What's hot (20)

파이선 실전공략-1
파이선 실전공략-1파이선 실전공략-1
파이선 실전공략-1
 
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
Python Korea 2014년 6월 세미나 - Windows 환경에서 Python 개발환경 세팅하기
 
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
2016317 파이썬기초_파이썬_다중설치부터_Jupyter를이용한프로그래밍_이태영
 
포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전
 
20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영20150306 파이썬기초 IPython을이용한프로그래밍_이태영
20150306 파이썬기초 IPython을이용한프로그래밍_이태영
 
Exp manager
Exp managerExp manager
Exp manager
 
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
알파희 - PyPy/RPython으로 20배 빨라지는 아희 JIT 인터프리터
 
파이썬(Python) 소개
파이썬(Python) 소개파이썬(Python) 소개
파이썬(Python) 소개
 
Pwnable study basic_1
Pwnable study basic_1Pwnable study basic_1
Pwnable study basic_1
 
System+os study 7
System+os study 7System+os study 7
System+os study 7
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
System+os study 5
System+os study 5System+os study 5
System+os study 5
 
Windows reversing study_basic_8
Windows reversing study_basic_8Windows reversing study_basic_8
Windows reversing study_basic_8
 
Python 생태계의 이해
Python 생태계의 이해Python 생태계의 이해
Python 생태계의 이해
 
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
파이썬 데이터과학 1일차 - 초보자를 위한 데이터분석, 데이터시각화 (이태영)
 
Python machine learning Chapter 06 - PART1
Python machine learning Chapter 06 - PART1Python machine learning Chapter 06 - PART1
Python machine learning Chapter 06 - PART1
 
TBB 소개
TBB 소개TBB 소개
TBB 소개
 
Asynchronous 101 - (1)
Asynchronous 101 - (1)Asynchronous 101 - (1)
Asynchronous 101 - (1)
 
파이썬 스터디 15장
파이썬 스터디 15장파이썬 스터디 15장
파이썬 스터디 15장
 
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
 

Similar to bof기초+rtl+fake_ebp

[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
NAVER D2
 
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기
Jinkyoung Kim
 
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
GangSeok Lee
 
parameter tampering
parameter tamperingparameter tampering
parameter tampering
Ilsun Choi
 
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼
mangonamu
 
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XpressEngine
 
제12회 IT4U 강연회 - 악성코드 분석 잘하고 싶어요
제12회 IT4U 강연회 - 악성코드 분석 잘하고 싶어요제12회 IT4U 강연회 - 악성코드 분석 잘하고 싶어요
제12회 IT4U 강연회 - 악성코드 분석 잘하고 싶어요
NAVER D2
 
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
Dong Chan Shin
 
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드
GangSeok Lee
 
comparing Shell dectector and NeoPI
comparing Shell dectector and NeoPIcomparing Shell dectector and NeoPI
comparing Shell dectector and NeoPI
Ilsun Choi
 
2016 hack festival igrus
2016 hack festival igrus2016 hack festival igrus
2016 hack festival igrus
Jinookawk
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
NAVER D2
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기
Changwan Jun
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
NAVER D2
 
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
Daehee Kim
 
Windows reversing study_basic_9
Windows reversing study_basic_9Windows reversing study_basic_9
Windows reversing study_basic_9
Jinkyoung Kim
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
YoungSu Son
 
Windows Debugging Technique #2
Windows Debugging Technique #2Windows Debugging Technique #2
Windows Debugging Technique #2
Wooseok Seo
 
Windows reversing study_basic_1
Windows reversing study_basic_1Windows reversing study_basic_1
Windows reversing study_basic_1
Jinkyoung Kim
 
Shellcode
ShellcodeShellcode
Shellcode
성환 최
 

Similar to bof기초+rtl+fake_ebp (20)

[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
[2017 Incognito] 스택 구조 분석을 통한 ROP 기법의 모든 것
 
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기
해커가 되고 싶은 자는 나에게... 정보보안 입문과 길 찾기
 
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
 
parameter tampering
parameter tamperingparameter tampering
parameter tampering
 
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼
 
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
 
제12회 IT4U 강연회 - 악성코드 분석 잘하고 싶어요
제12회 IT4U 강연회 - 악성코드 분석 잘하고 싶어요제12회 IT4U 강연회 - 악성코드 분석 잘하고 싶어요
제12회 IT4U 강연회 - 악성코드 분석 잘하고 싶어요
 
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
 
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique의 발전과 최신 트랜드
 
comparing Shell dectector and NeoPI
comparing Shell dectector and NeoPIcomparing Shell dectector and NeoPI
comparing Shell dectector and NeoPI
 
2016 hack festival igrus
2016 hack festival igrus2016 hack festival igrus
2016 hack festival igrus
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
 
Windows reversing study_basic_9
Windows reversing study_basic_9Windows reversing study_basic_9
Windows reversing study_basic_9
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
Windows Debugging Technique #2
Windows Debugging Technique #2Windows Debugging Technique #2
Windows Debugging Technique #2
 
Windows reversing study_basic_1
Windows reversing study_basic_1Windows reversing study_basic_1
Windows reversing study_basic_1
 
Shellcode
ShellcodeShellcode
Shellcode
 

bof기초+rtl+fake_ebp