본문 바로가기
Linux/bandit

Level 25 → Level 26

by ㅇㅅㅇ.. 2024. 1. 16.

 

 

  • login PW: p7TaowMYrmu23Ol8hiZh9UvD0O9hpx8d
  • 문제설명: bandit26의 로그인은 /bin/bash 쉘이 아니다. 어떤 쉘인지 찾고 작동법과 해결방법을 찾아봐라.

 

현재 경로를 확인해 보니 RSA private key가 있습니다.

 

sshkey를 이용하여 bandit26에 로그인 해보겠습니다.

 

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

 

 

로그인이 되는 줄 알았지만 아래의 로그인 정보를 보면 여전히 bandit25인 걸 알 수 있습니다.

그리고 이전에는 출력되지 않았던 bandit26 이라는 그림이 나타납니다. 

 

문제에서 쉘이 /bin/bash가 아니라고 나와있으므로 bandit26의 로그인 쉘이 무엇인지 확인해보겠습니다.

 

# cat /etc/passwd | grep bandit26

 

bandit26의 경우 로그인을 할 시 bin/bash 쉘이 아니라 /usr/bin/showtext 에 있는 파일을 전달해줍니다.

(grep을 하지 않고 /etc/passwd 에 있는 걸 읽어보면 다른 단계와 다른 것을 알 수 있습니다.)

 

 

해당 경로에 어떤 파일이 있는지 읽어보겠습니다.

 

# cat /usr/bin/showtext

 

위의 쉘 스크립트를 설명하면

  • /bin/sh 에서 실행되며 
  • 리눅스 터미널을 사용한다.
  • more 명령어를 사용하여 text.txt 파일을 터미널에 출력하고
  • 종료한다.

 

여기서 주목해야 할 점은 more 명령어를 사용한다는 것입니다. 파일의 내용을 한번에 모두 출력하는 cat과는 다르게

more 명령어는 다음과 같은 특징을 가지고 있습니다.

  • 한 화면씩 출력하여 페이지 단위로 표시한다.
  • 화면에 출력값이 다 나오지 않을 경우 아래에  --More--(x%) 이라는 버튼이 나온다.
  •  --More--(x%) 이 나온 상태에서 키보드의 v를 누르면 열었는 파일을 vi 로 실행할 수 있다.

 

여기서 한 가지 더 vi의 경우 특정 명령어를 실행할 수 있습니다.

이러한 특징을 이용하여 more -> vi -> shell 순으로 접근해보겠습니다.

 

 

--More--(x%) 가 출력 되도록 터미널 창을 작게 축소 시킨 후 아래의 명령어를 다시 실행하겠습니다.

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

 

 

--More--(x%) 버튼이 나온 상태에 키보드 v를 눌러 vi 모드를 실행하고

:set shell=/bin/bash

를 입력하여 bash 쉘을 실행하겠습니다.

 

 

이어서 :sh을 입력하면 bandit26에 로그인이 됩니다.

 

터미널 창을 크게 열고 여기서 bandit26의 PW를 알아보겠습니다.

 

# cat /etc/bandit_pass/bandit26

 

bandit26의 경우 로그인을 할 때 위와 비슷하게 터미널을 작게 줄인 다음 비밀번호를 입력하고

more 명령어로 vi 를 실행해서 /bin/bash를 실행하면 됩니다.

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

Level 27 → Level 28  (0) 2024.01.16
Level 26 → Level 27  (0) 2024.01.16
Level 24 → Level 25  (0) 2024.01.12
Level 23 → Level 24  (0) 2024.01.11
Level 22 → Level 23  (0) 2024.01.11