
- 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 |