Wargame/bandit

Bandit Level 12 -> Level 13

핏디 2021. 4. 6. 18:18
SMALL

[문제]


[풀이]

> ls -al 명령어로 data.txt 파일을 확인하였다.

 

> file 명령어를 통해 data.txt 가 text 형식임을 확인하였다.

 

> cat 명령어를 통해 data.txt 파일을 실행한 결과 16진수로 나열되어 있어 원하는 패스워드를 찾을 수 없다.

 

> mkdir 명령어를 통해 /tmp 디렉토리 아래에 myname123이라는 디렉토리를 형성하였다.

> cp 명령어를 통해 data.txt 파일을 새로 만든 myname123 디렉토리에 복사하였다.

> ls -al 명령어를 통해 /tmp/myname123 에 data.txt 파일이 들어있음을 확인할 수 있다.

 

> cd 명령어를 통해 /tmp/myname123 으로 이동하였다.

> xxd 명령어를 통해 16진수인 data.txt 파일을 바이너리 파일로 읽어 data 라는 새로운 파일에 저장하였다.

> ls -al 명령어를 통해 data 파일이 새롭게 만들어졌음을 확인할 수 있다.

 

> file 명령어를 통해 data의 파일 형식을 확인한 결과, gzip으로 압축되어 있는 것을 확인하였다.

> gzip 으로 압축된 파일을 해제하기 위해서는 반드시 파일의 확장자가 .gz으로 설정되어야 한다.

> data인 파일명을 data.gz으로 변경해야 한다.

 

> mv 명령어를 통해 data 파일이 data.gz로 변경하였고, ls -al 명령어를 통해 파일명이 변경된 것을 확인할 수 있다.

 

> gzip 명령어를 통해 data.gz 파일의 압축을 해제할 수 있다.

> 압축이 해제 되어 .gz 확장자는 사라지게 되었다.

 

> file 명령어로 data 파일의 형식을 확인한 결과, bzip2 로 압축되어 있는 것을 확인하였다.

 

> bzip2 명령어를 통해 data 파일의 압축을 해제한 결과, data.out 이라는 파일이 생성된 것을 확인할 수 있다.

 

> file 명령어를 통해 data.out 파일의 형태를 확인하니, gzip으로 압축되어 있었다.

 

> 앞선 과정과 동일하게 data.out 파일에 .gz 확장자를 붙여준 후 압축을 해제 하였다.

 

> file 명령어를 통해 data.out 파일의 형식을 확인하니 tar 아카이브로 묶여져 있음을 확인하였다.

 

> tar 명령어를 통해 data.out 파일의 묶음을 해제한 결과, data5.bin이라는 파일이 생성되었다.

> file 명령어를 통해 data5.bin 파일의 형태를 확인한 결과 tar 아카이브로 묶여져 있음을 확인하였다.

> 이를 앞선 과정과 동일하게 진행한 결과, data6.bin 파일이 생성되었고, file 명령어를 통해 bzip2 로 압축되어 있는 것을 확인하였다.

 

> bzip2 명령어를 통해 data6.bin 파일의 압축을 해제한 결과, data6.bin.out 이라는 파일이 생성된 것을 확인할 수 있다.

 

> file 명령어를 통해 data6.bin.out 파일의 형태를 확인하니, tar 아카이브로 묶여 있었고, tar 명령어를 통해 해제한 결과 data8.bin 파일이 생성되었다.

> file 명령어를 통해 data8.bin 파일의 형태를 확인한 결과, gzip으로 압축되어 있었다.

 

> gzip의 압축을 해제한 결과, data8.bin 파일이 생성되었음을 확인할 수 있다.

 

> file 명령어를 통해 data8.bin 파일의 형태가 text 형식임을 확인할 수 있다.

> cat 명령어를 통해 data8.bin 파일을 실행한 결과 패스워드를 획득할 수 있었다.


[핵심]

tar (Tape ARchiver)명령어

> 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령

> 파일 저장 및 전송 시, 다수의 파일 존재할 경우 관리 복잡 -> 여러 파일을 하나로 합쳐 처리하기 위한 목적으로 만든 프로그램

 

Tape 

: 과거 사용되었던 저장 장치

ARchiver 

: 여러 개의 파일을 하나의 파일로 합치는 프로그램

--> 테이프에 파일을 백업하기 위해 만들어진 프로그램

