Level 25 → Level 26

옥영진·2020년 5월 20일
0

Bandit - OverTheWire

목록 보기
26/33

Level 25 → Level 26

목표

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
    파일 내용을 출력하는 명령어로, 화면 단위로 끊어서 출력한다.
profile
안녕하세요 함께 공부합시다

0개의 댓글