2023. 7. 15. 20:13ㆍWar 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
- /tmp 디렉토리 아래에 test_bandit12라는 디렉토리를 생성한다.
- /home/bandit12/data.txt파일을 /tmp/test_bandit12디렉토리에 복사한다.
- 복사된 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 파일의 내용을 출력했더니 암호를 확인할 수 있었다.
'War Game > OverTheWire' 카테고리의 다른 글
[OverTheWire:Bandit] Level 14 ~ Level 15 (0) | 2023.07.15 |
---|---|
[OverTheWire:Bandit] Level 13 ~ Level 14 (0) | 2023.07.15 |
[OverTheWire:Bandit] Level 11 ~ Level 12 (0) | 2023.07.14 |
[OverTheWire:Bandit] Level 10 ~ Level 11 (0) | 2023.07.14 |
[OverTheWire:Bandit] Level 9 ~ Level 10 (0) | 2023.07.13 |