본문 바로가기

ctf

[SECCON 2015 CTF] exec-dmesg

문제 : Please find secret message from the iso linux message

 

image.zip 파일을 풀면 core-current.iso image 파일을 얻을 있다.

core-current.iso 파일은VMware 또는 QEMU 같은 가상화 소프트웨어로 불러올 있다.

 

tool : Virtual Machine(VMware, QEMU)

 

QEMU?

QEMU Fabrice Bellard 만든 가상화 소프트웨어이다. X86 이외의 기종을 위해 만들어진 소프트웨어 스택 전체를 가상 머신 위에서 실행할 있다.

 

VMware 사용한다면 [New Virtual Machine…] 통해 가상 머신을 생성한다.

만약, QEMU 통해 사용하고자 한다면 다음과 같다.

# apt-get install qemu-system-x86

# qemu-system-x86_64 –boot d –cdrom core-current.iso

 

문제를 풀기 위한 준비는 끝났다. 이제 어떻게 풀어나갈지 생각해보자.

우선, 문제의 이름을 보면 exec-dmesg이다. 문제를 보자마자 dmesg 실행시키라는 느낌이 든다.

 

 

dmesg 실행시켰지만 applet not found라는 구문이 뜬다.

 

dmesg?

dmesg 부팅하는 동안 커널의 기록을 남겨 놓는 로그 파일 하나이다. kernel 부팅 중에 에러를 확인하고 찾는데 많은 도움이 된다.

 

dmesg 실행되지 않아 검색하는 도중 /proc/kmsg 대해 알게 되었다. dmesg 단지 /proc/kmsg 파일에 있는 내용을 읽어서 출력한다고 한다.

, 쉽게 말하자면 dmesg 대신 /proc/kmsg 있는 내용을 읽어도 된다는 말이다.

 

 

SECCON CTF 플래그 형식이 SECCON{…} 이기에, /proc/kmsg 파일에 “SECCON” 필터링을 걸고 출력했다. 다음과 같이 flag 값이 뜨는 것을 있다.

 

 

위의 방법 외에 find grep 명령을 조합하여 flag 값을 구할 있다. 명령은 모든 디렉터리 모든 파일 중에서 “SECCON”이라는 문자열을 가진 파일을 보여달라.” 의미이다.