일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 프로그래밍
- 시스템 프로그래밍
- 시스템프로그래밍
- 드론
- pwncollege
- 어셈블리어
- 취약점
- 리눅스 커널
- 리눅스
- Leviathan
- css
- 리눅스커널
- px4
- kernel
- 알고리즘
- 워게임
- 시그널
- 컴퓨터구조
- write up
- 리버싱
- 시스템해킹
- Pwnable.kr
- Bandit
- radare2
- pwn.college
- 커널
- 시스템
- C언어
- wargame
- C++
Archives
- Today
- Total
Computer Security
pwn.college : kernel 7.0-7.1 write up 1 본문
반응형
1. vm start 로 vm 환경에서 구동해주자.
2. vm connect 를 통해 연결 해준다.
3.커널의 log 를 출력하는 dmesg 명령어를 사용하면 아래의 welcome to this kernel challenge가 뜬다.
아래의 내용을 살펴보면
[2.825065] ###
[ 2.825614] ### 이 커널 도전에 오신 것을 환영합니다!
[ 2.827158] ###
[ 2.827686] 이 챌린지는 기본적인 커널 악용에 대해 알려주는 방식으로 커널을 오용합니다.
[ 2.830548] 이 챌린지는 `/proc/pwncollege`를 통해 간단한 문자 장치 인터페이스를 노출합니다.
[ 2.833103] 다른 파일과 마찬가지로 이 장치를 열고 닫을 수 있습니다.
[ 2.834982] 이 장치는 ioctl 인터페이스를 통한 상호 작용도 지원합니다.
[ 2.837031] 캐릭터 장치를 사용하면 커널 내에서 쉘코드를 실행할 수 있습니다.
[ 2.839273 ] 행운을 빕니다!
ioctl을 통해서 쉘코드를 넣으면 되는 문제인듯 하다.
4. workspace에 있는 IDA를 이용해서 우리가 받은 challenge kernel 7.0을 열어주자.
5. IDA에서 F5를 누르면 어셈블리어를 C언어코드로 변환 해준다. 변환 한 뒤, device_ioctl부분을 살펴보자.
넘버는 1337이고, 쉘코드를 통해서 넣으면 어찌저찌 될 것 같다.
6. 기본적인 ioctl 통신 코드를 아래와 같이 작성 해준 뒤, 컴파일 해준다.
7. sudo cat /proc/kallsyms 명령어를 이용해서, ioctl 메모리 주소를 찾아준다.
8. vm debug 명령어를 이용해서 디버깅을 할껀데, 위에서 찾은 0xffffffffc000075c 메모리 주소에 브레이킹을 걸어준다.
9. vm debug 터미널과 vm connect 터미널은 동시에 불가능 하기 때문에, vm debug에서 c로 Continuing 해주고, vm connect 터미널로 돌아와서 아까 작성했던 기본 ioctl통신코드인 L7.c를 실행 해본다.
x/50i $rip 명령어로 rip(현재 브레이크된 주소) 에서부터 50줄 출력해준다.
10. device_ioctl에서 IDA View-A를 살펴보면 shellcode쪽 메모리를 찾을 수 있다.
shellcode 쪽 값 00000000000007D1을 vm debug 메모리주소 쪽에서 찾아봤더니 쉘코드 쪽 메모리 주소가
0xffffffffc0002448 인것을 알 수 있다.
11. 쉘코드 메모리 주소를 반영하여 다시 코드를 작성 해준다.
그 뒤에 내용은,,
다음 회차때 이어 나가도록 하겠다.
반응형
'pwn.college : kernel' 카테고리의 다른 글
pwn.college : kernel 7.0-7.1 write up 2 (0) | 2022.12.28 |
---|---|
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