티스토리 뷰

수업 노트/bandit

[lesson12] bandit level 12 → 13

오리지날초이 2021. 9. 5. 15:54

id : bandit12

password : JVNBBFSmZwKKOP0XbFXOoW8chDz5yVRv

(2023.4월 기준)

 

다음단계로의 패스워드는 반복적으로 압축된 hexdump 파일인 data.txt 에 저장되어 있다고 합니다.

이번 단계에서는 /tmp 밑에 디렉토리를 만들고, cp 와 mv 를 이용하는게 좋을거라고 안내하고 있습니다.

 

살펴봅시다.

 

data.txt 는 ascii 기반의 텍스트 파일이지만

내용은 16진수(hex) 로 이루어진 메모리 덤프(dump) 파일이네요

 

위의 덤프파일의 왼쪽 부분은 메모리 번지수를 의미하고,
가운데는 실제 메모리에 저장된 값들을 의미합니다.

 

오른쪽은 hex 데이터를 ascii 문자로 치환해서 표시한 값인데,

유의미한 문자열일 수도 있고 무의미한 문자열을 나타낼 수도 있습니다.

 

덤프는 실제 메모리(RAM)에 반영되고 처리되는 data 를
파일로 저장하는 행위를 말합니다.

00000000: 1f8b 0808 0650 b45e 0203 6461 7461 322e
00000010: 6269 6e00 013d 02c2 fd42 5a68 3931 4159  
(...)

을 살펴보면 메모리 번지는 10(hex) 씩 증가하고
이는 00000000 번지를 살펴보면 1f 가 1(hex), 8b 이 1(hex), 08 이 1(hex), (이하생략) 
식으로 구성함을 알 수 있습니다.

 

이 상황에서는 xxd 명령을 사용해야 합니다.

xxd 명령은 바이너리 데이터를 16진수로, 16진수 데이터를 바이너리 데이터로 변환해주는 명령어 입니다.

 

xxd 와 strings 명령어의 사용법은 여기를 참고하세요.

 

이번 문제를 푸는 과정은 조금 까다롭습니다.

더보기

우선 xxd -r 을 사용해서 제공받은 hex dump 파일을 바이너리로 바꿔주겠습니다.

 

변환된 바이너리 데이터가 표준출력으로 화면에 나타났지만 우리가 어떻게 해볼 수가 없습니다.

리다이렉션을 이용해서 파일로 저장합시다.

 

bandit user 로는 홈디렉토리를 제대로 쓸 수 없네요.

돌이켜보니 문제 가이드에 /tmp 를 사용하라고 있었던게 이 때문인 것 같습니다.

/tmp 밑에 사용자 폴더를 만들고 data.txt 를 복사해두고 xxd -r 을 돌립시다.

 

새로 저장된 data.bin 을 읽어보면 아까와 다를건 없습니다.

binary 데이터는 눈으로 읽을 수 있는게 아니니까요.

 

하지만 file 로 data.bin 을 살펴보면 파일 구조를 확인할 수 있습니다.

 

이 파일은 원래 data2.bin 으로 저장된 gzip 압축파일이었다는 것을 확인할 수 있습니다.

그러니까 gzip 파일을 xxd 로 hex dump 시킨 파일을 우리에게 제공해준거네요.

 

data.bin 으로 파일명을 바꾸고 gunzip 으로 압축을 풀어봅시다.

 

 

아쉽게도 확장자가 맞지 않아서 압축이 풀리지 않습니다.

확장자 gz 을 붙여서 복구해봅시다.

 

gunzip 명령으로 gz 을 압축해제하니 bzip2 파일이 나오네요.

bunzip2 로 풀어줍시다. 

압축되기 전 파일명을 알 수 없다고 data.out 으로 압축해제된 파일을 생성해주네요.

 

압축해제된 data.out 은 원래 data4.bin 이 담긴 gzip 파일이랍니다.

gz 확장자를 달고 data4.bin 이름으로 맞춰서 파일명 변경해줍시다.

사실 파일명 변경은 큰 의미는 없습니다..

 

 

이번에는 tar 아카이브 파일입니다.

tar -xvf 를 이용해서 압축해제해줍시다.

 

이번엔 확장자 상관없이 tar 형식 파일이라면 바로 압축이 해제됩니다.

(.gz 을 붙이려고 파일명 변경을 안해도 됩니다.)

 

 

data6 은 bzip2 입니다..

 

 

data6.bin.out 을 풀어줍니다.

 

gz 으로 바꾸고, gunzip 으로 풀어줍니다.

 

마침내 패스워드를 확인할 수 있습니다.

압축 파일 해제를 열심히 써봤네요

 

압축파일 종류와 사용법에 대해 더 알아보고 싶으면

여기를 클릭해주세요

728x90
반응형

'수업 노트 > bandit' 카테고리의 다른 글

[lesson14] bandit level 14 → 15  (1) 2021.09.18
[lesson13] bandit level 13 → 14  (1) 2021.09.05
[lesson11] bandit level 11 → 12  (1) 2021.08.28
[lesson10] bandit level 10 → 11  (0) 2021.08.28
[lesson9] bandit level 9 → 10  (0) 2021.08.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함