책소개
프로토스타는 시스템 해킹 입문자를 위한 예제 문제입니다. 대회 문제를 입문하기 전에 다양한 프로그램 취약점과 분석 프로그램을 실습하기 좋은 환경입니다. 수준별로 레벨1부터 하나씩 올라가기에 부담이 덜합니다. 실제 다른 CTF 대회에 출제되는 문제들은 수준이 상당히 높습니다. 대회를 통해 우승자를 가려내야 하기 때문입니다. 이 문제들을 하나씩 해결해 나가면 해킹 대회와 CTF에 참여하기 위한 기초 지식을 학습할 수 있습니다.
프로토스타가 CTF를 돕는다는 면도 있지만 실제 환경에서 많은 버그들이 유사한 방식으로 나타납니다. 최근에 등장하는 소프트웨어 취약점들도 마찬가지입니다. 2018년에 발생한 PDF 취약점 CVE-2018-8120과 CVE-2018-4990의 두 취약점을 사용한 공격은 대표적인 사례입니다. 내부적으로 힙 스프레이, 더블프리버그(DFB), ROP와 같은 기술들이 쓰였는데 실제 프로그램을 분석하면서 학습하기는 너무 어려운 기법들입니다. 바로 실전으로 돌입하게 되면 프로그램의 구성 난이도 때문에 분석은 커녕 아무것도 하지 못할 가능성이 높습니다. 이러한 분석을 하기 전에 반드시 각각의 기술들에 대한 심도 깊은 실습과 이해가 필요합니다. 물론 프로토스타는 힙 스프레이, 더블프리버그, ROP와같은 기술을 모두 배울 수 있는 좋은 학습 현장입니다.
목차
01 프로토스타 들어가기 12
1.1 프로토스타 시스템 해킹의 입문을 돕는다! 12
1.2 프로토스타 참고 사이트 16
1.3 필요 선수 지식 17
02 프로토스타 환경 설정 18
2.1 VM웨어 플레이어 15 설치 18
2.2 프로토스타 설치 23
2.3 반디집 설치 33
2.4 칼리 리눅스 설치 35
2.5 리눅스 명령어 기초 40
2.6 Putty 설치 44
2.7 샘플 파일 환경 설정 49
03 어셈블리어 언어 이해 56
04 GDB 기초 69
4.1 gdb란? 69
4.2 gdb 실습 70
05 stack0 ? 해킹의 시작 80
5.1 소스코드 분석 81
5.2 GDB 분석 86
5.3 취약점 분석 92
06 stack1 ? 정확하게 인증하기 101
6.1 소스코드 분석 101
6.2 GDB 분석 103
6.3 취약점 분석 110
07 리눅스 Exploit 도우미 peda 118
7.1 공격을 도와주는 peda 118
7.2 peda 사용법 119
08 stack2 ? 환경변수 오버플로 125
8.1 소스코드 분석 125
8.2 GDB 분석 127
8.3 취약점 분석 133
09 폰툴(pwn-tools)을 사용한 공격 코드 구성 141
10 stack3 ? 실행 흐름 변조 146
10.1 소스코드 분석 146
10.2 GDB 분석 148
10.3 취약점 분석 153
11 stack4 ? Return To Library(RTL) 159
11.1 소스코드 분석 161
11.2 GDB 분석 163
11.3 취약점 분석 165
12 stack5 ? 오버플로를 활용한 셸코드 실행 171
12.1 소스코드 분석 172
12.2 GDB 분석 173
12.3 셸코드를 스택에 삽입하는 기법 176
12.4 리턴 투 라이브러리(return to lib) 기법 191
13 stack6 - ret 체크 우회 199
13.1 소스코드 분석 199
13.2 GDB 분석 202
13.3 취약점 분석 208
14 stack7 ? ROP 입문 215
14.1 소스코드 분석 215
14.2 GDB 분석 216
14.3 ROP RTL 기법을 활용한 Exploit 222
14.4 Jmp Esp 기법을 활용한 Exploit 230