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!)
패스워드는 data.txt 파일에 저장되어 있고, 이것은 반복적으로 압축된 16진수 덤프 파일이다. /tmp 디렉토리 아래에 mkdir을 이용하여 작업을 하는 것이 도움이 될 수 있다. 예를 들어, 디렉토리 생성(mkdir/tmp/myname123)후 "cp"로 데이터 파일을 복사하고 mv로 이름을 바꿀 수 있다.
풀고 인터넷에 쳐보니까 다들 노가다만 하면 되는 쉽지만 귀찮은 문제라고 했는데 나는 하나도 몰라서 어렵게.. 어렵게 해냈다. (그래도 해냈다!)
data.txt 파일을 확인해 보았다. 위에 보이는 내용 형식이 헥스 덤프파일이다.
data.txt의 읽기 권한을 상펴보니까 소유자만 읽고 쓰기가 가능하고 같은 그룹은 읽기 권한만 있다.
이 파일을 만지려면 /tmp에 저 파일을 복사해서 만져야 한다.
/tmp 는 임시로 파일을 저장하는 디렉토리이다.
mkdir 을 사용하여 /tmp 밑에 내가 사용할 data 디렉토리를 만들어 주었다.
cd 를 사용하여 현재 위치(/home)에서 내가 생성한 data 디렉토리로 data.txt 파일을 옮겨주었다.
그리고 pwd 를 사용하여 위치가 잘 옮겨졌는지 한번 더 확인했다.
bandit12@bandit:/tmp/mydata$ xxd -r data.txt > data
bandit12@bandit:/tmp/mydata$ file data
data: gzip compressed data, was "data2.bin", last modified: Sun Apr 23 18:04:23 2023, max compression, from Unix, original size modulo 2^32 581
xxd 명령어의 -r 옵션을 이용해서 헥스덤프를 바이너리로 바꿔준다.
bandit12@bandit:/tmp/mydata$ mv data data.gz
bandit12@bandit:/tmp/mydata$ gzip -d data.gz
bandit12@bandit:/tmp/mydata$ ls
data data.txt
bandit12@bandit:/tmp/mydata$ file data
data: bzip2 compressed data, block size = 900k
gzip으로 압축된 파일을 풀어준다.
풀어줄 땐 뒤에 확장자 명을 붙여야 한다
bandit12@bandit:/tmp/mydata$ bzip2 -d data.bz2
bzip2: Can't open input file data.bz2: No such file or directory.
bandit12@bandit:/tmp/mydata$ ls
data data.txt
bandit12@bandit:/tmp/mydata$ file data
data: bzip2 compressed data, block size = 900k
bandit12@bandit:/tmp/mydata$ ls
data data.txt
bandit12@bandit:/tmp/mydata$ mv data data.bz
bandit12@bandit:/tmp/mydata$ bzip2 -d data.bz
bandit12@bandit:/tmp/mydata$ ls
data data.txt
bandit12@bandit:/tmp/mydata$ file data
data: gzip compressed data, was "data4.bin", last modified: Sun Apr 23 18:04:23 2023, max compression, from Unix, original size modulo 2^32 20480
bzip2로 압축된 파일을 확장자명을 붙이고 또 풀어준다
bandit12@bandit:/tmp/mydata$ mv data data.gz
bandit12@bandit:/tmp/mydata$ gzip -d data.gz
bandit12@bandit:/tmp/mydata$ file data
data: POSIX tar archive (GNU)
또 gzip으로 압축된 파일을 확장자를 바꾸고 풀어준다
bandit12@bandit:/tmp/mydata$ mv data data.tar
bandit12@bandit:/tmp/mydata$ ls
data.tar data.txt
bandit12@bandit:/tmp/mydata$ tar -xvf data.tar
data5.bin
bandit12@bandit:/tmp/mydata$ file data5.binn
data5.binn: cannot open `data5.binn' (No such file or directory)
bandit12@bandit:/tmp/mydata$ file data5.bin
data5.bin: POSIX tar archive (GNU)
이번엔 tar로 묶여있는 파일을 확장자를 바꾸고 tar -xvf로 풀어준다.
bandit12@bandit:/tmp/mydata$ mv data5.bin data5.bin.tar
bandit12@bandit:/tmp/mydata$ tar -xvf data5.bin.tar
data6.bin
bandit12@bandit:/tmp/mydata$ file data6.bin
data6.bin: bzip2 compressed data, block size = 900k
bandit12@bandit:/tmp/mydata$ mv data6.bin data6.bin.bz
bandit12@bandit:/tmp/mydata$ ls
data5.bin.tar data6.bin.bz data.tar data.txt
bandit12@bandit:/tmp/mydata$ file data6.bin
data6.bin: cannot open `data6.bin' (No such file or directory)
bandit12@bandit:/tmp/mydata$ bzip2 -d data6.bin.bz
bandit12@bandit:/tmp/mydata$ ls
data5.bin.tar data6.bin data.tar data.txt
bandit12@bandit:/tmp/mydata$ file data6.bin
data6.bin: POSIX tar archive (GNU)
bandit12@bandit:/tmp/mydata$ mv data6.bin data6.bin.tar
bandit12@bandit:/tmp/mydata$ tar -xvf data6.bin.tar
data8.bin
bandit12@bandit:/tmp/mydata$ file data8.bin
data8.bin: gzip compressed data, was "data9.bin", last modified: Sun Apr 23 18:04:23 2023, max compression, from Unix, original size modulo 2^32 49
bandit12@bandit:/tmp/mydata$ mv data8.bin data8.bin.gz
bandit12@bandit:/tmp/mydata$ gzip -d data8.bin.gz
bandit12@bandit:/tmp/mydata$ ls
data5.bin.tar data6.bin.tar data8.bin data.tar data.txt
bandit12@bandit:/tmp/mydata$ file data8.bin
data8.bin: ASCII text
bandit12@bandit:/tmp/mydata$ cat data8.bin
The password is wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw코드를 입력하세요
그렇게 압축풀기를 반복 반복 해서 패스워드를 얻어냈다.
tar 명령어
https://nota.tistory.com/53
https://recipes4dev.tistory.com/146
xxd 명령어 -> 덤프 파일을 바이너리 파일로 바꿔줌
wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw