일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 알고리즘
- 시스템해킹
- pwncollege
- wargame
- 리버싱
- 컴퓨터구조
- Leviathan
- kernel
- 어셈블리어
- 드론
- 리눅스 커널
- radare2
- 시스템
- 커널
- 시그널
- Bandit
- Pwnable.kr
- 시스템 프로그래밍
- 프로그래밍
- C++
- 리눅스
- 취약점
- px4
- 리눅스커널
- pwn.college
- 시스템프로그래밍
- write up
- 워게임
- css
- C언어
Archives
- Today
- Total
Computer Security
pwn.college : kernel 1.0-1.1 write up 본문
반응형
1. vm start 로 vm 환경에서 구동해주자.
2. vm connect 를 통해 연결 해준다.
3.커널의 log 를 출력하는 dmesg 명령어를 사용하면 아래의 welcome to this kernel challenge가 뜬다.
아래의 내용을 살펴보면
이 챌린지는 기본 커널 악용에 대해 알려주는 방식으로 커널을 오용합니다.
[ 2.976147] 이 챌린지는 `/proc/pwncollege`를 통해 간단한 문자 장치 인터페이스를 노출합니다.
[ 2.979664] 다른 파일과 마찬가지로 이 장치를 열고 읽고 쓰고 닫을 수 있습니다.
[ 2.982263] 암호를 알 수 있으면 문자 장치를 통해 플래그를 읽을 수 있습니다.
[ 2.985419 ] 행운을 빕니다!
/proc/pwncollege를 통해 간단한 문자 장치 인터페이스를 노출한다고 한다.
또한 open,write,read,close가 가능하다는 것도 알 수 있다.
4. workspace에 있는 IDA를 이용해서 우리가 받은 challenge kernel 1.0을 열어주자.
5. IDA에서 F5를 누르면 어셈블리어를 C언어코드로 변환 해준다. 변환 한 뒤, device_write부분을 살펴보자.
strncmp함수가 문자열 비교 역할인데 패스워드랑 저 "jgjoxwhmqnoqlojl" 이놈을 비교 한다고 한다.
'
6. 아까 /proc/pwncollege를 통해 간단한 문자 장치 인터페이스를 노출한다고 했으니 cat으로 읽어보자.
무한반복으로 password 를 입력하라고 나온다.
7. 흠,,일단 내가 원하는건 flag 도출인데,, flag부분이 어디있는지 살펴보니 init_module부분에 나와있다.
여기서 flag를 누르고 x를 누르면 아래처럼 다음 코드가 어디있는지 나온다.
맨 아래 것을 누르고 들어가보니
v6가 flag로 선언 되어 있는걸 알 수 있다.
8. 결국 device_state부분이 key point라는 것을 알았고, "jgjoxwhmqnoqlojl" 이 놈을 /proc/pwncollege안에 넣어주고 다시 읽어보자.
9. 이건 write up을 보실 분들을 위해 스포방지 practice버전 이기때문에 practice가 뜨는 것이고, 직접 해보면 정상적으로 flag값이 출력된다!
1.1또한 똑같은 방법으로 해주면 풀린다!
반응형
'pwn.college : kernel' 카테고리의 다른 글
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 |
pwn.college : kernel 2.0-2.1 write up (2) | 2022.12.07 |
pwn.college 시작 (0) | 2022.12.04 |
Comments