힌트를 확인해보면...

The password for the next level is stored in a file somewhere under the inhere directory and has all of the following properties:

human-readable // 사람이 읽을 수 있음 

1033 bytes in size // 1033 바이트 크기

not executable  // 실행권한이 없음 

라는 힌트를 얻을 수 있다. 

 

확인을 해보면 여러가지 디렉토리들이 보인다. 

여기서 우리가 확인해야할 것은 힌트에 나온 3가지이다. 

3가지 조건을 모두 가지고 있다면 그것이 패스워드가 될 것이다. 

그래서 권한을 확인하기로 했다.

 

여기서 알 수 있는 것은 inhere 디렉토리 안에 있는 maybehere00~19까지 모두 실행권한이 없다.

그러므로 inhere 안에 있으면서 실행권한이 없다는 조건을 가지기 위해선 이들 중 하나가 패스워드와 관련이 있을 것이다.

그렇기에 다음조건을 가지고 있는지 확인 해보면 되는데 파일의 크기를 알아보기로 했다. 

첫번째로 파일인지 디렉토리인지 유형을 확인해 봤다.

file ./*

 

 

전부 다 디렉토리인것을 확인했다. 

그럼 해당 디렉토리들 중 디렉토리 안에 있는 파일중 하나가 될 것이다.

inhere 안에 있으면서 실행권한이 없어야 하고 크기는 1033 바이트 여야 한다. 

find를 통해서 찾아보았다.

find -size 1033c

 

 

/home/bandit5/inhere/maybehere07 안에 있는 .file2라는 파일의 크기가 1033바이트라고 한다/

그럼 다시 조건을 생각해보면 아래와 같다.

1. inhere 디렉토리 안에 있음

2. 실행 권한이 없음 

3. 사람이 읽을 수 있는 파일

4. 파일 크기는 1033 바이트

그렇다면 3가지는 확인을 했고, 사람이 읽을 수 있는파일인지 아닌지만 확인하면 될 것이다.

그래서 해당 경로로 이동 후 확인을 해봤다.

 

확인을 해보니 우리가 봤던 파일이 보이는데 실행권한이 없다는 것을 알 수 있다.

그리고 inhere 디렉토리 안에 있었던 것도 경로를 통해 확인 할 수 있다.

그리고 find를 사용하여 크기가 1033 바이트인 것도 확인을 했다.

이제 사람이 읽을 수 있는 파일인지 아닌지만 확인하면 된다.

 

아스키코드로 되어있는 텍스트파일이다. 그렇다는 것은 사람이 읽을 수 있다는 이야기가 되면서 

힌트에서 말했던 조건들을 모두 가지고 있기에 이것이 패스워드가 된다는 것을 알 수 있다.

그래서 cat으로 한번 확인해주면 된다.

 

패스워드를 얻을 수 있었다.

힌트를 확인해보자.

The password for the next level is stored in the only human-readable file in the inheredirectory. Tip: if your terminal is messed up, try the “reset” command.

 

음...  사람이 읽을 수 있는 파일이고 inhere 디렉토리 안에 있다고 한다. 

 

일단 한번 확인해보기로 했다.

 

힌트에서 말했던 디렉토리가 보인다.

한번 들어가 보았다.

cd /home/bandit4/inhere

 

여기서 확인을 해보면 여러가지들이 나오는데 힌트대로라면 이중에 있다는 이야기가 된다

 

그렇다면 여기서 사람이 읽을 수 있는 파일이 무엇인지 파일 유형을 살펴봐야 할 것이다. 

그래서 file 명령어를 활용하기로 했다.

file ./*

 

-file07이 패스워드 인것 같지만 권한을 확인해 봐야 하기 때문에 ls -al을 확인해서 권한을 보았다.

 

level5의 권한을 가지고 있고 읽을 수 있는 권한을 가지고 있었다. 

그래서 -file07이 패스워드일 것이다. 

cat 으로 확인해봤다.

cat < '-file07'

 

문제가 해결되었다.

일단 힌트부터 확인을 해보면 

The password for the next level is stored in a hidden file in the inhere directory.

디렉토리안에 숨겨진 파일이 있다고 한다. 

그러면 먼저 해당경로로 이동을 한번 해보기로 했다. 

ls 
inhere

pwd 
/home/bandit3

cd /home/bandit3/inhere

 

해당 경로로 이동 후 ls를 통하여 안에 있는 파일들을 확인해보려고 했으나 아무것도 나오지 않았다.

여기서 힌트를 보자면 숨겨진 파일이라고 했기 때문에 숨겨진 파일을 확인 하면 될 것 같다.

그래서 숨겨진 파일을 확인하려면 해당 옵션을 주면 된다.

ls -a

 

 

.hidden 파일이 보이는데 아마도 이게 다음레벨로 올라가는 패스워드 인것 같다.

열기전에 해당 파일의 권한과 유형을 확인해봐야 하기 때문에 확인해봤다.

file .hidden

 

 

역시나 예상대로 아스키 코드의 텍스트 파일이었다. 

그럼 권한은 어떻게 되는가??

ls -al

 

 

bandit4의 권한을 가지고 있는 .hidden 파일을 볼 수 있다. 

따라서 이게 패스워드 인것 같다. 

cat으로 한번 실행해봤다.

cat .hidden

 

 

아주 쉽게 해결되었다. 

이번문제는 매우 간단하게 풀었던 거라 사실 풀이를 적을게 있었나 모르겠다

사실 그정도로 쉽게 풀었다.

 

일단 뭐가 있는지 확인하기 위해서 ls 명령어를 사용했다.

 

해당 파일이 하나밖에 없는데 혹시 몰라 힌트를 확인해 보았다.

The password for the next level is stored in a file called spaces in this filename located in the home directory

이말인 즉슨,  ls로 확인했던 것의 내용이 정답의 단서를 가지고 있을것이라고 생각했다.

그래서 cat 명령어로 내용을 확인해 보았다.

cat 'spaces in this filename'

 

 

아주 쉽게 풀렸다.

이번엔 윈도우 putty로 접속을 해보았는데 역시나 과부하가 많이 걸리는 것 같다.

아무튼 접속을 해보면 아래와 같은 화면이 나온다. (패스워드는 0에서 찾았으니 그거 입력하면 된다.)

 

 

접속 환경은 같아서 우분투에서 하든지 뭐 윈도우로 하든지 크게 다른건 없다,

일단 힌트가 뭔지를 확인해보았다, 

 

The password for the next level is stored in a file called - located in the home directory

홈디렉토리에 있는 - 라는 디렉토리라고 한다. 

 

확인해보니 뭔지는 정확하게 모르겠지만 - 라는 것이 있다.

파일인지 디렉토리인지 뭔지를 확인하기 위해서 해당 명령어를 사용했다.

pwd 
/home/bandit1

file . /home/bandit1/-
.:               directory
/home/bandit1/-: ASCII text

 

아스키 코드로 된 텍스트 파일인 것을 확인 할 수 있었다.

그러면 이제 이 파일을 읽기만 하면 되는 것 같다. 

cat 명령어를 사용하면 되는데 cat을 입력하면 아무것도 나오지 않는다.

 

아무것도 나오지 않았던 이유는 cat이라는 명령어를 사용해서 -를 옵션으로 받아들이기 때문에 

cat - 라고 입력했을때 옵션이 없어서 커맨드 라인이 실행되지 않아 파일을 생성하는 것으로 판단하여 

입력 값을 기다렸던여서  다른 방법을 찾아야 할 것 같다. 

https://stackoverflow.com/questions/42187323/how-to-open-a-dashed-filename-using-terminal

 

How to open a "-" dashed filename using terminal?

I tried gedit, nano, vi, leafpad and other text editors , it won't open, I tried cat and other file looking commands, and I ensure you it's a file not a directory!

stackoverflow.com

 

스택 버퍼오버플로우에 같은 문제점이 발견되어 올라와있었다.

해결방법을 보니까 아주 간단한 방법이었다.

Both cat < - and ./- command will give you the output

 

둘중에 하나만 사용해도 원하는 값을 찾을 수 있었다.

 

성공!

유튜브를 보다가 괜찮은 리눅스 워게임이 있다고 해서 한번 풀어볼려고 들어가 보았다. 

 

https://overthewire.org/wargames/bandit/

 

OverTheWire: Bandit

We're hackers, and we are good-looking. We are the 1%. Bandit The Bandit wargame is aimed at absolute beginners. It will teach the basics needed to be able to play other wargames. If you notice something essential is missing or have ideas for new levels, p

overthewire.org

 

사이트는 여기고 가상환경에서 돌리거나 Putty로 윈도우에서 돌리기엔 속도도 느리고 그래서

원래 쓰던 리눅스 노트북을 사용하기로 했다. 

 

일단 시작하기 전에 ssh 설정을 해줘야 한다.

sudo apt update 
sudo apt install open sshserver

 

ssh 설치를 한번 해주고 난뒤 접속을 하면 되는데 사이트에 접속 주소와 계정이 나와있다. 

Host: bandit.labs.overthewire.org  |  Port: 2220  |  Password : bandit0

따라서 접속을 해주면 된다.

ssh bandit0 @ bandit.labs.overthewire.org
레벨에 맞게 계정이름 넣어주면 됨 지금은 0이라서 bandit0 으로 접속

 

들어가게 되면 아래와 같은 창이 나올 것 이다.

 

이제 level0 으로 접속을 했는데 여기서 문제를 풀면 된다. 

사이트에 들어가면 문제별로 힌트를 제공해주는데 힌트를 한번 보았다. 

 

The password for the next level is stored in a file called readme located in the home directory. Use this password to log into bandit1 using SSH. Whenever you find a password for a level, use SSH (on port 2220) to log into that level and continue the game.

 

readme 파일에 level 1의 단서가 있는 것 같다. 

그래서 파일의 형식을 확인해보았다. 

 

아스키 코드로 된 텍스트 파일이라고 한다. 그러면 cat 명령어를 사용해서 보면 될 것 같다. 

file . readme 
.:      directory
readme: ASCII text

cat readme

 

cat 명령어로 살펴보면 다음과 같은 문자열이 보이는데 이게 level 1의 패스워드 일 것이다. 

N???????????????????????????????
문자열이라서 그냥 ? 처리

 

이제 exit을 입력하여 나왔다가 다시 level 1로 접속하면 된다.

 

 

+ Recent posts