Thumbnail
BEST
보안 · 네트워크 보안

리눅스 커널 해킹. A부터 Z까지 대시보드

(4.9)
17개의 수강평 ∙  512명의 수강생
165,000원

월 33,000원

5개월 할부 시
지식공유자: 김현우
총 33개 수업 (5시간 31분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

중급자를 위해 준비한
[보안] 강의입니다.

리눅스 커널의 각종 보호 기법과 그에 대한 우회 방안, 다양한 취약점들을 분석해보는 강의이며 강의별로 실습 예제가 제공 됩니다.

✍️
이런 걸
배워요!
리눅스 커널 해킹
CTF 커널 문제 풀이
linux kernel exploit

💡  강의 특징 

이 강의는 리눅스 커널 해킹에 대한 전반적인 지식을 학습하는 강의입니다.

리눅스 커널 해킹은 국내에서 공부할 수 있는 자료가 매우 부족한 분야이며, 환경 구성 단계부터 수많은 애로 사항이 있는 분야입니다. 하지만, 이 강의를 수강하시면 환경 구성은 물론이고 다양한 보호 기법의 우회 방법각종 취약점에 대해 쉽게 공부하실 수 있습니다.

또, 단순히 특정 툴 사용법만을 가르치거나 이미 잘 알려진 해킹 기술들을 다시 소개하는 수준에 불과한 여타 정보보안 강의들과 달리, low-level에서의 동작 원리에 입각하여 각종 익스플로잇 테크닉들을 소개한다는 것이 이 강의의 특징입니다.

▲ 리눅스 커널의 취약점을 이용해 권한 상승을 일으킨 모습

최근 몇 년간 major 한 CTF에서는 리눅스 커널 문제가 꾸준히 출제됐습니다. 최근의 경우 출제 빈도가 더욱 증가하는 추세고요. 이 강의를 "완벽히" 이해하신다면, CTF에서 출제되는 리눅스 커널 문제들은 대부분 해결하실 수 있을 것이며, 리얼 월드에서 취약점을 찾는 데도 큰 도움을 받으실 수 있을 거라 말씀드리고 싶습니다.

마지막으로 이 강의의 가장 큰 특징은, 강의마다 강사가 직접 제작한 실습 예제 파일을 제공해 준다는 점입니다. 이러한 실습 예제 파일을 통해 수강생 여러분들이 직접 강의를 따라 해 보고, 디버깅을 해보실 수 있습니다.


📖  각 섹션에서는 무엇을 배우나요? 

 

▲ 섹션 4.6. userfaultfd 활용 기법 강의 자료

이 강의는 대부분 위의 예시와 같이 키노트를 이용한 발표로 구성되어 있습니다.

 

  • 섹션 0. 강의 프롤로그

본격적으로 강의를 시작하기에 앞서, 강사에 대한 간단한 소개와 강의 계획을 설명해 드리는 섹션입니다.

 

  • 섹션 1. 리눅스 커널 해킹 배경지식

리눅스 커널을 해킹하기 위한 기본적인 배경지식을 공부하는 섹션입니다.

 

  • 섹션 2. 리눅스 커널 분석 환경 세팅

리눅스 커널을 디버깅할 수 있는 환경을 구성하는 방법을 알아보는 섹션입니다. 리얼 월드를 위한 환경 세팅 과정에서는 리눅스 커널과 파일 시스템을 직접 빌드해볼 것이며, CTF를 위한 환경 세팅 과정에서는 문제를 풀기 위한 준비 과정을 알아볼 예정입니다.

 

  • 섹션 3. 리눅스 커널의 보호 기법 및 우회 방안

리눅스 커널의 다양한 보호 기법에 대해 알아보고, 각 보호 기법들을 우회할 수 있는 테크닉들을 실습을 통해 공부해보는 섹션입니다. 공부해볼 보호 기법들은 인텔 계열 아키텍쳐의 보호 기법들이며, 총 6가지의 보호 기법을 공부해 볼 예정입니다. 또, 이번 섹션부터는 각 강의마다 실습 예제 파일이 제공됩니다.

 

  • 섹션 4. 다양한 커널 공격 테크닉 실습

리눅스 커널 취약점이 터지는 상황에서 권한 상승을 일으킬 수 있는 다양한 테크닉들을 공부해보는 섹션입니다.

 

  • 섹션 5. 다양한 리눅스 커널 취약점 분석

리눅스 커널에서 발생할 수 있는 다양한 유형의 취약점을 알아보는 섹션입니다.

 

  • 섹션 6. 대회 문제 실습 - Input Test Driver

실제로 CTF에 출제된 리눅스 커널 문제를 풀어보는 섹션입니다. 풀어볼 문제는, 강사가 소속된 팀에서 운영했던 대회인 2020 Defenit CTF에서 출제된 Input Test Driver 문제입니다.

 

  • 섹션 7. 강의 에필로그

리눅스 커널을 공부할 때 도움이 되는 레퍼런스를 소개한 뒤, 강의를 마무리하는 섹션입니다.


✏️  강의를 듣기 위한 배경지식

 

  • 최소 배경지식

1. C 언어

 

  • 권장 배경지식

1. 시스템 해킹 관련 지식 (BOF, ROP, UAF 등)
2. 어셈블리 언어 (x86_64)


🙋🏻‍♂️ 예상 질문 Q&A

 

Q. 저는 시스템 해킹을 해본 적도 없고 어셈블리 언어도 모르는데 강의를 들어도 될까요?
A. 각 강의를 제작할 때, 시스템 해킹이 주 분야가 아니신 분들도 들을 수 있도록 제작했기 때문에, 새로운 용어가 등장할 때마다 강의에 그에 대한 설명이 들어가 있습니다.

하지만, 이는 요약된 설명이기 때문에 모르는 개념이 등장했을 때 구글 검색과 병행해서 공부하셔야 하며, 시스템 해킹 관련 지식이 없는 상태에서 수강하실 경우 학습 기간이 훨씬 길어진다는 점을 염두에 두셔야 합니다.

 

 

Q. 리눅스는 어떤 버전을 사용하시나요?
A. 제 경우 우분투 18.04 버전을 사용했습니다.(https://releases.ubuntu.com/18.04/)

 

 

Q. 강의가 연재식 강의던데, 남은 강의는 언제 올라오나요?
A. 현재 모든 강의의 업로드가 완료되었습니다.

 

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
리눅스 커널 해킹을 처음 공부해보고 싶은 분들
포너블을 공부해 보았고, 이제 리눅스 커널 익스플로잇에 입문하고 싶으신 분들
📚
선수 지식,
필요할까요?
C언어

안녕하세요
김현우 입니다.
김현우의 썸네일

리눅스 커널 해커 및 컨트리뷰터로 활동 중인 김현우 입니다. V4bel 이라는 닉네임을 사용하고 있습니다.

 ⦁  github  :  github.com/V4bel
 ⦁  e-mail  imv4bel@gmail.com

 

취약점 제보

⦁  CVE-2023-51779 (Linux kernel bluetooth socket Use-After-Free)
⦁  CVE-2023-51780 (Linux kernel atm socket Use-After-Free)
⦁  CVE-2023-51781 (Linux kernel appletalk socket Use-After-Free)
⦁  CVE-2023-51782 (Linux kernel rose socket Use-After-Free)
⦁  CVE-2023-32269 (Linux kernel NET/ROM socket Use-After-Free)
⦁  CVE-2022-41218 (Linux kernel DVB core Use-After-Free)
⦁  CVE-2022-45884 (Linux kernel DVB core Use-After-Free)
⦁  CVE-2022-45885 (Linux kernel DVB core Use-After-Free)
⦁  CVE-2022-45886 (Linux kernel DVB core Use-After-Free)
⦁  CVE-2022-45919 (Linux kernel DVB core Use-After-Free)
  CVE-2022-40307 (Linux kernel Device driver Use-After-Free)
 CVE-2022-41848 (Linux kernel Device driver Use-After-Free)
 CVE-2022-41849 (Linux kernel Device driver Use-After-Free)
⦁  CVE-2022-41850 (Linux kernel Device driver Use-After-Free)
  CVE-2022-44032 (Linux kernel Device driver Use-After-Free)
  CVE-2022-44033 (Linux kernel Device driver Use-After-Free)
  CVE-2022-44034 (Linux kernel Device driver Use-After-Free)
  CVE-2022-45888 (Linux kernel Device driver Use-After-Free)
  ...

 

리눅스 커널 기여

⦁  Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg
(github.com/torvalds/linux/commit/2e07e8348ea454615e268222ae3fc240421be768)

⦁  atm: Fix Use-After-Free in do_vcc_ioctl
(github.com/torvalds/linux/commit/24e90b9e34f9e039f56b5f25f6e6eb92cdd8f4b3)

⦁  appletalk: Fix Use-After-Free in atalk_ioctl
(github.com/torvalds/linux/commit/189ff16722ee36ced4d2a2469d4ab65a8fee4198)

⦁  net/rose: Fix Use-After-Free in rose_ioctl
(github.com/torvalds/linux/commit/810c38a369a0a0ce625b5c12169abce1dd9ccd53)

⦁  media: dvb-core: Fix use-after-free due to race at dvb_register_device()
(github.com/torvalds/linux/commit/627bb528b086b4136315c25d6a447a98ea9448d3)

⦁  af_key: Fix heap information leak
(github.com/torvalds/linux/commit/2f4796518315ab246638db8feebfcb494212e7ee)

⦁  netrom: Fix use-after-free caused by accept on already connected socket
(github.com/torvalds/linux/commit/611792920925fb088ddccbe2783c7f92fdfb6b64)

⦁  net/rose: Fix to not accept on connected socket
(github.com/torvalds/linux/commit/14caefcf9837a2be765a566005ad82cd0d2a429f)

⦁  net/x25: Fix to not accept on connected socket
(github.com/torvalds/linux/commit/f2b0b5210f67c56a3bcdf92ff665fb285d6e0067)

⦁  efi: capsule-loader: Fix use-after-free in efi_capsule_write
(github.com/torvalds/linux/commit/9cb636b5f6a8cc6d1b50809ec8f8d33ae0c84c95)

⦁  HID: roccat: Fix Use-After-Free in roccat_read
(github.com/torvalds/linux/commit/cacdb14b1c8d3804a3a7d31773bc7569837b71a4)

⦁  video: fbdev: smscufx: Fix use-after-free in ufx_ops_open()
(github.com/torvalds/linux/commit/5610bcfe8693c02e2e4c8b31427f1bdbdecc839c)

⦁  video: fbdev: smscufx: Fix several use-after-free bugs
(github.com/torvalds/linux/commit/cc67482c9e5f2c80d62f623bcc347c29f9f648e1)

⦁  char: xillybus: Fix trivial bug with mutex
(github.com/torvalds/linux/commit/c002f04c0bc79ec00d4beb75fb631d5bf37419bd)

⦁  bpf: Always use maximal size for copy_array()
(github.com/torvalds/linux/commit/45435d8da71f9f3e6860e6e6ea9667b6ec17ec64)

⦁  media: dvb-core: Fix UAF due to refcount races at releasing
(github.com/torvalds/linux/commit/fd3d91ab1c6ab0628fe642dd570b56302c30a792)

⦁  ...

 

CTF 이력

⦁  2020 TokyoWesterns CTF 1st (D0G$)
⦁  2020 ASIS CTF Quals 2nd (DefenitelyZer0)
⦁  2020 TSG CTF 2nd (DefenitelyZer0)
 2020 Securinets CTF 2nd (Defenit)
⦁  2020 Google CTF 18th (I use Bing)
⦁  ...

 

CTF 문제 출제

⦁  2020 Defenit CTF (Input Test Driver)
⦁  HackCTF (Torn_PhoneBook)

커리큘럼 총 33 개 ˙ 5시간 31분의 수업
이 강의는 영상, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 1. 리눅스 커널 해킹 배경 지식
리눅스 커널 개론 09:29
태스크란? 06:31
슬랩 할당자란? 08:14
디바이스 드라이버란? 06:19
모듈 프로그래밍 05:15
섹션 2. 리눅스 커널 분석 환경 세팅
리눅스 커널 & 파일 시스템 빌드 09:19
qemu & gdb 세팅 05:30
CTF에서의 환경 세팅 06:00
섹션 3. 리눅스 커널의 보호 기법 및 우회 방안
리눅스 커널 보호 기법 개론 06:37
KASLR 우회 16:00
SMEP 우회 11:33
SMAP 우회 10:50
KADR 우회 07:26
SSP 우회 09:51
KPTI 우회 08:21
섹션 4. 다양한 커널 공격 테크닉 실습
ret2usr 기법 13:52
kernel ROP 기법 11:27
cr4 overwrite 기법 10:25
kernel stack pivoting 기법 12:50
kernel heap spray 기법 10:10
userfaultfd 활용 기법 24:29
struct cred overwrite 기법 15:38
섹션 5. 다양한 리눅스 커널 취약점 분석
Stack based BOF 11:21
Kernel UAF 14:35
Kernel Heap Overflow 12:32
Arbitrary Write 15:09
Double Fetch 12:23
섹션 6. 대회 문제 실습 - Input Test Driver
문제 소개 & 문제 배경 지식 08:33
문제 분석 & Exploit 20:40
섹션 7. 강의 에필로그
추천 레퍼런스 01:57
마치며 00:33
강의 게시일 : 2020년 11월 05일 (마지막 업데이트일 : 2020년 11월 02일)
수강평 총 17개
수강생분들이 직접 작성하신 수강평입니다.
4.9
17개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
LK thumbnail
5
국내에서 찻기힘든 커널해킹강의를 쉽게설명해주어서 입문하기좋았다
2022-03-01
지식공유자 김현우
감사합니다 :)
2022-03-01
박상준 thumbnail
5
초보자도 알기 쉽게 설명해주시고 질문 답변이 매우 빠르시고 친절하십니다!! 개인적으로 정말 얻어가는게 많았어요
2022-08-02
지식공유자 김현우
감사합니다 🙂🙂
2022-08-02
선대 thumbnail
5
감사합니다.
2022-02-07
지식공유자 김현우
감사합니다 ㅎㅎ
2022-02-07
설구화 thumbnail
5
리눅스 커널 해킹을 처음 배우는 입장에서 매우 유용한 강의였습니다. 핵심 내용을 이해가 쉽게 설명해주셨고 QEMU를 통한 학습 예제로 더욱 이해가 쉬웠습니다. https://defenit.kr/2019/12/03/Pwn/%E3%84%B4%20Research/linux-kenel-bpf/ 팀 Defenit의 커널 LPE 취약점 분석 자료인 위 링크와 연계해서 학습하면 학습 효과가 더욱 좋은 것 같습니다. 여러가지로 학습에 도움 많이 받고 갑니다. 감사합니다.
2022-02-10
지식공유자 김현우
자세한 후기 감사드립니다 :)
2022-02-10
윤준원 thumbnail
5
현재 한국어로된 커널 해킹 자료가 많이 없는데, 이 강의에 잘 정리되어 있고 입문 자료로서 좋은 거 같다.
2020-11-05
지식공유자 김현우
감사합니다 😊😊
2020-11-05