안녕하세요. Hygon 입니다.
시스템 해킹에 대한 개념을 다시 한번 정리하고 다른 분들께서 편하게 보기 쉽게 하기위해
이렇게 자료로 올려서 지식을 공유하고자 합니다.
제가 앞으로 이 게시판에 쓸 시스템 해킹 강좌는
돈을 요구하지 않으며 동의 없이 번역, 배포, 수정, 상업 혹은 비 상업적 이용이 가능합니다.
거의 모든 강좌는 리눅스 상에서 진행되지만
일부 강의는 윈도우에 관한 내용이 포함될 수 있습니다.
선행 지식은 C언어, 기초적인 리눅스 사용법
정도가 되겠습니다. 나머지 필요한건 그때그때 따로 설명하거나
링크를 걸어두겠습니다.
또한 어셈블리가 강좌 중에 있긴 하지만 기본적인 몇몇 이론만 설명을 할 것이라
미리 어느정도 익숙하시면 좋습니다.
강의 기간 : 2015-11-30~201X-XX-XX
커리큘럼 :
------------------------------------------------------------------------------------
0x01 : 어셈블리에 기본 지식과 C언어를 어셈블리로 변환 해보기
0x02 : 프로그램의 메모리 구조 알아보기
0x03 : 버퍼 오버플로우와 쉘 코드의 개념 알아보기
0x04 : gdb 기본 명령어와 버퍼 오버플로우 실습
0x05 : 버퍼 오버플로우로 함수 포인터 및 변수 덮어쓰기
0x06 : FSB(Format String Bug) 이론과 맛 보기
0x07 : 쉬어가기 : 스택 가드란? 스택가드 우회하기
0x07 : 버퍼 오버플로우 방지기법 이론
0x08 : RTL(Return To Libc) 이론 및 실습
0x09 : Ascii Armor 이론 및 우회 실습
0x0A : Fake ebp 이론 및 실습
0X0B : [쉬어가기] C언어 이슈와 NULL 포인터 역참조에 대해 알아보자
0x0C : ROP(Return Oriented Programming) 이론 및 실습
0x0D : Memory Leak 관련 취약점
0x0E : NULL로 종료되지 않은 문자열 공격해보기
0x0F : SSP의 Canary 우회해보기
0x010 Use-After-Free 이론과 실습
0x11 : Double-Free 이론과 실습
0x12 : 실제 취약점을 찾아보기 위해서 C언어 코드와 C->어셈블리 변환에 익숙해지자
이후로는 실제 이슈가 되었던 취약 코드를 분석하거나 CTF 문제 풀어보기,
실제 취약점 찾아보기 등등 실전 위주로 작성을 할 예정입니다.
아직 제 실력이 그 정도 까지 된다는 건 아니지만 저도
강좌를 쓰면서 개념을 정리하고, 아마 후반부에서는 제가 쓴 강좌보다 한 개나 두 개 정도
제가 더 앞서가야겠네요.
------------------------------------------------------------------------------------
커리큘럼은 대강 이런 식으로 진행이 될 것같고
아직 저도 저 중에 일부 개념이 확립되지 않은 것이 몇 개 있으므로
강좌를 올리기 전에 충분히 숙지한 후 강좌를 올리겠습니다.
순서는 얼마든지 바뀔 수 있습니다. 내용이 추가될 수도 있겠구요.
강좌 업로드 주기는 확정되지는 않았으나 짧으면 0~3일, 길면(시험기간 등등 바쁜경우) 1주 간격으로 올라올듯 합니다.
그럼 몇일 후에 봅시다.