kernel ctf environment
일단 커널 문제를 풀면서 세팅이 필요하다는 것을 절실히 느끼고 이를 세팅하면서 자세한 설명서를 만드는 과정이다.
일단 기본적인 위치는 ~/kernel 이며, 이 하위 디렉토리들에 대해서 다룬다.
Bash
(pwn) ame ~$ tree -L 1
.
├── backup
├── clean.sh
├── exploit.py
├── kernel-connection
├── kernel-exploit
├── kernel-gdb
├── original
└── script
기본적인 구조는 다음과 같으며 각각의 디렉토리가 무슨 역할을 하는지 설명한다.
kernel-connection
연결 및 도커와 roots를 관리하는 디렉토리
Bash
(pwn) ame ~$ ls
clean.sh connection.sh docker-pwncp.sh기본적인 구도는 다음과 가탇.
connection.sh → nc로 로컬이든 도커이든 모두 연결하는 코드
docker-pwncp.sh → original 폴더로 부터 커널 요소들을 복사해오고 docker-kernel.sh 파일도 script 디렉토리로 부터 복사해옴 사용하면,
Bash
(pwn) ame ~$ ls
clean.sh connection.sh deploy Dockerfile docker-kernel.sh docker-pwncp.sh flag이런식으로 바뀐다.
docker-kernel.sh → 현재 상태를 도커로 올린다. 그리고 rootfs와 run.sh 파일등등을 현재 디렉토리에 있는 deploy 내에 상태와 링크 ( 동기화 ) 시킨다.
kernel-exploit
exploit 파일들과 익스를 위한 모듈이 있는 디렉터리
kernel-gdb
디버깅 서버를 올리기 위한 디렉터리 , 또한 vmlinux를 elf로 만드는 실행파일 포함
original
손상 또는 번형되지 않은 파일이 있는 디렉토리