Bandit Level 12 입니다.
반복적으로 압축된 파일이, hexdump 된 상태로 data.txt 라는 이름으로 저장되어 있고, 그곳에 password 가 있다고 합니다.
해당 문제에서는 /tmp 디렉터리에 나의 디렉터리를 생성해서 그곳에서 작업하는 것을 권하고 있네요.
현재 홈 디렉터리에는 쓰기(write) 권한이 없기 때문에 파일을 생성하거나 제거하는 것이 불가능 합니다.
문제에서 추천하는 /tmp 디렉터리는 모두가 디렉터리를 생성하고 사용할 수 있으며, sticky bit가 설정되어 있어 root 또는 파일의 소유자 외엔 파일을 삭제할 수도 없습니다. "공공장소" 정도로 생각하시면 됩니다.
파일의 압축을 반복적으로 풀어야 하기 때문에, 편의를 위하여 이러한 방법을 추천하는 것 같습니다.
cat data.txt
일단 문제파일부터 읽어봤습니다. 웹해킹 할때 HxD 에서 본 거랑 똑같군요.
16진수 형태로 Hexdump 된 상태의 파일입니다.
일단 /tmp 디렉터리에 저만의 장소를 생성해, 그곳에서 작업해 봅시다.
mkdir /tmp/sunkue12
mkdir : 디렉터리를 생성하는 명령어
/tmp 디렉터리 안에, "sunkue12" 라는 디렉터리를 생성하라는 의미입니다.
각자 짓고싶은 이름으로 자유롭게 생성해 줍시다.
cp data.txt /tmp/sunkue12
cp : 파일 또는 디렉터리를 복사하는 명령어
data.txt 파일을 /tmp/sunkue12 디렉터리로 복사하라는 뜻입니다.
cd /tmp/sunkue12
cd : 디렉터리를 이동하는 명령어
제가 생성한 디렉터리로 이동하였고, ls명령어로 data.txt 파일이 잘 복사된 것을 확인하였습니다.
이제 본격적으로 문제를 풀어봅시다.
data.txt 파일은 Hexdump 된 상태였죠? 이걸 해제합시다.
xxd -r data.txt > hi
xxd : 바이너리 데이터를 16진수로, 16진수를 바이너리 데이터로 변환해주는 명령어
-r : 16진수를 바이너리 데이터로 변환하는 옵션
> hi : 해당 명령의 결과를 "hi" 라는 파일로 따로 저장하라
data.txt 파일을 hexdump 해제하여 "hi" 파일로 만들었습니다.
이제 hi 파일을 압축해제 하면 되겠죠? 문제에서 반복적으로 압축되어 있다고 했으니까요.
파일 형태를 확인해 봅시다.
file hi
맨 앞쪽 부분을 보시면, gzip compressed data 라고 쓰여있죠? gzip 형태로 압축된 데이터 라는 뜻입니다.
gzip 형태로 압축 되어있으니, gzip 명령어로 압축을 해제해야 합니다.
단! 리눅스에선 압축을 해제할 때 반드시 파일명을 해당 압축 형태로 직접 바꿔줘야 합니다.
mv hi hi.gz
mv : 파일을 다른 위치로 이동시키는 명령어. 또는 파일명을 변경할 수도 있다
hi 파일의 이름을 hi.gz 로 변경하였습니다. 이제 gzip 명령어로 압축해제할 수 있게 되었습니다.
gzip -d hi.gz
gzip : gzip 형태로 압축하거나 압축해제 할 수 있는 명령어
-d : 압축해제 옵션
hi.gz 파일을 압축해제 하여, hi 파일이 되었습니다.
이제 다시 file hi 명령어로 어떤 형태로 압축되어 있는지 확인한 후, 다시 압축을 풀고 반복하면 됩니다.
압축형태에는 크게 3가지가 있습니다.
tar 형태
- 압축파일명 : .tar
- 압축 명령 : tar -cvf [파일명]
- 압축 해제 : tar -xvf [파일명]
gzip 형태
- 압축파일명 : .gz
- 압축 명령 : gzip [파일명]
- 압축 해제 : gzip -d [파일명]
bzip2 형태
- 압축파일명 : .bz2
- 압축 명령 : bzip2 [파일명]
- 압축 해제 : bzip2 -d [파일명]
이걸 참고하셔서 압축을 풀고, 압축 형태를 확인하고, 파일명을 바꾸고, 다시 압축을 푸는 과정을 반복하시길 바랍니다.
수많은 압축해제 과정을 거치고 거쳐서...
이름을 바꾸고 압축형태를 확인하고 압축해제하고.. 계속 반복하면
반복하다 보면!!!!!!
드디어 초기형태인 ASCII text 형태까지 왔습니다.
ASCII text 형태는 사람이 읽을 수 있는 형태인거 아시죠?
아마 저기에 password가 저장되어 있을 겁니다.
cat hi
Hexdump 해제, 반복된 gzip bzip2 tar 압축해제 끝에 드디어 password를 획득하였습니다.
'Hacking > [System]Bandit' 카테고리의 다른 글
OverTheWire [Bandit Level 14] (0) | 2023.03.30 |
---|---|
OverTheWire [Bandit Level 13] (0) | 2023.03.30 |
OverTheWire [Bandit Level 11] (0) | 2023.03.30 |
OverTheWire [Bandit Level 10] (0) | 2023.03.30 |
OverTheWire [Bandit Level 9] (0) | 2023.03.30 |