김승현

[OverTheWire] Bandit Level 12 → Level 13 본문

Linux/OverTheWire : Bandit

[OverTheWire] Bandit Level 12 → Level 13

kshind 2023. 2. 16. 23:18

문제

에서문제 원문

data.txt에 다음 단계로 가는 password가 있는데 반복적으로 압축된 파일의 hexdump라고 한다. 이 단계에서 mkdir을 이용해서 /tmp 아래에 디렉토리를 만드는 게 작업하는데 좋다고 합니다. 

디렉터리 제작 예시 mkdir /tmp/myname123.

위와 같이 만들고 파일을 cp명령어를 이용해서 복사하고 mv를 이용해서 이름을 고치라고 하는 것 같습니다.

 

  • hexdump란? 컴퓨터의 저장장치에 있는 데이터를 16진법으로 출력하는 방법
xxd : 파일을 hexdump로 만드는 명령어
          -r 옵션을 이용해서 16진수를 binary로 만드는 것도 가능함
mkdir : 디렉터리를 새롭게 생성하는 명령어
cp : copy의 줄임말로 파일을 복사하는 명령어
mv : move의 줄임말로 파일을 이동시키는 명령어
        ex) mv data.txt new_data.txt와 같은 방식으로 이름을 바꾸는 데에도 사용함  # data.txt가 new_data.txt로 이름이 변경됨

 

풀이

 

기초적인 명령어들을 입력 후 화면

들어가 보면 우리의 유저명, 그룹명은 bandit12로 data.txt에 대해서 read만 가능하고 ASCII text 형식이다.

cat 해보면 dump 형식으로 된 것도 확인할 수 있다.

지금 디렉터리에서 xxd -r을 통해 data.txt를 binary 형식으로 바꾸려고 해도 permission denied가 뜨면서 할 수 없다.

우리는 이때 문제에서 알려줬듯이 /tmp 디렉토리를 만들어 줘야 한다. /tmp 디렉토리는 임시 디렉토리라고 불리며 누구나 만들 수 있는 디렉토리라고 한다.

/tmp/kshind 디렉토리까지 만들고 data.txt를 cp를 이용하여 복사해서 이동시킨 것을 볼 수 있다.

/tmp/kshind 디렉토리에 xxd -r을 이용해서 data라는 파일로 새로 만들었고

file 명령어를 이용해서 확인해보니 gzip으로 압축된 파일임을 알 수 있다.

gzip 명령어를 통해 gzip으로 압축된 파일을 풀 수 있는데 이걸 하기 위해선 이름이 .gz로 끝나야 한다.

 

(1) gzip 해제와 bz2 등장

mv 명령어를 통해 data 파일을 data.gz로 이름을 변경하고 gzip 명령어를 통해 압축을 풀었다.

압축을 풀고 난 후엔 bzip2로 압축이 됐다고 하니까 한 번 더 압축을 풀어야 한다.

 

(2) bz2 해제와 gzip 등장

bzip2 압축을 풀기 위해 data.bz2로 이름을 바꾸고  bzip2 명령어를 통해 압축을 풀고 file 명령어를 통해 확인해보니까 또 gzip으로 압축되어 있다고 뜬다. 

 

(3) gzip 해제와 tar 아카이브 등장

모자이크한 부분은 실수한 부분입니다....ㅜ  이번에는 POSIX tar archive라고 뜬다. 이번엔 tar 아카이브가 뜨는데 여러 파일이나 디렉토리를 담는 한 파일이라고 한다. tar archive 같은 경우에는 tar -vxf 명령어를 통해서 압축을 풀 수 있다.

 

(4) tar 아카이브 해제와 아카이브 재등장

압축을 해제하고 보면 data5.bin이라는 파일이 생기는데 이 파일도 아카이브이기 때문에 같은 방식으로 하면 된다.

 

(5) tar 아카이브 해제와 bzip2 등장 

압축을 해제하면 이번엔 data6.bin이라는 파일이 나오는데 이건 bzip2로 압축이 되어있다. 그렇다면 이름 뒤에 .bz2를 붙이고 다시 bzip2 -d 명령어를 이용해서 풀면 압축이 풀릴 것이다.

 

(6) bzip2 해제와 아카이브 등장

bzip2를 풀게 되면 data6.bin이라는 파일이 한 번 더 생긴다.

data6.bin은 tar 아카이브이고 tar -xvf 명령어를 통해 해제를 할 수 있다.

 

(7) 아카이브 해제와 gzip 등장

data6.bin을 풀게 되면 이번엔 data8.bin이라는 파일이 생기고 이건 gzip으로 압축되어 있다고 한다. 한 번 더 이름에 .gz를 붙이고 압축을 풀어보자....

 

(8) gzip 해제와 끝

data8.bin.gz로 이름을 바꾸고 압축을 해제하면 data8.bin이라는 파일이 생기고

file로 확인해보면 ASCII text라고 적혀있다....

반가운 마음에 호다닥 cat 해보니까 password가 적혀있었다.

 


압축 푸는법은 너무 많이 해서 다른 건 까먹더라도 절대 잊을 것 같지가 않다.

해제할 때마다 설마설마 하면서 푸는데 풀어도 풀어도 끝이 없어,,,,, 그래도 드디어 끝났다 히히

다른 사람들도 끝까진 못 하더라도 꼭 여기까지는 문제를 풀어봤으면 좋겠다.

 

찾아보니까 directory 발음을 디렉토리라고 쓰는 것 같더라구요 지금까지 다 디렉터리라고 썼는데...

고치긴 귀찮으니까 여기부터 디렉토리로 쓰겠습니다. 제 탓 아님 


다음 문제

https://kshind.tistory.com/15

 

[OverTheWire] Bandit Level 13 → Level 14

문제 비밀번호는 /etc/bandit_pass/bandit14에 있고 이 파일은 bandit14라는 유저만 읽을 수 있다. 우리는 private SSH key를 얻어야 된다고 한다. hostname은 localhost라고 한다. 문제에 ssh가 적혀있는 것과 사용할

kshind.tistory.com