password가 들어있는 data.txt 파일이 16진수로 이루어져 있으며, 여러 번 압축되었다.
이번 문제는 힌트를 직접적으로 주었는데,
- mkdir 명령어를 이용하여 /tmp 아래에 디렉토리를 만들고,
- cp 명령어를 이용하여 파일을 복사하고,
- mv 명령어를 이용하여 파일 이름을 바꾸어라.
ls
data.txt 파일이 보인다.
cat data.txt
16진수로 이루어진 파일 내용을 확인할 수 있다.
일단, 문제에서 제시한대로 디렉토리를 만들어보자.
mkdir /tmp/eskim
mkdir 명령어를 사용하여 /tmp 아래에 eskim라는 디렉토리를 만든다.
cp data.txt /tmp/eskim
cp 명령어를 이용하여 data.txt 파일을 복사해 esk 디렉토리 안에 붙여넣는다.
cd /tmp/eskim
eskim 디렉토리로 이동한다.
ls
eskim 디렉토리 안에 data.txt가 잘 복사된 것을 확인할 수 있다.
이제 16진수로 쓰인 data.txt 파일을 이진수로 변환하자.
xxd -r 명령어를 사용하여 16진수를 이진수로 변환하고 그것을 passwd라는 파일로 저장하자.
xxd -r data.txt > passwd
ls를 입력하면 eskim 디렉토리 안에 data.txt 파일과 이진수로 변환된 passwd 파일이 잘 있는 것을 확인할 수 있다.
cat passwd
아직 알 수 없는 문자로 이루어져 있다.
파일 유형을 알아보기 위해 file 명령어를 사용하자.
file passwd
파일이 gzip으로 압축되어 있으며, 원래는 data2.bin이라는 파일이었다고 한다.
압축을 풀기 위해 gzip -d 명령어를 사용한다.
압축 해제를 하기 위해서는 파일 확장자명을 붙여주어야 하므로 mv 명령어를 이용하여 확장자를 붙여준 후 압축해제를 한다.
mv passwd data2.bin.gz
gzip -d data2.bin.gz
file data2.bin
압축 해제된 파일의 유형이 궁금하여 file 명령어를 사용해보니 이번엔 bzip2로 압축된 파일이라고 한다.
같은 방식으로 확장자명을 붙여주고 압축해제한 후, 압축이 해제된 파일의 유형을 알아보자.
mv data2.bin data2.bin.bz
bzip2 -d data2.bin.bz
file data2.bin
이번엔 다시 gzip으로 압축된 파일이며, 원래 data4.bin 파일이었다고 한다.
위와 같은 방법을 반복한다.
tar으로 압축된 파일은 tar -xvf 명령어를 사용하여 압축 해제한다.
위 과정을 반복하면 data8.bin 파일이 ascii 이루어진 파일임을 확인 할 수 있으며, 더 이상 해제할 압축파일이 없다.
cat data8.bin
드디어 password를 찾았다.