[OverTheWire:Bandit] Level 12 ~ Level 13

2023. 7. 15. 20:13War Game/OverTheWire

문제

 

 

다음 단계로 넘어가는 암호는 반복적으로 압축된 파일의 hexdump인 'data.txt'파일에 저장된다고 한다. mkdir을 사용하여 작업할 수 있는 /tmp 아래에 디렉토리를 만드는 것이 유용할 수 있다. (예: mkdir /tmp/myname123. 그런 다음 cp를 사용하여 데이터 파일을 복사하고 mv를 사용하여 이름을 바꿔준다.)

 

Keyword

 

cd, cat, find, grep, xxd, mkdir, gzip, bzip2, cp, mv, file, tar

 

풀이

 

find / -name data.txt 2> /dev/null

 

암호가 있는 위치를 알려 주지 않았으므로 find 명령어를 사용해서 'data.txt'라는 이름을 가진 파일을 찾아보았더니 여러 결과가 나오는데 그중 경로에 bandit12 이 들어간 경로의 'data.txt' 파일을 확인해 보자.

 

cat /home/bandit12/data.txt

 

cat 명령어를 사용해서 'data.txt'파일을 확인했더니 16진수 형식으로 이루어져 있는 걸 확인할 수 있었다. 문제에서 해당 'data.txt'파일이 반복적으로 압축되어 있다고 하니 예시에 나온 것처럼 /tmp 아래에 새 디렉토리를 만들어서 해당 'data.txt'파일을 복사 후 이름을 바꿔 주도록 하자.

 

mkdir /tmp/test_bandit12
cp /home/bandit12/data.txt /tmp/test_bandit12
cd /tmp/test_bandit12
ls
mv data.txt target
ls

 

  1. /tmp 디렉토리 아래에 test_bandit12라는 디렉토리를 생성한다.
  2. /home/bandit12/data.txt파일을 /tmp/test_bandit12디렉토리에 복사한다.
  3. 복사된 data.txt파일을 mv 명령어를 사용해서 target이라는 이름으로 바꿔준다. 

mv 명령어 기본적으로 파일을 옮기는 기능으로 알려져 있으나 파일의 이름을 바꿔주는 용도로도 사용가능하다.

 

xxd -r target > target1
file target1

 

target파일은 16진수로 이루어져 있기 때문에 xxd명령어를 사용해서 바이너리 파일로 변환해 준 내용을 target1 파일에 저장해 준다. 그리고 target1 파일을 file명령어를 사용해서 확인하면 gzip형식으로 압축되어 있다는 걸 확인할 수 있다.

 

mv targe1 target2.gz
gzip -d target2.gz
ls

 

gzip형식으로 압축되어 있는 파일을 풀려면 파일의 확장자를 .gz로 바꿔줘야 한다. 그래서 mv명령어를 사용해서 target1 파일을 target2.gz으로 바꿔준 후 압축을 풀어주었더니 target2를 얻을 수 있었다.

 

file target2
mv target2 target2.bz2
bzip2 -d target2.bz2
ls

 

file명령어를 사용해서 target2 파일의 정보를 확인했더니 이번엔 bzip2 형식으로 압축된 것을 확인할 수 있었다. gzip과 마찬가지로 bzip2도 파일의 확장자를 .bz2으로 바꿔준 후에 압축을 풀었더니 target2 파일을 얻을 수 있었다.

 

file target2
mv target2 target2.gz
gzip -d target2.gz
ls
file target2

 

file 명령어를 사용해서 target2 파일의 정보를 확인했더니 이번에도 gzip형식으로 압축된 것을 확인할 수 있었다. 이전에 했던 과정을 반복한 후에 생성된 target2 파일의 정보를 확인했더니 이번에는 tar형식으로 압축된 것을 확인할 수 있었다.

 

mv target2 target2.tar
tar -xvf target2.tar
ls

 

target2 파일을 풀었더니 data5.bin 파일이 생성된 것을 확인할 수 있었다.

 

file data5.bin
mv data5.bin data5.tar
tar -xvf data5.tar
file data6.bin
mv data6.bin data6.bz2
bzip2 -d data6.bz2
ls
file data6
mv data6 data6.tar
tar -xvf data6.tar
file data8.bin

 

이후의 작업들은 압축을 풀면 생성되는 파일 형식에 맞게 압축을 풀어주는 과정들이다.

 

mv data8.bin data8.gz
gzip -d data8.gz
ls
file data8
cat data8

 

gzip형식으로 되어있는 data8을 풀어준 후 생성된 data8의 정보를 file 명령어를 사용해서 확인해 봤더니 ASCII text로 이루어진 파일이라는 것을 확인할 수 있었다. cat 명령어를 사용해서 data8 파일의 내용을 출력했더니 암호를 확인할 수 있었다.