> tar 자체는 파일 압축을 수행하지 않음. 단순히 여러 파일을 하나의 파일로 묶는 용도로 사용됨

> tar을 통해 하나로 합쳐진 파일을 gzip이나 bzip2 방식을 사용해 압축할 수 있음

   이 때, gizp이나 bzip2 명령을 따로 수행하지 않고 tar 명령의 옵션으로 처리 가능함

> 단순 아카이버 기능 + tar로 묶여지기 전 파일들의 속성과 심볼릭 링크, 디렉토리 구조 등을 그대로 가져갈 수 있음

> 리눅스 용 프로그램, 데이터, 소스 및 라이브러리 등을 배포하는 용도로 많이 사용

 

*tar 명령을 통해 만들어지는 파일의 확장자

> ".tar" 사용

 

*gzip 또는 bzip2으로 압축된 경우

> 파일 뒤에 ".gz" 또는 ".bz2" 확장자 추가 => ".tar.gz" 또는 ".tar.bz2"로 파일 이름을 지정

> 간략하게, tar + gzip을 ".tgz"로, tar + bzip2를 ".tb2", ".tbz", "tbz2" 등으로 지정 가능

 

tar 명령어 옵션

*옵션 사용

1. tar 아카이브 묶기

> cvf 사용

2. tar 아카이브 풀기

> xvf 사용

3. tar로 묶고 gzip으로 압축하기

> zcvf 사용

4. gzip으로 압축된 tar 아카이브 풀기

> zxvf 사용

5. tar로 묶고 bzip2로 압축하기

> jcvf 사용

6. bzip2로 압축된 tar 아카이브 풀기

> jxvf 사용

 

사용 예제는 출처 참고.

 

gzip(GNU zip) 명령어

> 파일 압축 명령어

> gzip [option] 압축할 파일 형태로 사용

> .gz의 확장자를 가져야 해제 가능

> zcat 명령어로 압축 파일 내용 확인 가능

> 여러 파일을 하나의 파일로 모을 수 없음

> 여러 파일을 하나의 파일로 압축하기 위해 보통 tar 명령어와 함께 사용

> 압축 -> gzip 사용, 압축 해제 -> gunzip 사용 (= gzip -d)

gzip 명령어 옵션
gunzip 명령어 옵션

 

bzip2 명령어

> 파일 압축 명령어

> gzip, zip 보다 압축률 좋지만 느린 속도

> .bz2 의 확장자를 가져야 함

> bzip2로 압축하 파일이 손상된 경우 bzip2recover [손상된 압축 파일명] 형태로 복구 가능

> 압축 -> bzip2 사용, 압축 해제 -> bunzip2 사용 (= bzip -d)

> bzcat 명령어로 압축 파일 내용 확인 가능

bzip2 명령어 옵션

 

xxd 명령어

> 주어진 파일이나 표준 입력으로 들어온 문자들을 16진수로 보여줌

 

mkdir (make directory) 명령어

> 새로운 디렉토리를 만들 때 사용

> 파일을 만들고자 하면 touch 명령어 사용할 것

> rmdir 명령어비어있는 디렉토리를 삭제 가능 (파일이 들어있는 디렉토리 삭제 불가)

> 파일이 들어있는 디렉토리 삭제 시, rm -r [filename] 으로 가능함 (위험한 명령이니 주의!)

mkdir 명령어 옵션

 

cp 명령어

> 파일, 디렉토리 복사

> 데이터 백업 시 유용

> cp file1 file2 형태로 사용

> 파일을 디렉토리 안으로 복사할 경우, cp file1 dir1/ 의 형태로 사용

> 한번에 여러 개의 파일을 디렉토리 안으로 복사할 경우, cp file1 file2 dir/의 형태로 사용

cp 명령어 옵션

mv 명령어 

> 파일 이동

> 같은 폴더에서 파일, 디렉토리 이동하는 경우 이름 변경 효과 있음

mv 명령어 옵션

 


[출처]

recipes4dev.tistory.com/146

 

리눅스 tar 명령어 사용법. (Linux tar command) - 파일 압축 및 해제

1. tar 명령어. (Tape ARchiver) tar는 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령입니다. "테이프 아카이버(Tape ARchiver)"의 앞 글자들을 조합하여 "tar"라는 이름으로 명명됩니다. "테이

recipes4dev.tistory.com

ifuwanna.tistory.com/31

 

