hyungin0505


#Level 0 ~ Level 4

Level 0

SSH 프로토콜을 사용하여 워게임 시스템에 접속할 수 있다
SSH는 Secure Shell의 약자로 네트워크 상의 신뢰하지 않는 시스템과 암호화된 통신을 할 수 있도록 해주는 프로토콜이다

Linux 시스템에서 ssh 명령어로 동작하는 프로그램(OpenSSH)은 SSH 프로토콜을 사용하여 원격으로 로그인하고 명령어를 실행할 수 있도록 해준다

ssh {username}@{host}
ssh -p {port} {username}@{host}

-p 옵션을 사용하여 특정 포트로 접속할 수 있다


Level 0 -> 1

Image

cat readme

ls 명령어를 사용하여 현재 위치에서 디렉토리에 있는 항목 목록을 출력할 수 있다
현재 위치는 bandit이라는 이름을 가진 사용자의 홈 디렉토리이다
참고로, 현재 위치는 pwd 명령어를 통해서도 확인할 수 있다

각 사용자의 홈 디렉토리 이름은 사용자의 이름과 같다
bandit 사용자로 로그인된 상태에서 / 경로는 이 위치가 된다

readme 파일이 있는 것을 확인할 수 있는데 cat 명령어를 사용해 읽을 수 있다
concatenate의 약자로 인자로 특정 파일 위치를 주면 해당 파일의 내용을 출력한다


Level 1 -> 2

Image

파일명이 -(대쉬, Dash) 문자로 시작하는 경우 cat - 등의 명령어가 먹지 않는다
대쉬는 명령어를 사용할 때 옵션 또는 인자로 사용되기 때문이다

./을 사용해서 파일 위치를 지정해주면 된다
리눅스 시스템에서 파일 경로를 나타낼 때 .(온점)으로 시작하는 경우 기준점이 현재 디렉토리가 되고, /로 시작하면 홈 디렉토리가 기준이 된다
상위 디렉토리는 ..으로 나타낼 수 있다

cat ./-
cat < -
more -
rev - | rev
head ./-

이 외 파일 내용을 출력하는 명령어에서도 ./- 를 사용해야 하며 more, rev의 경우는 예외이다.

more 명령어는 긴 출력을 읽기 힘든 CLI 환경에서 사용되는 명령어로 긴 출력을 페이지로 나누어서 읽을 수 있도록 해준다
rev 명령어는 인자로 받은 파일 또는 입력을 거꾸로 출력해준다


Level 2 -> 3

Image

공백 문자가 포함된 파일명을 가진 파일 또는 폴더를 cd 또는 cat 등의 명령어의 인자로 주어야 할 때 이름을 따옴표(' ')로 감싸서 인자로 전달해주어야 한다

명령어에서 여러 인자를 받을 때 띄어쓰기를 기준으로 구분하여 받기 때문이다


Level 3 -> 4

Image

숨겨진 파일은 ls 명령어로는 보이지 않는다
리눅스에서는 파일명 앞에 .(온점)을 붙이면 숨김 처리된다

ls 명령어에 -a 옵션을 추가하거나 ll 명령어를 사용하면 숨긴 파일까지 볼 수 있다
cat 명령어로 읽을 수 있다


Level 4 -> 5

Image

10개의 파일이 주어져있다
문제 설명에서 human-readable 파일에 password가 있다고 하니 이중에서 찾아야 할 것 같다

파일명이 대쉬로 시작하니 Level 1 처럼 cat ./-file00 형식으로 명령어를 사용해야 한다

Image

file 명령어로 파일의 형식을 확인할 수 있는데 -file07 파일 이외의 파일들은 data 형식이고 -file07 파일은 아스키 코드라 나온다
human-readable 파일이니 cat으로 확인하면 password를 찾을 수 있다