일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- liblzma
- rootfs
- newbie
- 백도어
- CVE-2024-3094
- xz-utils
- kernel image
- Kernel
- kernel img
- cwe-506
- kernel build
- Today
- Total
목록STUDY/KERNEL (13)
ZZoMb1E
※ 자료들을 참고하여 분석을 진행하였기에 잘못된 부분이 있을지도 모릅니다. ※ 보완 혹은 수정해야 되는 부분이 있다면 알려주시면 확인 후 조치하도록 하겠습니다. 이번에는 Holstein v3을 가지고 수행한다.https://pawnyable.cafe/linux-kernel/LK01/distfiles/LK01-3.tar.gz v2에서는 g_buf를 kmalloc()을 사용하여 할당을 수행했었다.v3으로 넘어오면서는 kzalloc()으로 할당을 수행하여 memory leak을 어느정도 방지를 수행했다.g_buf = kzalloc(BUFFER_SIZE, GFP_KERNEL);if (!g_buf) { printk(KERN_INFO "kmalloc failed"); return -ENOMEM;} kzalloc()..

※ 자료들을 참고하여 분석을 진행하였기에 잘못된 부분이 있을지도 모릅니다. ※ 보완 혹은 수정해야 되는 부분이 있다면 알려주시면 확인 후 조치하도록 하겠습니다. https://whrdud727.tistory.com/entry/KERNEL-Holstein-Module [KERNEL] Holstein Module※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ Holsteinhttps://whrdud727.tistory.com/entry/KERNEL-Environment-Setting [KERNEL] Environment Setting※ 잘못된 부분이 있으면 알려주세요.whrdud727.tistory.com위 게시글에서 Holstein v1에 대해 다루었었다.이번에는 pawnyabl..

※ 자료들을 참고하여 분석을 진행하였기에 잘못된 부분이 있을지도 모릅니다. ※ 보완 혹은 수정해야 되는 부분이 있다면 알려주시면 확인 후 조치하도록 하겠습니다.※ 이미지의 경우 제가 참고한 레퍼런스의 이미지가 설명이 잘되어 있어서 가져왔습니다.(링크 가장 하단에 있습니다.) User 영역에서 malloc, free 등의 함수에 의한 메모리 할당은 ptmalloc에서 관리를 수행한다.Kernel 영엑에서도 User 영역의 ptmalloc 처럼 메모리를 효율적으로 관리하기 위한 Allocator가 필요로 하는데 이게 바로 Slab Allocator이다. Slab Allocator는 Slab Allocator, Slub Allocator, Slob Allocator 이렇게 3가지가 존재한다. Slab All..

※ 자료들을 참고하여 분석을 진행하였기에 잘못된 부분이 있을지도 모릅니다. ※ 보완 혹은 수정해야 되는 부분이 있다면 알려주시면 확인 후 조치하도록 하겠습니다. Kernel 1-day를 분석하기 위해서는 User 공간에서 1-day 분석을 위해 환경 구축을 했던 것처럼, 취약한 버젼에 맞는 Kernel 버젼을 build 해야한다. 이를 위해 준비해야 하는 것은 취약한 버젼에 맞는 bzimage, vmlinux 그리고 PoC 동작을 할 바이너리를 가지고 있는 rootfs 이미지 파일이다. Kernel 1-day 중 하나인 CVE-2022-1015를 분석하기 위해 Kernel 환경 구축에 대해 공부를 하였으며 이를 작성해보고자 한다. 1. Kernel source install먼저 취약한 버젼에 맞는 ..

※ 자료들을 참고하여 분석을 진행하였기에 잘못된 부분이 있을지도 모릅니다. ※ 보완 혹은 수정해야 되는 부분이 있다면 알려주시면 확인 후 조치하도록 하겠습니다. Kernel exploit 공부를 하다 보면 하나의 의문이 생길 것이다. 분명 권한 상승을 위한 바이너리를 제작하고, 로컬 환경에서 확인하는 과정을 거치는데 어떻게 Wargame, CTF 와 같은 곳에 remote로 풀 수 있을까?? 항상 python의 pwntools을 통해 입력 값들을 보내어 문제를 풀어왔기 때문에 의문이 드는 것은 당연한 것이다.바이너리를 어떻게 업로드 하고, 접속해서 풀어야 할까? 답은 생각보다 매우 간단하다.1. 바이너리를 base64로 인코딩2. 인코딩된 데이터를 쪼개어 서버로 전송3. 서버에 명령을 통해 base64..

※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※이번엔 SMEP, SMAP와 함께 KPTI 보호 기법을 우회하는 KROP를 다뤄보겠다. #!/bin/shqemu-system-x86_64 \ -m 64M \ -nographic \ -kernel bzImage \ -append "console=ttyS0 loglevel=3 oops=panic panic=-1 nopti nokaslr pti=on" \ -no-reboot \ -cpu qemu64,+smep,+smap \ -smp 1 \ -monitor /dev/null \ -initrd debugfs.cpio \ -net nic,model=virtio \ -net user \..

※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ 유저 영역에서 ROP는 NX-BIT 보호 기법을 우회하기 위해서 사용했었다. 커널 영역에서의 ROP 역시 SMEP라는 보호기법을 우회하기 위해서 사용하는 기법이다. ROP를 수행하기 위해서는 '코드 조각'이라고 불리는 gadget을 찾아야 한다. 이를 위해 ROPgadget 이라는 툴을 사용해왔다. 이 툴의 경우 바이너리를 인자로 필요로 하고 있다. 하지만 지금까지 해온 커널 영역을 다루는 것은 .cgio 파일을 이용해서 실행 및 접속하는 것이다. 때문에 우리는 먼저 커널 바이너리를 추출해야 한다. #!/bin/sh# SPDX-License-Identifier: GPL-2.0-only# ------------------------..

※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ https://whrdud727.tistory.com/entry/KERNEL-Holstein-Module [KERNEL] Holstein Module※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ Holsteinhttps://whrdud727.tistory.com/entry/KERNEL-Environment-Setting [KERNEL] Environment Setting※ 잘못된 부분이 있으면 알려주세요.whrdud727.tistory.com이전 게시글에서 Holstein 모듈을 활용하여 코드 분석 및 취약점을 확인했다. 취약점으로 RIP 를 조작할 수 있다는 사실을 활용하여 Exploit을 해보겠다..

※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ Holsteinhttps://whrdud727.tistory.com/entry/KERNEL-Environment-Setting [KERNEL] Environment Setting※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ https://lrl.kr/JT5m カーネルexploitへの導入 | PAWNYABLE!カーネルexploitへの導入 「ユーザーランドのpwnは一通り勉強したけwhrdud727.tistory.com앞서 설치한 예제에 포함된 간단한 취약점을 지닌 커널 모듈로 open, read, write를 포함하고 있다. 앞서 설치를 진행했던 설정을 가지고 진행하겠다. 취약점이 존재하는 커널 모듈은 S99..
※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ SMEP (Supervisor Mode Execution Prevention)커널 공간의 코드를 실행하는 동안 유저 공간의 코드를 실행하는 것을 막는 기법이다.유저 공간에서의 코드의 실행을 막는 NX(No Exute)와 유사하다.하드웨어 보안 기법으로, CR4 레지스터의 21번째 비트가 활성화되면 SMEP가 걸린 것이다. 설정 방법은 커널 환경을 구축하는 sh파일에 아래와 같은 부분을 추가해주면 된다.-cpu kvm64, +smep 환경 내부에서 보호기법이 걸려있는지 확인할려면 아래 명령을 실행하면 된다.cat /proc/cpuinfo | grep smep SMAP (Supervisor Mode Access Prevention..