[Linux 리눅스] 압축, 해제 ( tar / gzip gz / bzip bz2 )

※ Linux 리눅스 압축, 해제 ( tar / gzip gz / bzip2 bz2 ) - 윈도우즈(Windows) 에서의 압축은 zip 등의 방식으로 파일이나 폴더들을 묶음과 동시에 압축(compress) 하는 것을 의미하나 리눅스(Linux)에..

ifuwanna.tistory.com

steven-life-1991.tistory.com/9

 

GZIP/GUNZIP [명령어/리눅스]

GZIP/GUNZIP 명령어 설명 Linux에서 압축을 담당하는 명령어는 tar와 gzip(GNU zip)이다. tar는 파일을 하나로 모으되 압축은 하지 않고, gzip은 파일을 모을 수는 없지만 압축을 담당한다. 따라서 여러 파

steven-life-1991.tistory.com

hippogrammer.tistory.com/152

 

[리눅스 명령어] gzip

gzip : GNU zip으로 리눅스 파일 압축 및 해제 gzip 명령어는 GNU zip의 약어로 gzip 명령어를 통해 압축이 성공하면 기존 원본 파일은 모두 사라지고 .gz 확장자를 가진 파일을 새롭게 생성합니다. Linux

hippogrammer.tistory.com

websecurity.tistory.com/82

 

리눅스(linux) xxd/string 명령어

xxd xxd 명령은 바이너리 데이터를 16진수로, 16진수 데이터를 바이너리 데이터로 변환해주는 명령어 입니다. > xxd [-옵션] [변환할 파일명]  옵션  설명 -a 하나의 null line을 '*'으로 대처 -b dump가

websecurity.tistory.com

withcoding.com/92

 

리눅스 mkdir, rmdir 명령어 사용법 정리 (디렉토리 만들기, 디렉토리 삭제)

리눅스 mkdir 명령어 사용법 (make directories) 리눅스(Linux)에서는 mkdir 명령으로 디렉토리를 생성 할 수 있다. mkdir dir1 현재 디렉토리에 dir1 디렉토리를 만든다. mkdir dir1 dir2 한번에 여러개의 디렉..

withcoding.com

shaeod.tistory.com/500

 

[리눅스 명령어] mkdir - 디렉토리 생성

  ※ 요약 mkdir 명령어는 make directory의 약자로써 디렉토리를 생성할 때 사용하는 명령어다. 자주 사용하지만 옵션의 종류도 별로 없고 매우 쉬운 명령어 중에 하나이다. ※ 경로 /bin/mkdir ※ 사용

shaeod.tistory.com

withcoding.com/93

 

리눅스 cp 명령어 사용법 정리 (파일, 디렉토리 복사, 백업)

리눅스(Linux)에서는 cp 명령을 이용하여 파일, 디렉토리를 복사합니다. 이런 복사 작업은 데이터를 백업할 때 유용하게 사용됩니다. 리눅스 cp 명령어 사용법 (copy) cp file1 file2 file1 파일을 똑같이

withcoding.com

withcoding.com/94

 

리눅스 mv 명령어 사용법 정리 (파일 이동, 파일, 디렉토리 이름 변경)

리눅스(Linux)에서는 mv 명령을 이용하여 파일 이동(move)을 할 수 있습니다. 같은 폴더에서 파일, 디렉토리 이동을 하는 경우 이름변경 효과가 있습니다. 리눅스 mv 명령어 사용법 (move) mv file1 file2 fi

withcoding.com

playthegame00.tistory.com/78

 

[linux] 리눅스 mv 파일이동 명령어 + 사용법

mv 파일이동 : 원하는 파일을 원하는 위치에 이동시키기  $ mv [옵션] [원본파일/디렉토리] [사본파일/디렉토리] # TIP # 현재 디렉토리의 모든 gz 형식의 파일을 /var/bin 으로 이동시킨다. $ mv *.gz /var/b

playthegame00.tistory.com


 

LIST

'Wargame > bandit' 카테고리의 다른 글

Bandit level 14 -> level 15  (0) 2021.05.04
Bandit Level 13 -> Level 14  (0) 2021.05.04
Bandit Level 11 -> Level 12  (0) 2021.04.04
Bandit Level 10 -> Level 11  (0) 2021.04.04
Bandit Level 9 -> Level 10  (0) 2021.04.04