Skip to content

README

Contents

Info

https://hgu-ghost.netlify.app/ 에서 관리됩니다.

security-tutorial

Notice

이 가이드는 10일 과정으로 구성되며 독자가 C 언어 를 알고 있고 ProgrammerBase 를 공부하고 왔다고 가정합니다.

Docker

이제 모든 실습을 Docker 가상 환경에서 할 수 있도록 되었습니다! 서버 비용도 필요 없고 무겁고 느린 가상머신도 필요없어요. 다음 명령어만 입력하면 security-tutorial 을 실습할 모든 준비가 끝납니다.

$ docker run -it --privileged ccss17/security-tutorial

Contents

Day 1 : Base

  • 기술적 특이점(Technological Singularity)

  • 약인공지능과 강인공지능(Weak AI and Strong AI)

  • 보안에 관한 기본 용어(Basic terminology about security)

Day 2 : Computer Principle 1

  • 괴델의 불완전성 정리(Godel's Incompleteness Theorem)

  • 튜링 머신(Turing Machine)

  • 폰 노이만 구조(Von Neumann architecture)

  • 데이터 저장방식(How data is stored on computer)

  • CPU 레지스터(CPU register)

  • 어셈블리어 1 (Assembly Language 1)

Day 3 : Computer Principle 2

  • 어셈블리어 2 (Assembly Language 2)

  • 가상 메모리 시스템 (Virtual Memory System)

  • 스택 메모리 영역 (Stack Memory)

  • gdb 사용법 1 (gdb usage 1)

  • 함수 호출의 컴퓨터 내부적 원리 (Computer internal principle of function calls)

Day 4 : Reversing 1

  • 리버싱의 정의 (Definition of reversing)

  • 리버싱 툴 (Reversing tools)

  • gdb 사용법 2 (gdb usage 2)

  • crackme0x00a ~ crackme0x03 연습 및 설명

  • (HW) crackme0x004, crackme0x05 실습

Day 5 : Reversing 2

  • crackme0x004, crackme0x05 설명

  • radare2 사용법 (radare2 usage)

  • xor 암호화 (xor encryption)

  • reversing.kr 문제 easyelf 풀어보기

  • (HW) bomb 실습

Day 6 : Exploit 1

  • 리눅스 특수 권한(Linux special permission)

  • 버퍼오버플로우를 통한 프로그램 흐름 조작 (Program flow manipulation through buffer overflow)

  • bof1 설명

  • bof2 ~ bof4 연습 및 설명

  • (HW) bof5 실습

Day 7 : Exploit 2

  • 쉘코드 (shellcode)

  • bof6 ~ bof8 연습

Day 8 : Exploit 3

  • bof7 상세 설명

  • NX bitDEP

  • RTL

  • bof9 연습 및 설명

Day 9 : Exploit 4

  • ASLR

  • bof10, bof11 연습 및 설명

Day 10 : Pentest + Wrap-up

  • 침투테스트 예시 (Example of pentest)

  • 블루투스 취약점 - 블루본 (Bluetooth vulnerability - Blueborne)

  • CPU 취약점 - 멜트다운 (CPU vulnerability - Meltdown)