Wargame/Bandit

Bandit Level 12 → Level 13

startonebyone 2022. 3. 8. 16:48

Level Goal

다음 레벨을 위한 패스워드는 data.txt 파일에 저장되어 있습니다. 이 파일은 반복적으로 압축된 16진수 덤프 파일입니다.

'/tmp' 디렉토리 아래에 'mkdir'을 사용하면서 작업하는 것이 도움될 수 있습니다. 예를 들어, 디렉터리 생성(mkdir /tmp/myname123) 후 'cp'로 데이터 파일을 복사하고 'mv'를 이용하여 이름을 바꿀 수 있습니다. (man 페이지를 읽어보세요!)

 

Commands you may need to solve this level

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd, mkdir, cp, mv

 

Helpful Reading Material (참고자료)

Hex dump on wikipedia(https://en.wikipedia.org/wiki/Hex_dump)

Answer

$ ls -al

$ file ./data.txt                          // 파일 유형 확인

$ cat data.txt                             // 파일 내용 확인(16진수 덤프 파일인 것을 확인한다.)

$ mkdir /tmp/mycw1                // /tmp폴더 하에 새로운 디렉터리를 만든다.

$ cp ./data.txt /tmp/mycw1     // data.txt 파일을 새로 만든 디렉터리에 복사한다.

$ cd /tmp/mycw1                     // 새로 만든 디렉터리로 이동한다.

$ xxd -r ./data.txt                    // xxd 명령어를 이용하여 덤프 파일인 data.txt를 원래 파일인 binary로 recover 복원시킨다. (-r 옵션)

$ xxd -r ./data.txt > ./Level12         // 덤프 파일을 바이너리 파일로 복원시킨 파일을 Level12로 저장한다

$ file ./Level12                                  // Level12 파일 유형 확인(gzip으로 압축된 데이터라 함. 원래는 "data.bin"이었다고 함.)

$ mv ./Level12 ./Level12.gz            // gzip 압축을 풀기 위해 확장자를 gz으로 변경해준다.

$ gzip -d ./Level12.gz                     // -d옵션을 이용하여 압축을 풀어준다.

$ ls -al                                              // Level12 파일이 생긴 것을 확인할 수 있다.

$ file ./Level12                                 // 파일 유형 확인(bzip2로 압축된 데이터임을 확인)

$ bzip2 -d ./Level12                        // bzip2로 압축 해제 (Level12.out 파일이 생성됨)

$ ls -al                                              // Level12.out 파일이 생성됨을 확인

$ file ./Level12.out                          // Level12.out 파일 유형 확인(원래는 "data4.bin"이었던 gzip으로 압축된 데이터)

$ mv ./Level12.out ./Level12.gz     // mv 명령어를 이용하여 확장자를 gz으로 변경해준다.

$ gzip -d ./Level12.gz                    // gzip 압축 해제

$ ls -al                                             // 생성된 Level12 파일 확인

$ file Level12                                  // Level12의 파일 유형 확인(tar로 압축되어있음)

$ tar -xvf ./Level12                        // tar 압축 해제(data5.bin 파일 생성됨)

$ file ./data5.bin                            // data5.bin 파일 유형 확인 (tar)

$ tar -xvf ./data5.bin                    // 압축 해제

$ file ./data6.bin                           // 파일 유형 확인(bzip2로 압축된 데이터임을 확인)

$ bzip2 -d ./data6.bin                  // data6.bin.out 파일 생성됨

$ file ./data6.bin.out                     // 파일 유형 확인(tar)

$ tar -xvf data6.bin.out                // 압축 해제(data8.bin 파일 생성됨)

$ file ./data8.bin                            // 파일 유형 확인("data9.bin이었던 gzip으로 압축된 데이터파일)

$ mv ./data8.bin ./data8.bin.gz   // 확장자 변경

$ gzip -d data8.bin.gz                  // gzip 압축 해제

$ ls -al                                            // 생성된 파일 확인(data8.bin)

$ file ./data8.bin                           // 파일 유형 확인(아스키코드로 된 텍스트파일)

$ cat data8.bin                             // 패스워드 확인

 

bandit13 password : 8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL