일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백도어
- xz-utils
- newbie
- kernel build
- kernel img
- kernel image
- CVE-2024-3094
- liblzma
- Kernel
- rootfs
- cwe-506
- Today
- Total
목록전체 글 (77)
ZZoMb1E
※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ libc 파일 내에서 execve('/bin/sh',0,0) 과 같은 셀을 실행주는 부분을 찾아주는 tool이다.다시 말해서 stack의 ret 위치에 one_gadget이 들어간다면 shell을 바로 얻을 수 있다는 것이다. 설치 방법gem install one_gadget 보통 ctf같은 곳에서는 libc파일을 제공해주지만 우리는 예제를 가지고 할 것이기 때문에 로컬 libc 파일을 가지고 해보겠다.사용 방법은 이미지와 같이 사용하면 된다.one_gadget {libc} 총 4개의 one_gadget이 있다고 나와있다.다 똑같은 거 아니냐고 말할 수 있는데, 기능은 같은게 맞지만 사용할 수 있는 상황이 다르다.예를들어 가장 ..
※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ Double State Format String Bug버퍼가 전역 변수로 선언되어 있는 등의 상황에서 사용하는 fsb 기법이다. //gcc -no-pie -fno-stack-protector -z execstack -o ex ex.c#include #include char buf[128];void gift() { printf("Hello! ZZoMblE"); system("/bin/sh");}void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0);}void vuln() { char str[128] = "He..
※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ fmtstr_payload는 fsb 취약점을 Explot하는 것을 자동화해주는 함수이다. payload = fmtstr_payload(offset, {주소 : 덮을 값})payload = fmtstr_payload(7, {addr:value})위와 같이 사용하면 된다. 64비트 환경에서 사용하고자 한다면 아래 코드를 붙여줘야 한다.context.bits = 64 앞에서 사용한 예제의 payload를 가지고 비교를 해보겠다.from pwn import*target = b'./ex'p = process(target)e = ELF(target)gift = e.sym['gift']exit_got = e.got['exit']payloa..
※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ FSB는 Format String Bug의 약자로 이름 그대로 형식 지정자의 잘못 사용으로 인해 발생하는 취약점이다.변수의 출력을 위해 아래와 같이 printf()를 많이 사용해왔을 것이다.printf("%d",num1);이 방식대로 사용하는 것이 올바른 방법이다라는 것은 알고 있을 것인데, 그러면 취약한 코드의 경우에는 어떻게 사용하였기에 Bug가 발생하는 것일까? 형식 지정자란?이를 이해하기 위해서는 형식 지정자가 무엇인지 알아야 한다. 형식 지정자는 printf()나 scanf()와 같은 함수에서 가변 인자를 받아 처리하기 위한 데이터 포맷이다. 예를 들어, %d는 정수를 출력하는 형식 지정자이고, %s는 문자열을 출력하는 ..
보호되어 있는 글입니다.
※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ 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..
※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ https://lrl.kr/JT5m カーネルexploitへの導入 | PAWNYABLE!カーネルexploitへの導入 「ユーザーランドのpwnは一通り勉強したけど、カーネルからは難しそうで手が出ない」という方は多いでしょう。しかし、実はカーネルexploitでは、場合によってはとpawnyable.cafe실습에 있어서 pawnyable.cafe 에 올라와있는 예제파일을 사용하였다. 예제 파일 다운로드mkdir kernelcd kernelwget https://pawnyable.cafe/linux-kernel/LK01/distfiles/LK01.tar.gztar -xzvf LK01.tar.gz 각자 환경에 맞는 qemu도 설치를 해준다.apt instal..
※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※KERNEL의 전반적인 내용은 아래 링크에서 학습을 하였다.https://pawnyable.cafe/ Kernel Exploit은 일반적인 stack, heap exploit과의 무슨 차이가 있을까??기본적으로 어떤 것을 목표로 exploit이 실행되는지에 있어서 차이가 발생한다. 지금까지 공부해왔던 exploit들은 shell 취득, 임의 명령어 실행을 통한 flag 내용 읽기 등을 목표로 이루어졌다. 반면에 Kernel에서는 [권한 상승]이라는 것을 목표로 exploit을 사용한다.이런 권한 상승 중 로컬 환경에서 일어나는 것을 LPE(Local Privilege Escalation)이라고 한다. Target은 어떻게 구성되..
※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※ Kernel 영역의 Exploit을 학습하기 위해서는 Kernel이 어떤 것인지를 인지하고 있어야 한다. 기본적인 Linux의 구조는 위 그림과 같다. 우리가 Linux를 다루는데 있어서 각종 명령을 입력하는 작업을 수행한다. 이때 우리는 Shell이라는 부분을 다루게 된다. 이후 우리가 입력한 명령을 하드웨어에서 작동할 수 있도록 관리 및 통역해주는 역할을 해주는 것이 Kernel이다. Shell기본적인 Shell은 사용자와 커널 사이의 인터페이스 역할을 수행한다. • 명령어 해석: 사용자가 입력한 명령을 해석하여 커널로 전달 사용자가 입력한 명령어는 셸이 해석하여 커널로 전달되며, 커널은 이를 처리한 후 결과를 다시 셸에..