Level Goal
Logging in to bandit26 from bandit25 should be fairly easy… The shell for user bandit26 is not /bin/bash, but something else. Find out what it is, how it works and how to break out of it.
Commands you may need to solve this level
ssh, cat, more, vi, ls, id, pwd
bandit26
사용자의 쉘은 /bin/bash
가 아니라 다른 것이다. 그것이 무엇인지 알아내고 어떻게 다음 레벨로 갈 수 있을지 찾아야한다.
일단 bandit26
사용자의 쉘이 어떤 것인지 파악하기 위해 /etc/passwd
파일 내용을 살펴 보았다.
cat /etc/passwd
bandit26
사용자의 정보를 확인하면 아래와 같다.
bandit26:x:11026:11026:bandit level 26:/home/bandit26:/usr/bin/showtext
맨 끝에 /usr/bin/showtext
가 로그인 쉘로 설정되어 있었다. 해당 파일의 내용을 살펴 보았다.
cat /usr/bin/showtext
그 내용은 아래와 같다.
#!/bin/sh
export TERM=linux
more ~/text.txt
exit 0
홈 디렉토리 내에 있는 text.txt
파일의 내용을 more
명령어로 출력하는 내용이었다. text.txt
파일에는 현재 사용자로 읽을 수 없는 권한으로 적용되어 있어서 내용을 확인할 수는 없었다. 홈 디렉토리에 다른 파일이 없는지 확인해 보았다.
cd ~
ls -al
ssh -i ./bandit26.sshkey bandit26@localhost
현재 사용자의 홈 디렉토리에 ssh
접속 키 값으로 보이는 파일이 존재했다. 바로 ssh
접속 시도를 해보았지만 바로 연결이 종료되어 버렸다.
/usr/bin/showtext
의 내용을 보면 text.txt
파일을 more
명령어로 출력한다. more
명령어는 한 페이지 단위로 끊어서 출력하므로 터미널의 크기를 줄여서 text.txt
파일의 내용이 한 번에 출력되지 않도록 한다.
터미널 크기를 줄인 후 ssh
접속하면 text.txt
파일이 전부 출력되지 않고 하단에 ---More(00%)---
라는 문구가 표시된다. 이 때 v
를 누르면 vi 편집기
로 진입하는데, :r /etc/bandit_pass/bandit26
을 입력하면 파일 내용이 입력되어 패스워드를 얻을 수 있다.
이는 more
명령어의 특성 중 파일 내용을 한 화면에 출력할 수 없는 경우, 중간에 멈추는 점을 이용한 것이다.
- more
파일 내용을 출력하는 명령어로, 화면 단위로 끊어서 출력한다.