본문 바로가기

wargame/bandit

Level 12 → Level 13

Level Goal

The password for the next level is stored in the file data.txt, which is a hexdump of a file that has been repeatedly compressed. For this level it may be useful to create a directory under /tmp in which you can work using mkdir. For example: mkdir /tmp/myname123. Then copy the datafile using cp, and rename it using mv (read the manpages!)
비밀번호는 반복하여 압축한 파일을 hexdump로 변환한 data.txt에 저장되어 있다 이번 레벨에서는 /tmp 아래에 mkdir를 이용하여 작업할 수 있는 디렉토리를 만드는 것이 유용하다 예시: mkdir /tmp/myname123. 그 후 cp를 이용하여 데이터파일을 복사하고 mv를 이용하여 이름을 수정하자
+) 참고 hexdump에 대한 설명

Code

bandit12@bandit:~$ mkdir /tmp/temp # 문제에서 조언한대로 tmp에 임시 디렉토리를 만들고자 하였다
mkdir: cannot create directory ‘/tmp/temp’: File exists # 하지만 이미 존재한 이름이었다
bandit12@bandit:~$ cd /tmp
bandit12@bandit:/tmp$ mkdir bbbbb # 파일 만들기 성공
bandit12@bandit:/tmp$ cd bbbbb
bandit12@bandit:/tmp/bbbbb$ cd ~
bandit12@bandit:~$ cp data.txt /tmp/bbbbb/data.txt # 파일을 복사하였다
bandit12@bandit:~$ cd /tmp/bbbbb
bandit12@bandit:/tmp/bbbbb$ ls
data.txt
bandit12@bandit:/tmp/bbbbb$ xxd -r data.txt data2.txt # 16진수 파일을 이진 파일로 변환하는 xxd -r 명령어 사용
bandit12@bandit:/tmp/bbbbb$ ls
data2.txt  data.txt
bandit12@bandit:/tmp/bbbbb$ cat data2.txt
# 출력을 하니 깨진 문자가 출력되었다
bandit12@bandit:/tmp/bbbbb$ ls -l # 문제에서 파일은 반복적으로 압축되었다고 하였으므로 파일 확장자 확인하기1_실패함
total 8
-rw-r--r-- 1 bandit12 root  605 Feb 22 21:25 data2.txt
-rw-r----- 1 bandit12 root 2581 Feb 22 20:26 data.txt
bandit12@bandit:/tmp/bbbbb$ file data2.txt # 문제에서 파일은 반복적으로 압축되었다고 하였으므로 파일 확장자 확인하기2_성공함
data2.txt: gzip compressed data, was "data2.bin", last modified: Tue Oct 16 12:00:23 2018, max compression, from Unix # gzip 명령어로 압축되어 있음을 확인할 수 있음
#~압축해제 첫 번째~
bandit12@bandit:/tmp/bbbbb$ gzip -d data2.txt # 압축 해제 시도
gzip: data2.txt: unknown suffix -- ignored # 실패
bandit12@bandit:/tmp/bbbbb$ mv data2.txt data.gz # 배웠던 내용을 복습하니 gzip으로 압축된 파일의 확장자는 .gz이므로 mv 명령어로 확장자 추가함
bandit12@bandit:/tmp/bbbbb$ gzip -d data.gz # 압축 해제 성공
bandit12@bandit:/tmp/bbbbb$ ls
data  data.txt
#~압축해제 두 번째~
bandit12@bandit:/tmp/bbbbb$ file data # 파일 타입 확인
data: bzip2 compressed data, block size = 900k # bzip2 명령어로 압축되었음을 확인
bandit12@bandit:/tmp/bbbbb$ man bzip2
bandit12@bandit:/tmp/bbbbb$ bzip2 -kd data # 압축 해제 실패
bzip2: Can't guess original name for data -- using data.out
bandit12@bandit:/tmp/bbbbb$ mv data data.bz2 # gzip과 마찬가지로 확장자를 붙여야 하는 것인지 추측
bandit12@bandit:/tmp/bbbbb$ bzip2 -kd data.bz2 # 압축 해제 성공
bandit12@bandit:/tmp/bbbbb$ ls
data  data.bz2  data.out  data.txt
#~압축해제 세 번째~
bandit12@bandit:/tmp/bbbbb$ file data.out # 파일 타입 확인
data.out: gzip compressed data, was "data4.bin", last modified: Tue Oct 16 12:00:23 2018, max compression, from Unix
bandit12@bandit:/tmp/bbbbb$ mv data.out data2.gz # 확장자 추가
bandit12@bandit:/tmp/bbbbb$ gzip -d data2.gz # 압축 해제
bandit12@bandit:/tmp/bbbbb$ ls
data  data2  data.bz2  data.txt
#~압축해제 네 번째~
bandit12@bandit:/tmp/bbbbb$ file data2 # 파일 타입 확인
data2: POSIX tar archive (GNU) # tar 명령어가 사용되었음을 확인
bandit12@bandit:/tmp/bbbbb$ tar -xvf data2 # 압축 해제
data5.bin
bandit12@bandit:/tmp/bbbbb$ ls
data  data2  data5.bin  data.bz2  data.txt
#~압축해제 다섯 번째~
bandit12@bandit:/tmp/bbbbb$ file data5.bin # 파일 타입 확인
data5.bin: POSIX tar archive (GNU)
bandit12@bandit:/tmp/bbbbb$ tar -xvf data5.bin # 압축 해제
data6.bin
#~압축해제 여섯 번째~
bandit12@bandit:/tmp/bbbbb$ tar -xvf data6.bin # 압축 해제
data8.bin
#~압축해제 일곱 번째~
bandit12@bandit:/tmp/bbbbb$ tar -xvf data8.bin # 압축 해제
bandit12@bandit:/tmp/bbbbb$ ls
data  data2  data5.bin  data6.bin  data8.bin  data.bz2  data.txt
bandit12@bandit:/tmp/bbbbb$ cat data8.bin # 여전히 깨져있음
���[data9.bin
               �HU(H,..�/JQ�,V��ʪt�t
w���KM��(�p.3.O2J4�*������1
#~압축해제 여덟 번째~
bandit12@bandit:/tmp/bbbbb$ file data8.bin # 파일 타입 확인
data8.bin: gzip compressed data, was "data9.bin", last modified: Tue Oct 16 12:00:23 2018, max compression, from Unix
bandit12@bandit:/tmp/bbbbb$ mv data8.bin data9.gz
bandit12@bandit:/tmp/bbbbb$ gzip -d data9.gz # 압축 해제
bandit12@bandit:/tmp/bbbbb$ ls
data  data2  data5.bin  data6.bin  data9  data.bz2  data.txt
bandit12@bandit:/tmp/bbbbb$ file data9 # 파일 타입 확인
data9: ASCII text
bandit12@bandit:/tmp/bbbbb$ cat data9 # 압축 해제한 파일 출력
#비밀번호

이전에 배우지 않았던 명령어들도(hexdump 같은 것들) 많이 나와서 헷갈렸는데 하나하나 검색하고 공부하느라 시간이 조금 지체되었다. 하지만 문제를 파악한 후 그에 맞는 명령어를 검색하면서 새로운 지식을 쌓거나 배웠던 것을 활용할 수 있는 좋은 경험이 되었다.

#hexdump #gzip #bzip2

'wargame > bandit' 카테고리의 다른 글

Level 14 → Level 15  (0) 2019.02.20
Level 13 → Level 14  (0) 2019.02.20
Level 11 → Level 12  (0) 2019.02.20
Level 10 → Level 11  (0) 2019.02.20
Level 9 → Level 10  (0) 2019.02.14