WAR GAME/Bandit

[OverTheWire: Bandit] level13 -> level14

jir4vvit 2020. 2. 27. 16:36

사용 툴: cygwin

 

1) 문제

level13 -> level14 문제

패스워드는 /etc/bandit_pass 아래 저장되어있고, bandit14 계정만 오직 읽일 수 있다고 한다.

이 레벨에서는 다음 패스워드를 얻는 것이 아니다.

private SSH key를 얻어야한다.

NOTE: localhost는 자신의 pc를 가리키고 있는 주소를 뜻한다.

(localhost = 127.0.0.1) 

 

 

2) 문제풀이

 

private SSH key란 간단히 설명하자면 사용자의 패스워드 대신 로그인에 성공할 수 있는 것이다.

이정도만 알아도 일단 문제를 풀 수 있으니, 문제풀이를 진행해보도록 하겠다.

 

일단 bandit13으로 로그인하고 홈 디렉터리를 살펴보았다.

private key

sshkey.private 파일이 수상해보여서 file로 파일을 확인해보았다.

저렇게 빨간 네모안의 내용처럼 적혀져있으면 private SSH key를 뜻한다고 한다.

 

혹시나해서 열어보았는데 별다른 단서를 찾지 못하였다.

 

문제에서 패스워드가 /etc/bandit_pass 아래 있다고 했으니 한번 찾아가보겠다.

cd /etc/bandit_pass

 

/etc/bandit_pass

permission을 보면 소유자만 읽을 수 있다고 되어있다.

그래서 bandit13의 계정으로는 bandit14의 내용을 읽을 수가 없었다.

 

구글링을 해보다가 방법을 찾았다

ssh -i sshkey.private bandit14@localhost

이렇게 하면 된다고 한다.

 

참고로 ssh의 i옵션은 RSA 인증을 위한 private 키를 읽어 올 아이덴티티 파일을 선택 한다는 뜻이다.

 

sshkey.private는 private ssh key 이므로 패스워드를 몰라도 로그인할 수 있다.

그래서 홈 디렉터리에서 저 명령어를 써주면 bandit14의 패스워드를 몰라도 바로 bandit14로 로그인할 수 있다.

 

bandit14의 패스워드를 알아내는 방법은  /etc/bandit_pass 로 가서 소유자가 bandit14인 bandit14 파일을 열면 획득할 수 있다.

 

 

다시 로그아웃하고 방금 얻은 패스워드로 bandit14로 로그인에 성공해 확인해보니 저 문자열이 bandit14의 패스워드가 맞다는 것을 확인할 수 있었다.

ssh -p 2220 bandit14@bandit.labs.overthewire.org
bandit14@bandit:~$ id
bandit14) gid=11014(bandit14) groups=11014(bandit14)