[OverTheWire:Bandit] Level 25 ~ Level 26

2023. 7. 18. 16:11War Game/OverTheWire

문제

 

 

bandit25 계정에서 bandit26 계정에 로그인하는 것은 꽤 쉽다고 한다.  bandit26 계정의 쉘은 /bin/bash 가 아니라 다른 것이며 그것이 무엇인지, 어떻게 작동하는지, 어떻게 탈출하는지 알아보시오.

 

Keyword

 

ssh, cat, more, vi, ls

 

풀이

 

ls
ssh -i bandit26.sshkey bandit26@localhost -p 2220

 

문제에서 bandit26 계정의 쉘은 /bin/bash가 아니라 다른 것이라한다. 그전에 먼저 홈 디렉토리에 어떤 파일이 있는지 ls 명령어를 사용했더니 bandit26 계정의 개인키가 있었다. 이 개인키를 사용해서 bandit26 계정에 로그인해보자.

 

 

bandit26 이란 큰 텍스트가 출력되고 연결이 끊어졌다. 그렇다면 이제 bandit26 계정의 쉘이 어떤 건지 알아보도록 하자.

 

cat /etc/passwd | grep bandit26

 

/etc/passwd 파일은 이 시스템에 존재하는 계정 정보가 저장된 파일이다. 이 파일에서 각 계정의 로그인 쉘을 확인할 수 있다. 빨간 줄 그어진 곳이 bandit26 계정의 로그인 쉘이다. 평소에 보던 쉘의 형식이 아니고 다른 형식인데 cat 명령어를 사용해서 내용을 확인해 보았더니 쉘 스크립트 파일이었다. 쉘 스크립트 파일의 내용을 보면 로그인 시 'more ~/test.txt' 명령을 실행 후 종료 한다는 내용인데 아무래도 bandit26 계정의 홈 디렉토리에 있는 text.txt 파일의 내용은 bandit26 이란 큰 텍스트 일 것이다.

 

ssh -i bandit26.sshkey bandit26@localhost -p 2220

 

bandit26 계정을 로그인 시 more 명령어를 실행한다는 것을 알게 되었다. more 명령어가 활성화된 상태에서 vi 명령어를 실행시켜 vi 명령어를 사용할 수 있는 기능이 있다. 이 내용을 토대로 bandit26 계정인 상태로 vi 기능을 사용하기 위해 우선 more 명령어 실행 후 꺼지는 것을 막아야 한다. 그렇다면 more 명령어가 실행된 채로 있도록 하기 위해 사진처럼 창의 크기를 최소로 줄여놓고 bandit26 계정으로 로그인하게 되면 more 명령어가 실행되고 있는 것을 볼 수 있다.

 

v

 

이 상태에서 'v' 버튼을 누르게 되면 vi 기능을 사용할 수 있다. 그렇다면 이제 여기서 bandit26 계정의 암호 파일을 불러와 확인할 수 있다.

 

[Shift+;] e /etc/bandit_pass/bandit26

 

vi 명령모드로 진입 후에 bandit26 계정의 암호 파일을 불러오면 bandit26 계정의 암호를 확보할 수 있다.

 

[Shift+;] set shell=/bin/bash
[Shift+;] shell

 

이제 bandit26 계정의 로그인 쉘을 /bin/bash 설정하고 shell 명령어를 입력하면 bandit26 계정으로 로그인할 수 있다.