리눅스 커널 해커 및 컨트리뷰터로 활동 중인 김현우(V4bel)입니다.
⦁ Contact: imv4bel@gmail.com
Awards
⦁ Google kernelCTF LTS-6.6.56/COS-109 0-day WIN (CVE-2024-50264)
⦁ Google kernelCTF LTS-6.6.35 0-day WIN (CVE-2024-41010)
Vulnerability Reports
⦁ CVE-2024-27394 (Linux kernel TCP Use-After-Free)
⦁ CVE-2024-27395 (Linux kernel openvswitch Use-After-Free)
⦁ CVE-2024-27396 (Linux kernel GTP Use-After-Free)
⦁ 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)
Linux kernel Contributions
⦁ vsock/virtio: Initialization of the dangling pointer occurring in vsk->trans
(github.com/torvalds/linux/commit/6ca575374dd9a507cdd16dfa0e78c2e9e20bd05f)
⦁ hv_sock: Initializing vsk->trans to NULL to prevent a dangling pointer
(github.com/torvalds/linux/commit/e629295bd60abf4da1db85b82819ca6a4f6c1e79)
⦁ tcp: Fix Use-After-Free in tcp_ao_connect_init
(github.com/torvalds/linux/commit/80e679b352c3ce5158f3f778cfb77eb767e586fb)
⦁ net: openvswitch: Fix Use-After-Free in ovs_ct_exit
(github.com/torvalds/linux/commit/5ea7b72d4fac2fdbc0425cd8f2ea33abe95235b2)
⦁ net: gtp: Fix Use-After-Free in gtp_dellink
(github.com/torvalds/linux/commit/f2a904107ee2b647bb7794a1a82b67740d7c8a64)
⦁ 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)
강의
수강평
- 리눅스 커널 해킹. A부터 Z까지
게시글
질문&답변
kaslr 우회 기법에서 commit_creds, prepare_kernel_cred의 offset을 구하는 과정 질문
안녕하세요.각 커널 심볼 간의 offset은 공격 대상 커널의 정보를 알고 있으면 구할 수 있습니다.예를 들어, 우분투 최신 커널을 대상으로 exploit을 진행한다면, 우분투 최신 버전을 다운 받고 해당 커널의 bzImage를 추출하여 offset을 구하게 됩니다.CTF를 대상으로 진행한다면, 운영 측에서 문제 파일에 커널 이미지를 포함해 줄테니, 해당 커널 이미지로부터 offset을 구하면 되구요.이러한 공격 대상 커널에 대한 정보가 없다면, offset은 구할 수 없습니다.
- 0
- 1
- 33
질문&답변
CTF 참가 시 전문 분야
안녕하세요.포너블, 웹해킹, 암호학 등 하나의 영역을 파는 사람들도 있고 전 분야를 전반적으로 잘하는 사람들도 있습니다.그래도 보통 팀으로 CTF에 나갈 경우 각자 전문 영역이 있는 사람들이 모이는 경우가 좀 더 많은 것 같네요.
- 0
- 1
- 163
질문&답변
SMAP 우회에서 궁금한게 하나 있습니다.
안녕하세요.해당 강의에서는 BOF 취약점을 이용해 ROP를 실행하기 때문에 가능합니다.BOF로 인해 payload가 커널 영역인 커널 스택에 쌓이기 때문에, 이를 실행할 때 SMAP의 영향을 받지 않게 됩니다.유저 영역의 shell()을 실행할 땐 ROP payload로 인해 커널에서 유저 영역으로의 전환이 끝난 후기 때문에 실행되는 것이고, 이는 SMAP와 무관합니다.BOF 외의 취약점을 이용해 exploit 할 경우, 커널 힙 영역으로의 pivoting 작업이 필요합니다.
- 0
- 2
- 295
질문&답변
KADR 우회에서 init파일이 없는 경우는 어떻게 하나요?
안녕하세요. /etc/init.d/ 경로에 존재하는 스크립트와 파일들을 확인해보시기 바랍니다.스크립트가 없을 경우, kallsyms 파일을 복사해서 유저가 읽을 수 있도록 하는 스크립트를 /etc/init.d/ 에 추가하는 것도 방법이 될 수 있습니다.
- 0
- 1
- 338
질문&답변
여전히 해결책 없는 build_result
안녕하세요, 답변이 늦어 죄송합니다. build_result 디렉토리는 제가 임의로 만들어 bzImage와 rootfs.cpio를 한 곳에 모아놓은 것일 뿐이고, make 과정에서 생성되지 않습니다.원하는 디렉토리를 만들어서 bzImage와 rootfs.cpio를 모아놓은 뒤, 해당 위치에서 qemu script를 실행하시면 됩니다.감사합니다.
- 0
- 1
- 316
질문&답변
KASLR 강의에서 주어진 환경에서는 /proc/kallsyms 확인 못하는 것이 맞나요?
안녕하세요.강의 중 KADR 우회 강의를 확인하시면, init 스크립트를 수정하여 root 권한으로 부팅한 후 /proc/kallsyms를 읽어오는 내용이 있습니다.해당 강의를 확인하시면 될 것 같습니다.감사합니다.
- 0
- 1
- 459
질문&답변
안녕하세요 수강중 궁금한 것이 있습니다.
안녕하세요.답변을 늦게 드리게 되어 죄송합니다.해당 강의는 pwnable에 대한 개념이 어느정도 잡힌 수강생 분들을 주 대상으로 하고 있습니다.만약 pwnable 기본 개념을 쌓고 싶으시다면, https://dreamhack.io/ 교육 플랫폼을 추천 드립니다.
- 0
- 2
- 477
질문&답변
가젯에 대해 이해가 잘 안됩니다.
안녕하세요.pop rax;가 실행되는 시점에 rsp는 0x6f0를 가리키고 있게 됩니다.이 상황에서 pop rax;가 실행되면, rsp가 가리키고 있는 0x6f0을 rax로 pop하기 때문에 0x6f0을 넣을 수 있게 됩니다.더 자세한 것은 ROP에 대해 공부해보시면 도움이 될 것 같습니다.
- 0
- 1
- 495
질문&답변
Kernel KPTI 적용시 영향?
안녕하세요.리눅스 커널 이미지는 런타임에서 command-line parameter 등에 의해 그 구조가 바뀔 수 있습니다.KPTI를 적용하고 부팅한 커널에선, 커널 모드와 유저 모드로 전환하는 함수들의 흐름이 바뀌기도 하구요.이런 경우엔 그냥 살아있는 가젯을 사용하거나, gdb의 find 명령어로 런타임에서 가젯을 찾는 것이 가장 간편한 방법입니다.
- 0
- 1
- 547
질문&답변
qemu 스크립트 실행시 Kernel panic이 발생합니다.
안녕하세요.해당 오류는 rootfs.cpio 파일에 문제가 있어서 발생하는 오류로 보입니다.3-2. KASLR 강의의 수업 자료를 다운받아서 boot.sh를 실행시켜도 같은 오류가 출력되는지 확인해보시기 바랍니다.
- 0
- 2
- 725